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