@atomiqlabs/sdk 8.7.7 → 8.8.4

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 (339) hide show
  1. package/LICENSE +201 -201
  2. package/README.md +1760 -1760
  3. package/dist/SmartChainAssets.d.ts +181 -181
  4. package/dist/SmartChainAssets.js +181 -181
  5. package/dist/bitcoin/coinselect2/accumulative.d.ts +7 -6
  6. package/dist/bitcoin/coinselect2/accumulative.js +52 -52
  7. package/dist/bitcoin/coinselect2/blackjack.d.ts +7 -6
  8. package/dist/bitcoin/coinselect2/blackjack.js +38 -38
  9. package/dist/bitcoin/coinselect2/index.d.ts +20 -19
  10. package/dist/bitcoin/coinselect2/index.js +69 -69
  11. package/dist/bitcoin/coinselect2/utils.d.ts +82 -77
  12. package/dist/bitcoin/coinselect2/utils.js +158 -123
  13. package/dist/bitcoin/wallet/BitcoinWallet.d.ts +113 -130
  14. package/dist/bitcoin/wallet/BitcoinWallet.js +335 -322
  15. package/dist/bitcoin/wallet/IBitcoinWallet.d.ts +116 -78
  16. package/dist/bitcoin/wallet/IBitcoinWallet.js +21 -21
  17. package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.d.ts +106 -101
  18. package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.js +196 -190
  19. package/dist/enums/FeeType.d.ts +15 -15
  20. package/dist/enums/FeeType.js +19 -19
  21. package/dist/enums/SwapAmountType.d.ts +15 -15
  22. package/dist/enums/SwapAmountType.js +19 -19
  23. package/dist/enums/SwapDirection.d.ts +15 -15
  24. package/dist/enums/SwapDirection.js +19 -19
  25. package/dist/enums/SwapSide.d.ts +15 -15
  26. package/dist/enums/SwapSide.js +19 -19
  27. package/dist/enums/SwapType.d.ts +75 -75
  28. package/dist/enums/SwapType.js +79 -79
  29. package/dist/errors/IntermediaryError.d.ts +13 -13
  30. package/dist/errors/IntermediaryError.js +27 -27
  31. package/dist/errors/RequestError.d.ts +32 -32
  32. package/dist/errors/RequestError.js +54 -54
  33. package/dist/errors/UserError.d.ts +8 -8
  34. package/dist/errors/UserError.js +16 -16
  35. package/dist/events/UnifiedSwapEventListener.d.ts +23 -23
  36. package/dist/events/UnifiedSwapEventListener.js +132 -132
  37. package/dist/http/HttpUtils.d.ts +27 -27
  38. package/dist/http/HttpUtils.js +91 -91
  39. package/dist/http/paramcoders/IParamReader.d.ts +8 -8
  40. package/dist/http/paramcoders/IParamReader.js +2 -2
  41. package/dist/http/paramcoders/ParamDecoder.d.ts +44 -44
  42. package/dist/http/paramcoders/ParamDecoder.js +137 -137
  43. package/dist/http/paramcoders/ParamEncoder.d.ts +20 -20
  44. package/dist/http/paramcoders/ParamEncoder.js +36 -36
  45. package/dist/http/paramcoders/SchemaVerifier.d.ts +26 -26
  46. package/dist/http/paramcoders/SchemaVerifier.js +145 -145
  47. package/dist/http/paramcoders/client/ResponseParamDecoder.d.ts +11 -11
  48. package/dist/http/paramcoders/client/ResponseParamDecoder.js +57 -57
  49. package/dist/http/paramcoders/client/StreamParamEncoder.d.ts +13 -13
  50. package/dist/http/paramcoders/client/StreamParamEncoder.js +26 -26
  51. package/dist/http/paramcoders/client/StreamingFetchPromise.d.ts +16 -16
  52. package/dist/http/paramcoders/client/StreamingFetchPromise.js +174 -174
  53. package/dist/index.d.ts +85 -85
  54. package/dist/index.js +158 -158
  55. package/dist/intermediaries/Intermediary.d.ts +178 -178
  56. package/dist/intermediaries/Intermediary.js +166 -166
  57. package/dist/intermediaries/IntermediaryDiscovery.d.ts +211 -211
  58. package/dist/intermediaries/IntermediaryDiscovery.js +424 -424
  59. package/dist/intermediaries/apis/IntermediaryAPI.d.ts +450 -440
  60. package/dist/intermediaries/apis/IntermediaryAPI.js +618 -603
  61. package/dist/intermediaries/apis/TrustedIntermediaryAPI.d.ts +155 -155
  62. package/dist/intermediaries/apis/TrustedIntermediaryAPI.js +137 -137
  63. package/dist/lnurl/LNURL.d.ts +102 -102
  64. package/dist/lnurl/LNURL.js +321 -321
  65. package/dist/prices/RedundantSwapPrice.d.ts +110 -110
  66. package/dist/prices/RedundantSwapPrice.js +222 -222
  67. package/dist/prices/SingleSwapPrice.d.ts +34 -34
  68. package/dist/prices/SingleSwapPrice.js +44 -44
  69. package/dist/prices/SwapPriceWithChain.d.ts +107 -107
  70. package/dist/prices/SwapPriceWithChain.js +128 -128
  71. package/dist/prices/abstract/ICachedSwapPrice.d.ts +28 -28
  72. package/dist/prices/abstract/ICachedSwapPrice.js +62 -62
  73. package/dist/prices/abstract/IPriceProvider.d.ts +81 -81
  74. package/dist/prices/abstract/IPriceProvider.js +74 -74
  75. package/dist/prices/abstract/ISwapPrice.d.ts +168 -168
  76. package/dist/prices/abstract/ISwapPrice.js +279 -279
  77. package/dist/prices/providers/BinancePriceProvider.d.ts +23 -23
  78. package/dist/prices/providers/BinancePriceProvider.js +30 -30
  79. package/dist/prices/providers/CoinGeckoPriceProvider.d.ts +23 -23
  80. package/dist/prices/providers/CoinGeckoPriceProvider.js +29 -29
  81. package/dist/prices/providers/CoinPaprikaPriceProvider.d.ts +25 -25
  82. package/dist/prices/providers/CoinPaprikaPriceProvider.js +29 -29
  83. package/dist/prices/providers/CustomPriceProvider.d.ts +24 -24
  84. package/dist/prices/providers/CustomPriceProvider.js +35 -35
  85. package/dist/prices/providers/KrakenPriceProvider.d.ts +38 -38
  86. package/dist/prices/providers/KrakenPriceProvider.js +45 -45
  87. package/dist/prices/providers/OKXPriceProvider.d.ts +34 -34
  88. package/dist/prices/providers/OKXPriceProvider.js +29 -29
  89. package/dist/prices/providers/abstract/ExchangePriceProvider.d.ts +17 -17
  90. package/dist/prices/providers/abstract/ExchangePriceProvider.js +21 -21
  91. package/dist/prices/providers/abstract/HttpPriceProvider.d.ts +7 -7
  92. package/dist/prices/providers/abstract/HttpPriceProvider.js +12 -12
  93. package/dist/storage/IUnifiedStorage.d.ts +85 -85
  94. package/dist/storage/IUnifiedStorage.js +2 -2
  95. package/dist/storage/UnifiedSwapStorage.d.ts +114 -114
  96. package/dist/storage/UnifiedSwapStorage.js +116 -116
  97. package/dist/storage-browser/IndexedDBUnifiedStorage.d.ts +63 -63
  98. package/dist/storage-browser/IndexedDBUnifiedStorage.js +298 -298
  99. package/dist/storage-browser/LocalStorageManager.d.ts +49 -49
  100. package/dist/storage-browser/LocalStorageManager.js +93 -93
  101. package/dist/swapper/Swapper.d.ts +732 -692
  102. package/dist/swapper/Swapper.js +1713 -1657
  103. package/dist/swapper/SwapperFactory.d.ts +135 -135
  104. package/dist/swapper/SwapperFactory.js +162 -162
  105. package/dist/swapper/SwapperUtils.d.ts +206 -206
  106. package/dist/swapper/SwapperUtils.js +481 -481
  107. package/dist/swapper/SwapperWithChain.d.ts +404 -404
  108. package/dist/swapper/SwapperWithChain.js +469 -469
  109. package/dist/swapper/SwapperWithSigner.d.ts +322 -322
  110. package/dist/swapper/SwapperWithSigner.js +318 -318
  111. package/dist/swaps/IAddressSwap.d.ts +22 -22
  112. package/dist/swaps/IAddressSwap.js +14 -14
  113. package/dist/swaps/IBTCWalletSwap.d.ts +73 -73
  114. package/dist/swaps/IBTCWalletSwap.js +18 -18
  115. package/dist/swaps/IClaimableSwap.d.ts +49 -49
  116. package/dist/swaps/IClaimableSwap.js +15 -15
  117. package/dist/swaps/IClaimableSwapWrapper.d.ts +15 -15
  118. package/dist/swaps/IClaimableSwapWrapper.js +2 -2
  119. package/dist/swaps/IRefundableSwap.d.ts +43 -43
  120. package/dist/swaps/IRefundableSwap.js +14 -14
  121. package/dist/swaps/ISwap.d.ts +392 -392
  122. package/dist/swaps/ISwap.js +349 -349
  123. package/dist/swaps/ISwapWithGasDrop.d.ts +21 -21
  124. package/dist/swaps/ISwapWithGasDrop.js +12 -12
  125. package/dist/swaps/ISwapWrapper.d.ts +285 -285
  126. package/dist/swaps/ISwapWrapper.js +353 -353
  127. package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.d.ts +98 -98
  128. package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.js +126 -126
  129. package/dist/swaps/escrow_swaps/IEscrowSwap.d.ts +139 -139
  130. package/dist/swaps/escrow_swaps/IEscrowSwap.js +170 -170
  131. package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.d.ts +128 -128
  132. package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.js +167 -167
  133. package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.d.ts +105 -105
  134. package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.js +129 -129
  135. package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.d.ts +162 -162
  136. package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.js +190 -190
  137. package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.d.ts +64 -64
  138. package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.js +82 -82
  139. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.d.ts +531 -531
  140. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.js +1285 -1285
  141. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.d.ts +190 -190
  142. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.js +432 -432
  143. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.d.ts +583 -583
  144. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.js +1371 -1371
  145. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.d.ts +235 -235
  146. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.js +525 -525
  147. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.d.ts +458 -458
  148. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.js +1126 -1126
  149. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.d.ts +202 -202
  150. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.js +406 -406
  151. package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.d.ts +403 -403
  152. package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.js +924 -924
  153. package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.d.ts +68 -68
  154. package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.js +117 -117
  155. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.d.ts +127 -127
  156. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.js +256 -256
  157. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.d.ts +251 -251
  158. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.js +536 -536
  159. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.d.ts +73 -73
  160. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.js +155 -155
  161. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.d.ts +132 -132
  162. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.js +286 -286
  163. package/dist/swaps/spv_swaps/SpvFromBTCSwap.d.ts +637 -631
  164. package/dist/swaps/spv_swaps/SpvFromBTCSwap.js +1448 -1444
  165. package/dist/swaps/spv_swaps/SpvFromBTCWrapper.d.ts +257 -225
  166. package/dist/swaps/spv_swaps/SpvFromBTCWrapper.js +947 -822
  167. package/dist/swaps/trusted/ln/LnForGasSwap.d.ts +261 -261
  168. package/dist/swaps/trusted/ln/LnForGasSwap.js +511 -511
  169. package/dist/swaps/trusted/ln/LnForGasWrapper.d.ts +40 -40
  170. package/dist/swaps/trusted/ln/LnForGasWrapper.js +83 -83
  171. package/dist/swaps/trusted/onchain/OnchainForGasSwap.d.ts +342 -342
  172. package/dist/swaps/trusted/onchain/OnchainForGasSwap.js +715 -715
  173. package/dist/swaps/trusted/onchain/OnchainForGasWrapper.d.ts +69 -69
  174. package/dist/swaps/trusted/onchain/OnchainForGasWrapper.js +93 -93
  175. package/dist/types/AmountData.d.ts +10 -10
  176. package/dist/types/AmountData.js +2 -2
  177. package/dist/types/CustomPriceFunction.d.ts +11 -11
  178. package/dist/types/CustomPriceFunction.js +2 -2
  179. package/dist/types/PriceInfoType.d.ts +28 -28
  180. package/dist/types/PriceInfoType.js +57 -57
  181. package/dist/types/SwapExecutionAction.d.ts +88 -88
  182. package/dist/types/SwapExecutionAction.js +2 -2
  183. package/dist/types/SwapStateInfo.d.ts +5 -5
  184. package/dist/types/SwapStateInfo.js +2 -2
  185. package/dist/types/SwapWithSigner.d.ts +17 -17
  186. package/dist/types/SwapWithSigner.js +43 -43
  187. package/dist/types/Token.d.ts +99 -99
  188. package/dist/types/Token.js +76 -76
  189. package/dist/types/TokenAmount.d.ts +69 -69
  190. package/dist/types/TokenAmount.js +60 -60
  191. package/dist/types/fees/Fee.d.ts +50 -50
  192. package/dist/types/fees/Fee.js +2 -2
  193. package/dist/types/fees/FeeBreakdown.d.ts +11 -11
  194. package/dist/types/fees/FeeBreakdown.js +2 -2
  195. package/dist/types/fees/PercentagePPM.d.ts +17 -17
  196. package/dist/types/fees/PercentagePPM.js +18 -18
  197. package/dist/types/lnurl/LNURLPay.d.ts +61 -61
  198. package/dist/types/lnurl/LNURLPay.js +31 -31
  199. package/dist/types/lnurl/LNURLWithdraw.d.ts +48 -48
  200. package/dist/types/lnurl/LNURLWithdraw.js +27 -27
  201. package/dist/types/wallets/LightningInvoiceCreateService.d.ts +24 -24
  202. package/dist/types/wallets/LightningInvoiceCreateService.js +15 -15
  203. package/dist/types/wallets/MinimalBitcoinWalletInterface.d.ts +23 -23
  204. package/dist/types/wallets/MinimalBitcoinWalletInterface.js +2 -2
  205. package/dist/types/wallets/MinimalLightningNetworkWalletInterface.d.ts +9 -9
  206. package/dist/types/wallets/MinimalLightningNetworkWalletInterface.js +2 -2
  207. package/dist/utils/AutomaticClockDriftCorrection.d.ts +1 -1
  208. package/dist/utils/AutomaticClockDriftCorrection.js +70 -70
  209. package/dist/utils/BitcoinUtils.d.ts +16 -14
  210. package/dist/utils/BitcoinUtils.js +141 -102
  211. package/dist/utils/BitcoinWalletUtils.d.ts +7 -7
  212. package/dist/utils/BitcoinWalletUtils.js +14 -14
  213. package/dist/utils/Logger.d.ts +7 -7
  214. package/dist/utils/Logger.js +12 -12
  215. package/dist/utils/RetryUtils.d.ts +22 -22
  216. package/dist/utils/RetryUtils.js +67 -67
  217. package/dist/utils/SwapUtils.d.ts +88 -88
  218. package/dist/utils/SwapUtils.js +72 -72
  219. package/dist/utils/TimeoutUtils.d.ts +17 -17
  220. package/dist/utils/TimeoutUtils.js +55 -55
  221. package/dist/utils/TokenUtils.d.ts +19 -19
  222. package/dist/utils/TokenUtils.js +37 -37
  223. package/dist/utils/TypeUtils.d.ts +7 -7
  224. package/dist/utils/TypeUtils.js +2 -2
  225. package/dist/utils/Utils.d.ts +67 -67
  226. package/dist/utils/Utils.js +208 -208
  227. package/package.json +43 -43
  228. package/src/SmartChainAssets.ts +186 -186
  229. package/src/bitcoin/coinselect2/accumulative.ts +69 -68
  230. package/src/bitcoin/coinselect2/blackjack.ts +50 -49
  231. package/src/bitcoin/coinselect2/index.ts +93 -92
  232. package/src/bitcoin/coinselect2/utils.ts +236 -195
  233. package/src/bitcoin/wallet/BitcoinWallet.ts +439 -427
  234. package/src/bitcoin/wallet/IBitcoinWallet.ts +140 -99
  235. package/src/bitcoin/wallet/SingleAddressBitcoinWallet.ts +225 -217
  236. package/src/enums/FeeType.ts +15 -15
  237. package/src/enums/SwapAmountType.ts +16 -16
  238. package/src/enums/SwapDirection.ts +15 -15
  239. package/src/enums/SwapSide.ts +16 -16
  240. package/src/enums/SwapType.ts +75 -75
  241. package/src/errors/IntermediaryError.ts +28 -28
  242. package/src/errors/RequestError.ts +64 -64
  243. package/src/errors/UserError.ts +15 -15
  244. package/src/events/UnifiedSwapEventListener.ts +173 -173
  245. package/src/http/HttpUtils.ts +91 -91
  246. package/src/http/paramcoders/IParamReader.ts +9 -9
  247. package/src/http/paramcoders/ParamDecoder.ts +145 -145
  248. package/src/http/paramcoders/ParamEncoder.ts +40 -40
  249. package/src/http/paramcoders/SchemaVerifier.ts +153 -153
  250. package/src/http/paramcoders/client/ResponseParamDecoder.ts +57 -57
  251. package/src/http/paramcoders/client/StreamParamEncoder.ts +28 -28
  252. package/src/http/paramcoders/client/StreamingFetchPromise.ts +192 -192
  253. package/src/index.ts +140 -140
  254. package/src/intermediaries/Intermediary.ts +280 -280
  255. package/src/intermediaries/IntermediaryDiscovery.ts +541 -541
  256. package/src/intermediaries/apis/IntermediaryAPI.ts +963 -947
  257. package/src/intermediaries/apis/TrustedIntermediaryAPI.ts +257 -257
  258. package/src/lnurl/LNURL.ts +402 -402
  259. package/src/prices/RedundantSwapPrice.ts +264 -264
  260. package/src/prices/SingleSwapPrice.ts +50 -50
  261. package/src/prices/SwapPriceWithChain.ts +194 -194
  262. package/src/prices/abstract/ICachedSwapPrice.ts +85 -85
  263. package/src/prices/abstract/IPriceProvider.ts +127 -127
  264. package/src/prices/abstract/ISwapPrice.ts +390 -390
  265. package/src/prices/providers/BinancePriceProvider.ts +48 -48
  266. package/src/prices/providers/CoinGeckoPriceProvider.ts +46 -46
  267. package/src/prices/providers/CoinPaprikaPriceProvider.ts +49 -49
  268. package/src/prices/providers/CustomPriceProvider.ts +40 -40
  269. package/src/prices/providers/KrakenPriceProvider.ts +83 -83
  270. package/src/prices/providers/OKXPriceProvider.ts +59 -59
  271. package/src/prices/providers/abstract/ExchangePriceProvider.ts +31 -31
  272. package/src/prices/providers/abstract/HttpPriceProvider.ts +14 -14
  273. package/src/storage/IUnifiedStorage.ts +95 -95
  274. package/src/storage/UnifiedSwapStorage.ts +141 -141
  275. package/src/storage-browser/IndexedDBUnifiedStorage.ts +350 -350
  276. package/src/storage-browser/LocalStorageManager.ts +106 -106
  277. package/src/swapper/Swapper.ts +2488 -2416
  278. package/src/swapper/SwapperFactory.ts +307 -307
  279. package/src/swapper/SwapperUtils.ts +570 -570
  280. package/src/swapper/SwapperWithChain.ts +707 -707
  281. package/src/swapper/SwapperWithSigner.ts +511 -511
  282. package/src/swaps/IAddressSwap.ts +30 -30
  283. package/src/swaps/IBTCWalletSwap.ts +92 -92
  284. package/src/swaps/IClaimableSwap.ts +65 -65
  285. package/src/swaps/IClaimableSwapWrapper.ts +17 -17
  286. package/src/swaps/IRefundableSwap.ts +58 -58
  287. package/src/swaps/ISwap.ts +703 -703
  288. package/src/swaps/ISwapWithGasDrop.ts +25 -25
  289. package/src/swaps/ISwapWrapper.ts +539 -539
  290. package/src/swaps/escrow_swaps/IEscrowSelfInitSwap.ts +217 -217
  291. package/src/swaps/escrow_swaps/IEscrowSwap.ts +269 -269
  292. package/src/swaps/escrow_swaps/IEscrowSwapWrapper.ts +282 -282
  293. package/src/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.ts +169 -169
  294. package/src/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.ts +300 -300
  295. package/src/swaps/escrow_swaps/frombtc/IFromBTCWrapper.ts +107 -107
  296. package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.ts +1473 -1474
  297. package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.ts +601 -601
  298. package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.ts +1582 -1582
  299. package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.ts +750 -750
  300. package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.ts +1299 -1299
  301. package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.ts +610 -610
  302. package/src/swaps/escrow_swaps/tobtc/IToBTCSwap.ts +1096 -1096
  303. package/src/swaps/escrow_swaps/tobtc/IToBTCWrapper.ts +138 -138
  304. package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.ts +304 -304
  305. package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.ts +786 -786
  306. package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.ts +206 -206
  307. package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.ts +401 -401
  308. package/src/swaps/spv_swaps/SpvFromBTCSwap.ts +1812 -1799
  309. package/src/swaps/spv_swaps/SpvFromBTCWrapper.ts +1236 -1060
  310. package/src/swaps/trusted/ln/LnForGasSwap.ts +589 -589
  311. package/src/swaps/trusted/ln/LnForGasWrapper.ts +91 -91
  312. package/src/swaps/trusted/onchain/OnchainForGasSwap.ts +862 -862
  313. package/src/swaps/trusted/onchain/OnchainForGasWrapper.ts +131 -131
  314. package/src/types/AmountData.ts +9 -9
  315. package/src/types/CustomPriceFunction.ts +11 -11
  316. package/src/types/PriceInfoType.ts +66 -66
  317. package/src/types/SwapExecutionAction.ts +99 -99
  318. package/src/types/SwapStateInfo.ts +6 -6
  319. package/src/types/SwapWithSigner.ts +61 -61
  320. package/src/types/Token.ts +163 -163
  321. package/src/types/TokenAmount.ts +132 -132
  322. package/src/types/fees/Fee.ts +56 -56
  323. package/src/types/fees/FeeBreakdown.ts +11 -11
  324. package/src/types/fees/PercentagePPM.ts +26 -26
  325. package/src/types/lnurl/LNURLPay.ts +79 -79
  326. package/src/types/lnurl/LNURLWithdraw.ts +61 -61
  327. package/src/types/wallets/LightningInvoiceCreateService.ts +30 -30
  328. package/src/types/wallets/MinimalBitcoinWalletInterface.ts +21 -21
  329. package/src/types/wallets/MinimalLightningNetworkWalletInterface.ts +9 -9
  330. package/src/utils/AutomaticClockDriftCorrection.ts +71 -71
  331. package/src/utils/BitcoinUtils.ts +132 -91
  332. package/src/utils/BitcoinWalletUtils.ts +15 -15
  333. package/src/utils/Logger.ts +14 -14
  334. package/src/utils/RetryUtils.ts +78 -78
  335. package/src/utils/SwapUtils.ts +99 -99
  336. package/src/utils/TimeoutUtils.ts +49 -49
  337. package/src/utils/TokenUtils.ts +33 -33
  338. package/src/utils/TypeUtils.ts +8 -8
  339. package/src/utils/Utils.ts +212 -212
@@ -1,583 +1,583 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- import { SwapType } from "../../../../enums/SwapType";
4
- import { ChainType, SwapCommitState, SwapData } from "@atomiqlabs/base";
5
- import { Buffer } from "buffer";
6
- import { Fee } from "../../../../types/fees/Fee";
7
- import { IAddressSwap } from "../../../IAddressSwap";
8
- import { FromBTCLNAutoDefinition, FromBTCLNAutoWrapper } from "./FromBTCLNAutoWrapper";
9
- import { ISwapWithGasDrop } from "../../../ISwapWithGasDrop";
10
- import { MinimalLightningNetworkWalletInterface } from "../../../../types/wallets/MinimalLightningNetworkWalletInterface";
11
- import { IClaimableSwap } from "../../../IClaimableSwap";
12
- import { IEscrowSwap, IEscrowSwapInit } from "../../IEscrowSwap";
13
- import { FeeType } from "../../../../enums/FeeType";
14
- import { TokenAmount } from "../../../../types/TokenAmount";
15
- import { BtcToken, SCToken } from "../../../../types/Token";
16
- import { LoggerType } from "../../../../utils/Logger";
17
- import { LNURLWithdraw } from "../../../../types/lnurl/LNURLWithdraw";
18
- import { PriceInfoType } from "../../../../types/PriceInfoType";
19
- import { SwapExecutionAction } from "../../../../types/SwapExecutionAction";
20
- /**
21
- * State enum for FromBTCLNAuto swaps
22
- * @category Swaps/Lightning → Smart chain
23
- */
24
- export declare enum FromBTCLNAutoSwapState {
25
- /**
26
- * Swap has failed as the user didn't settle the HTLC on the destination before expiration
27
- */
28
- FAILED = -4,
29
- /**
30
- * Swap has expired for good and there is no way how it can be executed anymore
31
- */
32
- QUOTE_EXPIRED = -3,
33
- /**
34
- * A swap is almost expired, and it should be presented to the user as expired, though
35
- * there is still a chance that it will be processed
36
- */
37
- QUOTE_SOFT_EXPIRED = -2,
38
- /**
39
- * Swap HTLC on the destination chain has expired, it is not safe anymore to settle (claim) the
40
- * swap on the destination smart chain.
41
- */
42
- EXPIRED = -1,
43
- /**
44
- * Swap quote was created, use {@link FromBTCLNAutoSwap.getAddress} or {@link FromBTCLNAutoSwap.getHyperlink}
45
- * to get the bolt11 lightning network invoice to pay to initiate the swap, then use the
46
- * {@link FromBTCLNAutoSwap.waitForPayment} to wait till the lightning network payment is received
47
- * by the intermediary (LP) and the destination HTLC escrow is created
48
- */
49
- PR_CREATED = 0,
50
- /**
51
- * Lightning network payment has been received by the intermediary (LP), but the destination chain
52
- * HTLC escrow hasn't been created yet. Use {@link FromBTCLNAutoSwap.waitForPayment} to continue waiting
53
- * till the destination HTLC escrow is created.
54
- */
55
- PR_PAID = 1,
56
- /**
57
- * Swap escrow HTLC has been created on the destination chain, wait for automatic settlement by the watchtowers
58
- * using the {@link FromBTCLNAutoSwap.waitTillClaimed} function or settle manually using the
59
- * {@link FromBTCLNAutoSwap.claim} or {@link FromBTCLNAutoSwap.txsClaim} function.
60
- */
61
- CLAIM_COMMITED = 2,
62
- /**
63
- * Swap successfully settled and funds received on the destination chain
64
- */
65
- CLAIM_CLAIMED = 3
66
- }
67
- export type FromBTCLNAutoSwapInit<T extends SwapData> = IEscrowSwapInit<T> & {
68
- pr?: string;
69
- secret?: string;
70
- initialSwapData: T;
71
- btcAmountSwap?: bigint;
72
- btcAmountGas?: bigint;
73
- gasSwapFeeBtc: bigint;
74
- gasSwapFee: bigint;
75
- gasPricingInfo?: PriceInfoType;
76
- lnurl?: string;
77
- lnurlK1?: string;
78
- lnurlCallback?: string;
79
- };
80
- export declare function isFromBTCLNAutoSwapInit<T extends SwapData>(obj: any): obj is FromBTCLNAutoSwapInit<T>;
81
- /**
82
- * New escrow based (HTLC) swaps for Bitcoin Lightning -> Smart chain swaps not requiring manual settlement on
83
- * the destination by the user, and instead letting the LP initiate the escrow. Permissionless watchtower network
84
- * handles the claiming of HTLC, with the swap secret broadcasted over Nostr. Also adds a possibility for the user
85
- * to receive a native token on the destination chain as part of the swap (a "gas drop" feature).
86
- *
87
- * @category Swaps/Lightning → Smart chain
88
- */
89
- export declare class FromBTCLNAutoSwap<T extends ChainType = ChainType> extends IEscrowSwap<T, FromBTCLNAutoDefinition<T>> implements IAddressSwap, ISwapWithGasDrop<T>, IClaimableSwap<T, FromBTCLNAutoDefinition<T>, FromBTCLNAutoSwapState> {
90
- protected readonly TYPE: SwapType.FROM_BTCLN_AUTO;
91
- /**
92
- * @internal
93
- */
94
- protected readonly swapStateName: (state: number) => string;
95
- /**
96
- * @internal
97
- */
98
- protected readonly swapStateDescription: {
99
- [-4]: string;
100
- [-3]: string;
101
- [-2]: string;
102
- [-1]: string;
103
- 0: string;
104
- 1: string;
105
- 2: string;
106
- 3: string;
107
- };
108
- /**
109
- * @internal
110
- */
111
- protected readonly logger: LoggerType;
112
- /**
113
- * @internal
114
- */
115
- protected readonly inputToken: BtcToken<true>;
116
- /**
117
- * Timestamp at which the HTLC was commited on the smart chain side
118
- * @internal
119
- */
120
- _commitedAt?: number;
121
- private readonly lnurlFailSignal;
122
- private readonly usesClaimHashAsId;
123
- private readonly initialSwapData;
124
- private readonly btcAmountSwap?;
125
- private readonly btcAmountGas?;
126
- private readonly gasSwapFeeBtc;
127
- private readonly gasSwapFee;
128
- private readonly gasPricingInfo?;
129
- /**
130
- * In case the swap is recovered from on-chain data, the pr saved here is just a payment hash,
131
- * as it is impossible to retrieve the actual lightning network invoice paid purely from on-chain
132
- * data
133
- * @private
134
- */
135
- private pr?;
136
- private secret?;
137
- private lnurl?;
138
- private lnurlK1?;
139
- private lnurlCallback?;
140
- private prPosted?;
141
- private broadcastTickCounter;
142
- /**
143
- * Sets the LNURL data for the swap
144
- *
145
- * @internal
146
- */
147
- _setLNURLData(lnurl: string, lnurlK1: string, lnurlCallback: string): void;
148
- constructor(wrapper: FromBTCLNAutoWrapper<T>, init: FromBTCLNAutoSwapInit<T["Data"]>);
149
- constructor(wrapper: FromBTCLNAutoWrapper<T>, obj: any);
150
- /**
151
- * @inheritDoc
152
- * @internal
153
- */
154
- protected getSwapData(): T["Data"];
155
- /**
156
- * @inheritDoc
157
- * @internal
158
- */
159
- protected upgradeVersion(): void;
160
- /**
161
- * @inheritDoc
162
- * @internal
163
- */
164
- protected tryRecomputeSwapPrice(): void;
165
- /**
166
- * @inheritDoc
167
- */
168
- refreshPriceData(): Promise<void>;
169
- /**
170
- * @inheritDoc
171
- * @internal
172
- */
173
- _getEscrowHash(): string | null;
174
- /**
175
- * @inheritDoc
176
- * @internal
177
- */
178
- _getInitiator(): string;
179
- /**
180
- * @inheritDoc
181
- */
182
- getId(): string;
183
- /**
184
- * @inheritDoc
185
- */
186
- getOutputAddress(): string | null;
187
- /**
188
- * @inheritDoc
189
- */
190
- getOutputTxId(): string | null;
191
- /**
192
- * @inheritDoc
193
- */
194
- requiresAction(): boolean;
195
- /**
196
- * @inheritDoc
197
- * @internal
198
- */
199
- protected getIdentifierHashString(): string;
200
- /**
201
- * Returns the payment hash of the swap and lightning network invoice, or `null` if not known (i.e. if
202
- * the swap was recovered from on-chain data, the payment hash might not be known)
203
- *
204
- * @internal
205
- */
206
- protected getPaymentHash(): Buffer | null;
207
- /**
208
- * @inheritDoc
209
- */
210
- getInputAddress(): string | null;
211
- /**
212
- * @inheritDoc
213
- */
214
- getInputTxId(): string | null;
215
- /**
216
- * Returns the lightning network BOLT11 invoice that needs to be paid as an input to the swap
217
- */
218
- getAddress(): string;
219
- /**
220
- * @inheritDoc
221
- */
222
- getHyperlink(): string;
223
- /**
224
- * Returns the timeout time (in UNIX milliseconds) when the swap will definitelly be considered as expired
225
- * if the LP doesn't make it expired sooner
226
- */
227
- getDefinitiveExpiryTime(): number;
228
- /**
229
- * Returns timeout time (in UNIX milliseconds) when the swap htlc will expire
230
- */
231
- getHtlcTimeoutTime(): number | null;
232
- /**
233
- * @inheritDoc
234
- */
235
- isFinished(): boolean;
236
- /**
237
- * @inheritDoc
238
- */
239
- isClaimable(): boolean;
240
- /**
241
- * @inheritDoc
242
- */
243
- isSuccessful(): boolean;
244
- /**
245
- * @inheritDoc
246
- */
247
- isFailed(): boolean;
248
- /**
249
- * @inheritDoc
250
- */
251
- isInProgress(): boolean;
252
- /**
253
- * @inheritDoc
254
- */
255
- isQuoteExpired(): boolean;
256
- /**
257
- * @inheritDoc
258
- */
259
- isQuoteSoftExpired(): boolean;
260
- /**
261
- * @inheritDoc
262
- */
263
- _verifyQuoteDefinitelyExpired(): Promise<boolean>;
264
- /**
265
- * @inheritDoc
266
- */
267
- _verifyQuoteValid(): Promise<boolean>;
268
- /**
269
- * Returns the satoshi amount of the lightning network invoice, or `null` if the lightning network
270
- * invoice is not known (i.e. when the swap was recovered from on-chain data, the paid invoice
271
- * cannot be recovered because it is purely off-chain)
272
- *
273
- * @internal
274
- */
275
- protected getLightningInvoiceSats(): bigint | null;
276
- /**
277
- * Returns the watchtower fee paid in BTC satoshis, or null if known (i.e. if the swap was recovered from
278
- * on-chain data)
279
- *
280
- * @protected
281
- */
282
- protected getWatchtowerFeeAmountBtc(): bigint | null;
283
- /**
284
- * Returns the input amount for the actual swap (excluding the input amount used to cover the "gas drop"
285
- * part of the swap), excluding fees
286
- *
287
- * @internal
288
- */
289
- protected getInputSwapAmountWithoutFee(): bigint | null;
290
- /**
291
- * Returns the input amount purely for the "gas drop" part of the swap (this much BTC in sats will be
292
- * swapped into the native gas token on the destination chain), excluding fees
293
- *
294
- * @internal
295
- */
296
- protected getInputGasAmountWithoutFee(): bigint | null;
297
- /**
298
- * Get total btc amount in sats on the input, excluding the swap fee and watchtower fee
299
- *
300
- * @internal
301
- */
302
- protected getInputAmountWithoutFee(): bigint | null;
303
- /**
304
- * Returns the "would be" output amount if the swap charged no swap fee
305
- *
306
- * @internal
307
- */
308
- protected getOutputAmountWithoutFee(): bigint;
309
- /**
310
- * @inheritDoc
311
- */
312
- getInputToken(): BtcToken<true>;
313
- /**
314
- * @inheritDoc
315
- */
316
- getInput(): TokenAmount<BtcToken<true>>;
317
- /**
318
- * @inheritDoc
319
- */
320
- getInputWithoutFee(): TokenAmount<BtcToken<true>>;
321
- /**
322
- * @inheritDoc
323
- */
324
- getOutputToken(): SCToken<T["ChainId"]>;
325
- /**
326
- * @inheritDoc
327
- */
328
- getOutput(): TokenAmount<SCToken<T["ChainId"]>, true>;
329
- /**
330
- * @inheritDoc
331
- */
332
- getGasDropOutput(): TokenAmount<SCToken<T["ChainId"]>, true>;
333
- /**
334
- * Returns the swap fee charged by the intermediary (LP) on this swap
335
- *
336
- * @internal
337
- */
338
- protected getSwapFee(): Fee<T["ChainId"], BtcToken<true>, SCToken<T["ChainId"]>>;
339
- /**
340
- * Returns the fee to be paid to watchtowers on the destination chain to automatically
341
- * process and settle this swap without requiring any user interaction
342
- *
343
- * @internal
344
- */
345
- protected getWatchtowerFee(): Fee<T["ChainId"], BtcToken<true>, SCToken<T["ChainId"]>>;
346
- /**
347
- * @inheritDoc
348
- */
349
- getFee(): Fee<T["ChainId"], BtcToken<true>, SCToken<T["ChainId"]>>;
350
- /**
351
- * @inheritDoc
352
- */
353
- getFeeBreakdown(): [
354
- {
355
- type: FeeType.SWAP;
356
- fee: Fee<T["ChainId"], BtcToken<true>, SCToken<T["ChainId"]>>;
357
- },
358
- {
359
- type: FeeType.NETWORK_OUTPUT;
360
- fee: Fee<T["ChainId"], BtcToken<true>, SCToken<T["ChainId"]>>;
361
- }
362
- ];
363
- private isValidSecretPreimage;
364
- /**
365
- * Sets the secret preimage for the swap, in case it is not known already
366
- *
367
- * @param secret Secret preimage that matches the expected payment hash
368
- *
369
- * @throws {Error} If an invalid secret preimage is provided
370
- */
371
- setSecretPreimage(secret: string): void;
372
- /**
373
- * Returns whether the secret preimage for this swap is known
374
- */
375
- hasSecretPreimage(): boolean;
376
- /**
377
- * Executes the swap with the provided bitcoin lightning network wallet or LNURL
378
- *
379
- * @param walletOrLnurlWithdraw Bitcoin lightning wallet to use to pay the lightning network invoice, or an LNURL-withdraw
380
- * link, wallet is not required and the LN invoice can be paid externally as well (just pass null or undefined here)
381
- * @param callbacks Callbacks to track the progress of the swap
382
- * @param options Optional options for the swap like AbortSignal, and timeouts/intervals
383
- * @param options.secret A swap secret to broadcast to watchtowers, generally only needed if the swap
384
- * was recovered from on-chain data, or the pre-image was generated outside the SDK
385
- *
386
- * @returns {boolean} Whether a swap was settled automatically by swap watchtowers or requires manual claim by the
387
- * user, in case `false` is returned the user should call `swap.claim()` to settle the swap on the destination manually
388
- */
389
- execute(walletOrLnurlWithdraw?: MinimalLightningNetworkWalletInterface | LNURLWithdraw | string | null | undefined, callbacks?: {
390
- onSourceTransactionReceived?: (sourceTxId: string) => void;
391
- onSwapSettled?: (destinationTxId: string) => void;
392
- }, options?: {
393
- abortSignal?: AbortSignal;
394
- lightningTxCheckIntervalSeconds?: number;
395
- maxWaitTillAutomaticSettlementSeconds?: number;
396
- secret?: string;
397
- }): Promise<boolean>;
398
- /**
399
- * @inheritDoc
400
- */
401
- txsExecute(): Promise<{
402
- name: "Payment";
403
- description: string;
404
- chain: "LIGHTNING";
405
- txs: {
406
- type: "BOLT11_PAYMENT_REQUEST";
407
- address: string;
408
- hyperlink: string;
409
- }[];
410
- }[]>;
411
- /**
412
- *
413
- * @param options.manualSettlementSmartChainSigner Optional smart chain signer to create a manual claim (settlement) transaction
414
- * @param options.maxWaitTillAutomaticSettlementSeconds Maximum time to wait for an automatic settlement after
415
- * the bitcoin transaction is confirmed (defaults to 60 seconds)
416
- * @param options.secret A swap secret to broadcast to watchtowers, generally only needed if the swap
417
- * was recovered from on-chain data, or the pre-image was generated outside the SDK
418
- */
419
- getCurrentActions(options?: {
420
- manualSettlementSmartChainSigner?: string | T["Signer"] | T["NativeSigner"];
421
- maxWaitTillAutomaticSettlementSeconds?: number;
422
- secret?: string;
423
- }): Promise<SwapExecutionAction<T>[]>;
424
- /**
425
- * Checks whether the LP received the LN payment
426
- *
427
- * @param save If the new swap state should be saved
428
- *
429
- * @internal
430
- */
431
- _checkIntermediaryPaymentReceived(save?: boolean): Promise<boolean | null>;
432
- /**
433
- * Checks and overrides the swap data for this swap. This is used to set the swap data from
434
- * on-chain events.
435
- *
436
- * @param data Swap data of the escrow swap
437
- * @param save If the new data should be saved
438
- *
439
- * @internal
440
- */
441
- _saveRealSwapData(data: T["Data"], save?: boolean): Promise<boolean>;
442
- /**
443
- * Checks the data returned by the intermediary in the payment auth request
444
- *
445
- * @param data Parsed swap data as returned by the intermediary
446
- *
447
- * @throws {IntermediaryError} If the returned are not valid
448
- * @throws {Error} If the swap is already committed on-chain
449
- *
450
- * @private
451
- */
452
- private checkIntermediaryReturnedData;
453
- /**
454
- * Waits till a lightning network payment is received by the intermediary, and the intermediary
455
- * initiates the swap HTLC on the smart chain side. After the HTLC is initiated you can wait
456
- * for an automatic settlement by the watchtowers with the {@link waitTillClaimed} function,
457
- * or settle manually using the {@link claim} or {@link txsClaim} functions.
458
- *
459
- * If this swap is using an LNURL-withdraw link as input, it automatically posts the
460
- * generated invoice to the LNURL service to pay it.
461
- *
462
- * @param onPaymentReceived Callback as for when the LP reports having received the ln payment
463
- * @param abortSignal Abort signal to stop waiting for payment
464
- * @param checkIntervalSeconds How often to poll the intermediary for answer (default 5 seconds)
465
- */
466
- waitForPayment(onPaymentReceived?: (txId: string) => void, checkIntervalSeconds?: number, abortSignal?: AbortSignal): Promise<boolean>;
467
- /**
468
- * Waits till the intermediary (LP) initiates the swap HTLC escrow on the destination smart chain side
469
- *
470
- * @param checkIntervalSeconds How often to check via a polling watchdog
471
- * @param abortSignal Abort signal
472
- *
473
- * @internal
474
- */
475
- protected waitTillCommited(checkIntervalSeconds?: number, abortSignal?: AbortSignal): Promise<void>;
476
- /**
477
- * @inheritDoc
478
- *
479
- * @param _signer Optional signer address to use for claiming the swap, can also be different from the initializer
480
- * @param secret A swap secret to use for the claim transaction, generally only needed if the swap
481
- * was recovered from on-chain data, or the pre-image was generated outside the SDK
482
- *
483
- * @throws {Error} If in invalid state (must be {@link FromBTCLNAutoSwapState.CLAIM_COMMITED})
484
- */
485
- txsClaim(_signer?: string | T["Signer"] | T["NativeSigner"], secret?: string): Promise<T["TX"][]>;
486
- /**
487
- * @inheritDoc
488
- *
489
- * @param _signer Signer to sign the transactions with, can also be different to the initializer
490
- * @param abortSignal Abort signal to stop waiting for transaction confirmation
491
- * @param onBeforeTxSent
492
- * @param secret A swap secret to use for the claim transaction, generally only needed if the swap
493
- * was recovered from on-chain data, or the pre-image was generated outside the SDK
494
- */
495
- claim(_signer: T["Signer"] | T["NativeSigner"], abortSignal?: AbortSignal, onBeforeTxSent?: (txId: string) => void, secret?: string): Promise<string>;
496
- /**
497
- * Waits till the swap is successfully settled (claimed), should be called after sending the claim (settlement)
498
- * transactions manually to wait till the SDK processes the settlement and updates the swap state accordingly.
499
- *
500
- * @param maxWaitTimeSeconds Maximum time in seconds to wait for the swap to be settled
501
- * @param abortSignal AbortSignal
502
- * @param secret A swap secret to broadcast to watchtowers, generally only needed if the swap
503
- * was recovered from on-chain data, or the pre-image was generated outside the SDK
504
- *
505
- * @throws {Error} If swap is in invalid state (must be {@link FromBTCLNAutoSwapState.CLAIM_COMMITED})
506
- * @throws {Error} If the LP refunded sooner than we were able to claim
507
- * @returns {boolean} whether the swap was claimed in time or not
508
- */
509
- waitTillClaimed(maxWaitTimeSeconds?: number, abortSignal?: AbortSignal, secret?: string): Promise<boolean>;
510
- /**
511
- * Whether this swap uses an LNURL-withdraw link
512
- */
513
- isLNURL(): boolean;
514
- /**
515
- * Gets the used LNURL or `null` if this is not an LNURL-withdraw swap
516
- */
517
- getLNURL(): string | null;
518
- /**
519
- * Pay the generated lightning network invoice with an LNURL-withdraw link, this
520
- * is useful when you want to display a lightning payment QR code and also want to
521
- * allow payments using LNURL-withdraw NFC cards.
522
- *
523
- * Note that the swap needs to be created **without** an LNURL to begin with for this function
524
- * to work. If this swap is already using an LNURL-withdraw link, this function throws.
525
- */
526
- settleWithLNURLWithdraw(lnurl: string | LNURLWithdraw): Promise<void>;
527
- /**
528
- * @inheritDoc
529
- */
530
- serialize(): any;
531
- /**
532
- * Checks the swap's state on-chain and compares it to its internal state, updates/changes it according to on-chain
533
- * data
534
- *
535
- * @private
536
- */
537
- private syncStateFromChain;
538
- /**
539
- * @inheritDoc
540
- * @internal
541
- */
542
- _shouldFetchOnchainState(): boolean;
543
- /**
544
- * @inheritDoc
545
- * @internal
546
- */
547
- _shouldFetchExpiryStatus(): boolean;
548
- /**
549
- * @inheritDoc
550
- * @internal
551
- */
552
- _shouldCheckIntermediary(): boolean;
553
- /**
554
- * @inheritDoc
555
- * @internal
556
- */
557
- _sync(save?: boolean, quoteDefinitelyExpired?: boolean, commitStatus?: SwapCommitState, skipLpCheck?: boolean): Promise<boolean>;
558
- /**
559
- * @inheritDoc
560
- * @internal
561
- */
562
- _forciblySetOnchainState(commitStatus: SwapCommitState): Promise<boolean>;
563
- /**
564
- * Broadcasts the swap secret to the underlying data propagation layer (e.g. Nostr by default)
565
- *
566
- * @param noCheckExpiry Whether a swap expiration check should be skipped broadcasting
567
- * @param secret An optional secret pre-image for the swap to broadcast
568
- *
569
- * @internal
570
- */
571
- _broadcastSecret(noCheckExpiry?: boolean, secret?: string): Promise<void>;
572
- /**
573
- * @inheritDoc
574
- * @internal
575
- */
576
- _tick(save?: boolean): Promise<boolean>;
577
- /**
578
- * Forcibly sets the swap secret pre-image from on-chain data
579
- *
580
- * @internal
581
- */
582
- _setSwapSecret(secret: string): void;
583
- }
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import { SwapType } from "../../../../enums/SwapType";
4
+ import { ChainType, SwapCommitState, SwapData } from "@atomiqlabs/base";
5
+ import { Buffer } from "buffer";
6
+ import { Fee } from "../../../../types/fees/Fee";
7
+ import { IAddressSwap } from "../../../IAddressSwap";
8
+ import { FromBTCLNAutoDefinition, FromBTCLNAutoWrapper } from "./FromBTCLNAutoWrapper";
9
+ import { ISwapWithGasDrop } from "../../../ISwapWithGasDrop";
10
+ import { MinimalLightningNetworkWalletInterface } from "../../../../types/wallets/MinimalLightningNetworkWalletInterface";
11
+ import { IClaimableSwap } from "../../../IClaimableSwap";
12
+ import { IEscrowSwap, IEscrowSwapInit } from "../../IEscrowSwap";
13
+ import { FeeType } from "../../../../enums/FeeType";
14
+ import { TokenAmount } from "../../../../types/TokenAmount";
15
+ import { BtcToken, SCToken } from "../../../../types/Token";
16
+ import { LoggerType } from "../../../../utils/Logger";
17
+ import { LNURLWithdraw } from "../../../../types/lnurl/LNURLWithdraw";
18
+ import { PriceInfoType } from "../../../../types/PriceInfoType";
19
+ import { SwapExecutionAction } from "../../../../types/SwapExecutionAction";
20
+ /**
21
+ * State enum for FromBTCLNAuto swaps
22
+ * @category Swaps/Lightning → Smart chain
23
+ */
24
+ export declare enum FromBTCLNAutoSwapState {
25
+ /**
26
+ * Swap has failed as the user didn't settle the HTLC on the destination before expiration
27
+ */
28
+ FAILED = -4,
29
+ /**
30
+ * Swap has expired for good and there is no way how it can be executed anymore
31
+ */
32
+ QUOTE_EXPIRED = -3,
33
+ /**
34
+ * A swap is almost expired, and it should be presented to the user as expired, though
35
+ * there is still a chance that it will be processed
36
+ */
37
+ QUOTE_SOFT_EXPIRED = -2,
38
+ /**
39
+ * Swap HTLC on the destination chain has expired, it is not safe anymore to settle (claim) the
40
+ * swap on the destination smart chain.
41
+ */
42
+ EXPIRED = -1,
43
+ /**
44
+ * Swap quote was created, use {@link FromBTCLNAutoSwap.getAddress} or {@link FromBTCLNAutoSwap.getHyperlink}
45
+ * to get the bolt11 lightning network invoice to pay to initiate the swap, then use the
46
+ * {@link FromBTCLNAutoSwap.waitForPayment} to wait till the lightning network payment is received
47
+ * by the intermediary (LP) and the destination HTLC escrow is created
48
+ */
49
+ PR_CREATED = 0,
50
+ /**
51
+ * Lightning network payment has been received by the intermediary (LP), but the destination chain
52
+ * HTLC escrow hasn't been created yet. Use {@link FromBTCLNAutoSwap.waitForPayment} to continue waiting
53
+ * till the destination HTLC escrow is created.
54
+ */
55
+ PR_PAID = 1,
56
+ /**
57
+ * Swap escrow HTLC has been created on the destination chain, wait for automatic settlement by the watchtowers
58
+ * using the {@link FromBTCLNAutoSwap.waitTillClaimed} function or settle manually using the
59
+ * {@link FromBTCLNAutoSwap.claim} or {@link FromBTCLNAutoSwap.txsClaim} function.
60
+ */
61
+ CLAIM_COMMITED = 2,
62
+ /**
63
+ * Swap successfully settled and funds received on the destination chain
64
+ */
65
+ CLAIM_CLAIMED = 3
66
+ }
67
+ export type FromBTCLNAutoSwapInit<T extends SwapData> = IEscrowSwapInit<T> & {
68
+ pr?: string;
69
+ secret?: string;
70
+ initialSwapData: T;
71
+ btcAmountSwap?: bigint;
72
+ btcAmountGas?: bigint;
73
+ gasSwapFeeBtc: bigint;
74
+ gasSwapFee: bigint;
75
+ gasPricingInfo?: PriceInfoType;
76
+ lnurl?: string;
77
+ lnurlK1?: string;
78
+ lnurlCallback?: string;
79
+ };
80
+ export declare function isFromBTCLNAutoSwapInit<T extends SwapData>(obj: any): obj is FromBTCLNAutoSwapInit<T>;
81
+ /**
82
+ * New escrow based (HTLC) swaps for Bitcoin Lightning -> Smart chain swaps not requiring manual settlement on
83
+ * the destination by the user, and instead letting the LP initiate the escrow. Permissionless watchtower network
84
+ * handles the claiming of HTLC, with the swap secret broadcasted over Nostr. Also adds a possibility for the user
85
+ * to receive a native token on the destination chain as part of the swap (a "gas drop" feature).
86
+ *
87
+ * @category Swaps/Lightning → Smart chain
88
+ */
89
+ export declare class FromBTCLNAutoSwap<T extends ChainType = ChainType> extends IEscrowSwap<T, FromBTCLNAutoDefinition<T>> implements IAddressSwap, ISwapWithGasDrop<T>, IClaimableSwap<T, FromBTCLNAutoDefinition<T>, FromBTCLNAutoSwapState> {
90
+ protected readonly TYPE: SwapType.FROM_BTCLN_AUTO;
91
+ /**
92
+ * @internal
93
+ */
94
+ protected readonly swapStateName: (state: number) => string;
95
+ /**
96
+ * @internal
97
+ */
98
+ protected readonly swapStateDescription: {
99
+ [-4]: string;
100
+ [-3]: string;
101
+ [-2]: string;
102
+ [-1]: string;
103
+ 0: string;
104
+ 1: string;
105
+ 2: string;
106
+ 3: string;
107
+ };
108
+ /**
109
+ * @internal
110
+ */
111
+ protected readonly logger: LoggerType;
112
+ /**
113
+ * @internal
114
+ */
115
+ protected readonly inputToken: BtcToken<true>;
116
+ /**
117
+ * Timestamp at which the HTLC was commited on the smart chain side
118
+ * @internal
119
+ */
120
+ _commitedAt?: number;
121
+ private readonly lnurlFailSignal;
122
+ private readonly usesClaimHashAsId;
123
+ private readonly initialSwapData;
124
+ private readonly btcAmountSwap?;
125
+ private readonly btcAmountGas?;
126
+ private readonly gasSwapFeeBtc;
127
+ private readonly gasSwapFee;
128
+ private readonly gasPricingInfo?;
129
+ /**
130
+ * In case the swap is recovered from on-chain data, the pr saved here is just a payment hash,
131
+ * as it is impossible to retrieve the actual lightning network invoice paid purely from on-chain
132
+ * data
133
+ * @private
134
+ */
135
+ private pr?;
136
+ private secret?;
137
+ private lnurl?;
138
+ private lnurlK1?;
139
+ private lnurlCallback?;
140
+ private prPosted?;
141
+ private broadcastTickCounter;
142
+ /**
143
+ * Sets the LNURL data for the swap
144
+ *
145
+ * @internal
146
+ */
147
+ _setLNURLData(lnurl: string, lnurlK1: string, lnurlCallback: string): void;
148
+ constructor(wrapper: FromBTCLNAutoWrapper<T>, init: FromBTCLNAutoSwapInit<T["Data"]>);
149
+ constructor(wrapper: FromBTCLNAutoWrapper<T>, obj: any);
150
+ /**
151
+ * @inheritDoc
152
+ * @internal
153
+ */
154
+ protected getSwapData(): T["Data"];
155
+ /**
156
+ * @inheritDoc
157
+ * @internal
158
+ */
159
+ protected upgradeVersion(): void;
160
+ /**
161
+ * @inheritDoc
162
+ * @internal
163
+ */
164
+ protected tryRecomputeSwapPrice(): void;
165
+ /**
166
+ * @inheritDoc
167
+ */
168
+ refreshPriceData(): Promise<void>;
169
+ /**
170
+ * @inheritDoc
171
+ * @internal
172
+ */
173
+ _getEscrowHash(): string | null;
174
+ /**
175
+ * @inheritDoc
176
+ * @internal
177
+ */
178
+ _getInitiator(): string;
179
+ /**
180
+ * @inheritDoc
181
+ */
182
+ getId(): string;
183
+ /**
184
+ * @inheritDoc
185
+ */
186
+ getOutputAddress(): string | null;
187
+ /**
188
+ * @inheritDoc
189
+ */
190
+ getOutputTxId(): string | null;
191
+ /**
192
+ * @inheritDoc
193
+ */
194
+ requiresAction(): boolean;
195
+ /**
196
+ * @inheritDoc
197
+ * @internal
198
+ */
199
+ protected getIdentifierHashString(): string;
200
+ /**
201
+ * Returns the payment hash of the swap and lightning network invoice, or `null` if not known (i.e. if
202
+ * the swap was recovered from on-chain data, the payment hash might not be known)
203
+ *
204
+ * @internal
205
+ */
206
+ protected getPaymentHash(): Buffer | null;
207
+ /**
208
+ * @inheritDoc
209
+ */
210
+ getInputAddress(): string | null;
211
+ /**
212
+ * @inheritDoc
213
+ */
214
+ getInputTxId(): string | null;
215
+ /**
216
+ * Returns the lightning network BOLT11 invoice that needs to be paid as an input to the swap
217
+ */
218
+ getAddress(): string;
219
+ /**
220
+ * @inheritDoc
221
+ */
222
+ getHyperlink(): string;
223
+ /**
224
+ * Returns the timeout time (in UNIX milliseconds) when the swap will definitelly be considered as expired
225
+ * if the LP doesn't make it expired sooner
226
+ */
227
+ getDefinitiveExpiryTime(): number;
228
+ /**
229
+ * Returns timeout time (in UNIX milliseconds) when the swap htlc will expire
230
+ */
231
+ getHtlcTimeoutTime(): number | null;
232
+ /**
233
+ * @inheritDoc
234
+ */
235
+ isFinished(): boolean;
236
+ /**
237
+ * @inheritDoc
238
+ */
239
+ isClaimable(): boolean;
240
+ /**
241
+ * @inheritDoc
242
+ */
243
+ isSuccessful(): boolean;
244
+ /**
245
+ * @inheritDoc
246
+ */
247
+ isFailed(): boolean;
248
+ /**
249
+ * @inheritDoc
250
+ */
251
+ isInProgress(): boolean;
252
+ /**
253
+ * @inheritDoc
254
+ */
255
+ isQuoteExpired(): boolean;
256
+ /**
257
+ * @inheritDoc
258
+ */
259
+ isQuoteSoftExpired(): boolean;
260
+ /**
261
+ * @inheritDoc
262
+ */
263
+ _verifyQuoteDefinitelyExpired(): Promise<boolean>;
264
+ /**
265
+ * @inheritDoc
266
+ */
267
+ _verifyQuoteValid(): Promise<boolean>;
268
+ /**
269
+ * Returns the satoshi amount of the lightning network invoice, or `null` if the lightning network
270
+ * invoice is not known (i.e. when the swap was recovered from on-chain data, the paid invoice
271
+ * cannot be recovered because it is purely off-chain)
272
+ *
273
+ * @internal
274
+ */
275
+ protected getLightningInvoiceSats(): bigint | null;
276
+ /**
277
+ * Returns the watchtower fee paid in BTC satoshis, or null if known (i.e. if the swap was recovered from
278
+ * on-chain data)
279
+ *
280
+ * @protected
281
+ */
282
+ protected getWatchtowerFeeAmountBtc(): bigint | null;
283
+ /**
284
+ * Returns the input amount for the actual swap (excluding the input amount used to cover the "gas drop"
285
+ * part of the swap), excluding fees
286
+ *
287
+ * @internal
288
+ */
289
+ protected getInputSwapAmountWithoutFee(): bigint | null;
290
+ /**
291
+ * Returns the input amount purely for the "gas drop" part of the swap (this much BTC in sats will be
292
+ * swapped into the native gas token on the destination chain), excluding fees
293
+ *
294
+ * @internal
295
+ */
296
+ protected getInputGasAmountWithoutFee(): bigint | null;
297
+ /**
298
+ * Get total btc amount in sats on the input, excluding the swap fee and watchtower fee
299
+ *
300
+ * @internal
301
+ */
302
+ protected getInputAmountWithoutFee(): bigint | null;
303
+ /**
304
+ * Returns the "would be" output amount if the swap charged no swap fee
305
+ *
306
+ * @internal
307
+ */
308
+ protected getOutputAmountWithoutFee(): bigint;
309
+ /**
310
+ * @inheritDoc
311
+ */
312
+ getInputToken(): BtcToken<true>;
313
+ /**
314
+ * @inheritDoc
315
+ */
316
+ getInput(): TokenAmount<BtcToken<true>>;
317
+ /**
318
+ * @inheritDoc
319
+ */
320
+ getInputWithoutFee(): TokenAmount<BtcToken<true>>;
321
+ /**
322
+ * @inheritDoc
323
+ */
324
+ getOutputToken(): SCToken<T["ChainId"]>;
325
+ /**
326
+ * @inheritDoc
327
+ */
328
+ getOutput(): TokenAmount<SCToken<T["ChainId"]>, true>;
329
+ /**
330
+ * @inheritDoc
331
+ */
332
+ getGasDropOutput(): TokenAmount<SCToken<T["ChainId"]>, true>;
333
+ /**
334
+ * Returns the swap fee charged by the intermediary (LP) on this swap
335
+ *
336
+ * @internal
337
+ */
338
+ protected getSwapFee(): Fee<T["ChainId"], BtcToken<true>, SCToken<T["ChainId"]>>;
339
+ /**
340
+ * Returns the fee to be paid to watchtowers on the destination chain to automatically
341
+ * process and settle this swap without requiring any user interaction
342
+ *
343
+ * @internal
344
+ */
345
+ protected getWatchtowerFee(): Fee<T["ChainId"], BtcToken<true>, SCToken<T["ChainId"]>>;
346
+ /**
347
+ * @inheritDoc
348
+ */
349
+ getFee(): Fee<T["ChainId"], BtcToken<true>, SCToken<T["ChainId"]>>;
350
+ /**
351
+ * @inheritDoc
352
+ */
353
+ getFeeBreakdown(): [
354
+ {
355
+ type: FeeType.SWAP;
356
+ fee: Fee<T["ChainId"], BtcToken<true>, SCToken<T["ChainId"]>>;
357
+ },
358
+ {
359
+ type: FeeType.NETWORK_OUTPUT;
360
+ fee: Fee<T["ChainId"], BtcToken<true>, SCToken<T["ChainId"]>>;
361
+ }
362
+ ];
363
+ private isValidSecretPreimage;
364
+ /**
365
+ * Sets the secret preimage for the swap, in case it is not known already
366
+ *
367
+ * @param secret Secret preimage that matches the expected payment hash
368
+ *
369
+ * @throws {Error} If an invalid secret preimage is provided
370
+ */
371
+ setSecretPreimage(secret: string): void;
372
+ /**
373
+ * Returns whether the secret preimage for this swap is known
374
+ */
375
+ hasSecretPreimage(): boolean;
376
+ /**
377
+ * Executes the swap with the provided bitcoin lightning network wallet or LNURL
378
+ *
379
+ * @param walletOrLnurlWithdraw Bitcoin lightning wallet to use to pay the lightning network invoice, or an LNURL-withdraw
380
+ * link, wallet is not required and the LN invoice can be paid externally as well (just pass null or undefined here)
381
+ * @param callbacks Callbacks to track the progress of the swap
382
+ * @param options Optional options for the swap like AbortSignal, and timeouts/intervals
383
+ * @param options.secret A swap secret to broadcast to watchtowers, generally only needed if the swap
384
+ * was recovered from on-chain data, or the pre-image was generated outside the SDK
385
+ *
386
+ * @returns {boolean} Whether a swap was settled automatically by swap watchtowers or requires manual claim by the
387
+ * user, in case `false` is returned the user should call `swap.claim()` to settle the swap on the destination manually
388
+ */
389
+ execute(walletOrLnurlWithdraw?: MinimalLightningNetworkWalletInterface | LNURLWithdraw | string | null | undefined, callbacks?: {
390
+ onSourceTransactionReceived?: (sourceTxId: string) => void;
391
+ onSwapSettled?: (destinationTxId: string) => void;
392
+ }, options?: {
393
+ abortSignal?: AbortSignal;
394
+ lightningTxCheckIntervalSeconds?: number;
395
+ maxWaitTillAutomaticSettlementSeconds?: number;
396
+ secret?: string;
397
+ }): Promise<boolean>;
398
+ /**
399
+ * @inheritDoc
400
+ */
401
+ txsExecute(): Promise<{
402
+ name: "Payment";
403
+ description: string;
404
+ chain: "LIGHTNING";
405
+ txs: {
406
+ type: "BOLT11_PAYMENT_REQUEST";
407
+ address: string;
408
+ hyperlink: string;
409
+ }[];
410
+ }[]>;
411
+ /**
412
+ *
413
+ * @param options.manualSettlementSmartChainSigner Optional smart chain signer to create a manual claim (settlement) transaction
414
+ * @param options.maxWaitTillAutomaticSettlementSeconds Maximum time to wait for an automatic settlement after
415
+ * the bitcoin transaction is confirmed (defaults to 60 seconds)
416
+ * @param options.secret A swap secret to broadcast to watchtowers, generally only needed if the swap
417
+ * was recovered from on-chain data, or the pre-image was generated outside the SDK
418
+ */
419
+ getCurrentActions(options?: {
420
+ manualSettlementSmartChainSigner?: string | T["Signer"] | T["NativeSigner"];
421
+ maxWaitTillAutomaticSettlementSeconds?: number;
422
+ secret?: string;
423
+ }): Promise<SwapExecutionAction<T>[]>;
424
+ /**
425
+ * Checks whether the LP received the LN payment
426
+ *
427
+ * @param save If the new swap state should be saved
428
+ *
429
+ * @internal
430
+ */
431
+ _checkIntermediaryPaymentReceived(save?: boolean): Promise<boolean | null>;
432
+ /**
433
+ * Checks and overrides the swap data for this swap. This is used to set the swap data from
434
+ * on-chain events.
435
+ *
436
+ * @param data Swap data of the escrow swap
437
+ * @param save If the new data should be saved
438
+ *
439
+ * @internal
440
+ */
441
+ _saveRealSwapData(data: T["Data"], save?: boolean): Promise<boolean>;
442
+ /**
443
+ * Checks the data returned by the intermediary in the payment auth request
444
+ *
445
+ * @param data Parsed swap data as returned by the intermediary
446
+ *
447
+ * @throws {IntermediaryError} If the returned are not valid
448
+ * @throws {Error} If the swap is already committed on-chain
449
+ *
450
+ * @private
451
+ */
452
+ private checkIntermediaryReturnedData;
453
+ /**
454
+ * Waits till a lightning network payment is received by the intermediary, and the intermediary
455
+ * initiates the swap HTLC on the smart chain side. After the HTLC is initiated you can wait
456
+ * for an automatic settlement by the watchtowers with the {@link waitTillClaimed} function,
457
+ * or settle manually using the {@link claim} or {@link txsClaim} functions.
458
+ *
459
+ * If this swap is using an LNURL-withdraw link as input, it automatically posts the
460
+ * generated invoice to the LNURL service to pay it.
461
+ *
462
+ * @param onPaymentReceived Callback as for when the LP reports having received the ln payment
463
+ * @param abortSignal Abort signal to stop waiting for payment
464
+ * @param checkIntervalSeconds How often to poll the intermediary for answer (default 5 seconds)
465
+ */
466
+ waitForPayment(onPaymentReceived?: (txId: string) => void, checkIntervalSeconds?: number, abortSignal?: AbortSignal): Promise<boolean>;
467
+ /**
468
+ * Waits till the intermediary (LP) initiates the swap HTLC escrow on the destination smart chain side
469
+ *
470
+ * @param checkIntervalSeconds How often to check via a polling watchdog
471
+ * @param abortSignal Abort signal
472
+ *
473
+ * @internal
474
+ */
475
+ protected waitTillCommited(checkIntervalSeconds?: number, abortSignal?: AbortSignal): Promise<void>;
476
+ /**
477
+ * @inheritDoc
478
+ *
479
+ * @param _signer Optional signer address to use for claiming the swap, can also be different from the initializer
480
+ * @param secret A swap secret to use for the claim transaction, generally only needed if the swap
481
+ * was recovered from on-chain data, or the pre-image was generated outside the SDK
482
+ *
483
+ * @throws {Error} If in invalid state (must be {@link FromBTCLNAutoSwapState.CLAIM_COMMITED})
484
+ */
485
+ txsClaim(_signer?: string | T["Signer"] | T["NativeSigner"], secret?: string): Promise<T["TX"][]>;
486
+ /**
487
+ * @inheritDoc
488
+ *
489
+ * @param _signer Signer to sign the transactions with, can also be different to the initializer
490
+ * @param abortSignal Abort signal to stop waiting for transaction confirmation
491
+ * @param onBeforeTxSent
492
+ * @param secret A swap secret to use for the claim transaction, generally only needed if the swap
493
+ * was recovered from on-chain data, or the pre-image was generated outside the SDK
494
+ */
495
+ claim(_signer: T["Signer"] | T["NativeSigner"], abortSignal?: AbortSignal, onBeforeTxSent?: (txId: string) => void, secret?: string): Promise<string>;
496
+ /**
497
+ * Waits till the swap is successfully settled (claimed), should be called after sending the claim (settlement)
498
+ * transactions manually to wait till the SDK processes the settlement and updates the swap state accordingly.
499
+ *
500
+ * @param maxWaitTimeSeconds Maximum time in seconds to wait for the swap to be settled
501
+ * @param abortSignal AbortSignal
502
+ * @param secret A swap secret to broadcast to watchtowers, generally only needed if the swap
503
+ * was recovered from on-chain data, or the pre-image was generated outside the SDK
504
+ *
505
+ * @throws {Error} If swap is in invalid state (must be {@link FromBTCLNAutoSwapState.CLAIM_COMMITED})
506
+ * @throws {Error} If the LP refunded sooner than we were able to claim
507
+ * @returns {boolean} whether the swap was claimed in time or not
508
+ */
509
+ waitTillClaimed(maxWaitTimeSeconds?: number, abortSignal?: AbortSignal, secret?: string): Promise<boolean>;
510
+ /**
511
+ * Whether this swap uses an LNURL-withdraw link
512
+ */
513
+ isLNURL(): boolean;
514
+ /**
515
+ * Gets the used LNURL or `null` if this is not an LNURL-withdraw swap
516
+ */
517
+ getLNURL(): string | null;
518
+ /**
519
+ * Pay the generated lightning network invoice with an LNURL-withdraw link, this
520
+ * is useful when you want to display a lightning payment QR code and also want to
521
+ * allow payments using LNURL-withdraw NFC cards.
522
+ *
523
+ * Note that the swap needs to be created **without** an LNURL to begin with for this function
524
+ * to work. If this swap is already using an LNURL-withdraw link, this function throws.
525
+ */
526
+ settleWithLNURLWithdraw(lnurl: string | LNURLWithdraw): Promise<void>;
527
+ /**
528
+ * @inheritDoc
529
+ */
530
+ serialize(): any;
531
+ /**
532
+ * Checks the swap's state on-chain and compares it to its internal state, updates/changes it according to on-chain
533
+ * data
534
+ *
535
+ * @private
536
+ */
537
+ private syncStateFromChain;
538
+ /**
539
+ * @inheritDoc
540
+ * @internal
541
+ */
542
+ _shouldFetchOnchainState(): boolean;
543
+ /**
544
+ * @inheritDoc
545
+ * @internal
546
+ */
547
+ _shouldFetchExpiryStatus(): boolean;
548
+ /**
549
+ * @inheritDoc
550
+ * @internal
551
+ */
552
+ _shouldCheckIntermediary(): boolean;
553
+ /**
554
+ * @inheritDoc
555
+ * @internal
556
+ */
557
+ _sync(save?: boolean, quoteDefinitelyExpired?: boolean, commitStatus?: SwapCommitState, skipLpCheck?: boolean): Promise<boolean>;
558
+ /**
559
+ * @inheritDoc
560
+ * @internal
561
+ */
562
+ _forciblySetOnchainState(commitStatus: SwapCommitState): Promise<boolean>;
563
+ /**
564
+ * Broadcasts the swap secret to the underlying data propagation layer (e.g. Nostr by default)
565
+ *
566
+ * @param noCheckExpiry Whether a swap expiration check should be skipped broadcasting
567
+ * @param secret An optional secret pre-image for the swap to broadcast
568
+ *
569
+ * @internal
570
+ */
571
+ _broadcastSecret(noCheckExpiry?: boolean, secret?: string): Promise<void>;
572
+ /**
573
+ * @inheritDoc
574
+ * @internal
575
+ */
576
+ _tick(save?: boolean): Promise<boolean>;
577
+ /**
578
+ * Forcibly sets the swap secret pre-image from on-chain data
579
+ *
580
+ * @internal
581
+ */
582
+ _setSwapSecret(secret: string): void;
583
+ }