@atomiqlabs/sdk 8.8.3 → 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 -7
  6. package/dist/bitcoin/coinselect2/accumulative.js +52 -52
  7. package/dist/bitcoin/coinselect2/blackjack.d.ts +7 -7
  8. package/dist/bitcoin/coinselect2/blackjack.js +38 -38
  9. package/dist/bitcoin/coinselect2/index.d.ts +20 -20
  10. package/dist/bitcoin/coinselect2/index.js +69 -69
  11. package/dist/bitcoin/coinselect2/utils.d.ts +82 -82
  12. package/dist/bitcoin/coinselect2/utils.js +158 -158
  13. package/dist/bitcoin/wallet/BitcoinWallet.d.ts +113 -113
  14. package/dist/bitcoin/wallet/BitcoinWallet.js +335 -335
  15. package/dist/bitcoin/wallet/IBitcoinWallet.d.ts +116 -116
  16. package/dist/bitcoin/wallet/IBitcoinWallet.js +21 -21
  17. package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.d.ts +106 -106
  18. package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.js +196 -196
  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 -450
  60. package/dist/intermediaries/apis/IntermediaryAPI.js +618 -618
  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 -732
  102. package/dist/swapper/Swapper.js +1713 -1713
  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 -637
  164. package/dist/swaps/spv_swaps/SpvFromBTCSwap.js +1448 -1448
  165. package/dist/swaps/spv_swaps/SpvFromBTCWrapper.d.ts +257 -257
  166. package/dist/swaps/spv_swaps/SpvFromBTCWrapper.js +947 -947
  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 -16
  210. package/dist/utils/BitcoinUtils.js +141 -141
  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 -69
  230. package/src/bitcoin/coinselect2/blackjack.ts +50 -50
  231. package/src/bitcoin/coinselect2/index.ts +93 -93
  232. package/src/bitcoin/coinselect2/utils.ts +236 -236
  233. package/src/bitcoin/wallet/BitcoinWallet.ts +439 -439
  234. package/src/bitcoin/wallet/IBitcoinWallet.ts +140 -140
  235. package/src/bitcoin/wallet/SingleAddressBitcoinWallet.ts +225 -225
  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 -963
  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 -2488
  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 -1812
  309. package/src/swaps/spv_swaps/SpvFromBTCWrapper.ts +1236 -1236
  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 -132
  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,392 +1,392 @@
1
- /// <reference types="node" />
2
- import { SwapType } from "../enums/SwapType";
3
- import { EventEmitter } from "events";
4
- import { ISwapWrapper, SwapTypeDefinition } from "./ISwapWrapper";
5
- import { ChainType } from "@atomiqlabs/base";
6
- import { SwapDirection } from "../enums/SwapDirection";
7
- import { Fee } from "../types/fees/Fee";
8
- import { FeeBreakdown } from "../types/fees/FeeBreakdown";
9
- import { PercentagePPM } from "../types/fees/PercentagePPM";
10
- import { TokenAmount } from "../types/TokenAmount";
11
- import { Token } from "../types/Token";
12
- import { SwapExecutionAction } from "../types/SwapExecutionAction";
13
- import { LoggerType } from "../utils/Logger";
14
- import { PriceInfoType } from "../types/PriceInfoType";
15
- import { SwapStateInfo } from "../types/SwapStateInfo";
16
- /**
17
- * Initialization data for creating a swap
18
- *
19
- * @category Swaps/Base
20
- */
21
- export type ISwapInit = {
22
- pricingInfo: PriceInfoType;
23
- url?: string;
24
- expiry: number;
25
- swapFee: bigint;
26
- swapFeeBtc: bigint;
27
- exactIn: boolean;
28
- contractVersion: string;
29
- };
30
- /**
31
- * Type guard to check if an object is an ISwapInit
32
- *
33
- * @category Swaps/Base
34
- */
35
- export declare function isISwapInit(obj: any): obj is ISwapInit;
36
- /**
37
- * Base abstract class for all swap types
38
- *
39
- * @category Swaps/Base
40
- */
41
- export declare abstract class ISwap<T extends ChainType = ChainType, D extends SwapTypeDefinition<T, ISwapWrapper<T, D>, ISwap<T, D, S>> = SwapTypeDefinition<T, ISwapWrapper<T, any>, ISwap<T, any, any>>, S extends number = number> {
42
- /**
43
- * Swap type
44
- */
45
- protected readonly abstract TYPE: SwapType;
46
- /**
47
- * Description for the states
48
- * @internal
49
- */
50
- protected readonly abstract swapStateDescription: Record<S, string>;
51
- /**
52
- * Name of the states
53
- * @internal
54
- */
55
- protected readonly abstract swapStateName: (state: number) => string;
56
- /**
57
- * Swap logger
58
- * @internal
59
- */
60
- protected readonly abstract logger: LoggerType;
61
- /**
62
- * Current newest defined version of the swap
63
- * @internal
64
- */
65
- protected readonly currentVersion: number;
66
- /**
67
- * Wrapper instance holding this swap
68
- * @internal
69
- */
70
- protected readonly wrapper: D["Wrapper"];
71
- /**
72
- * The current version of the swap
73
- * @internal
74
- */
75
- protected version: number;
76
- /**
77
- * Whether a swap was initialized, a swap is considered initialize on first interaction with it, i.e.
78
- * calling commit() on a Smart chain -> Bitcoin swaps, calling waitForPayment() or similar on the other
79
- * direction. Not initiated swaps are not saved to the persistent storage by default (see
80
- * {@link SwapperOptions.saveUninitializedSwaps})
81
- * @internal
82
- */
83
- protected initiated: boolean;
84
- /**
85
- * Expiration of the swap quote
86
- * @internal
87
- */
88
- protected expiry: number;
89
- /**
90
- * Pricing information of the swap
91
- * @internal
92
- */
93
- protected pricingInfo?: PriceInfoType;
94
- /**
95
- * Swap fee in the non-bitcoin token
96
- * @internal
97
- */
98
- protected swapFee: bigint;
99
- /**
100
- * Swap fee in bitcoin satoshis
101
- * @internal
102
- */
103
- protected swapFeeBtc: bigint;
104
- /**
105
- * Swap state
106
- * @internal
107
- */
108
- _state: S;
109
- /**
110
- * Random nonce to differentiate the swap from others with the same identifier hash (i.e. when quoting the same swap
111
- * from multiple LPs)
112
- * @internal
113
- */
114
- _randomNonce: string;
115
- /**
116
- * Whether the swap is saved in the persistent storage or not.
117
- *
118
- * @remarks This field itself is not persisted but is instead derived during runtime
119
- *
120
- * @internal
121
- */
122
- _persisted: boolean;
123
- /**
124
- * @internal
125
- */
126
- _contractVersion?: string;
127
- /**
128
- * Event emitter emitting `"swapState"` event when swap's state changes
129
- */
130
- readonly events: EventEmitter<{
131
- swapState: [D["Swap"]];
132
- }>;
133
- /**
134
- * URL of the intermediary (LP) used for this swap, already has the swap service specific path appended
135
- */
136
- readonly url?: string;
137
- /**
138
- * Smart chain identifier string corresponding to this swap
139
- */
140
- readonly chainIdentifier: T["ChainId"];
141
- /**
142
- * Whether a swap is an exact input swap
143
- */
144
- readonly exactIn: boolean;
145
- /**
146
- * A UNIX milliseconds timestamps of when this swap was created
147
- */
148
- createdAt: number;
149
- protected constructor(wrapper: D["Wrapper"], obj: any);
150
- protected constructor(wrapper: D["Wrapper"], swapInit: ISwapInit);
151
- /**
152
- * Called when swap is deserialized to potentially update the version of the data for the swap
153
- *
154
- * @internal
155
- */
156
- protected abstract upgradeVersion(): void;
157
- /**
158
- * Waits till the swap reaches a specific state
159
- *
160
- * @param targetState The state to wait for
161
- * @param type Whether to wait for the state exactly or also to a state with a higher number
162
- * @param abortSignal Abort signal
163
- * @internal
164
- */
165
- protected waitTillState(targetState: S, type?: "eq" | "gte" | "neq", abortSignal?: AbortSignal): Promise<void>;
166
- /**
167
- * Returns a list of steps or transactions required to finish and settle the swap
168
- *
169
- * @param options Additional options for executing the swap
170
- */
171
- abstract txsExecute(options?: any): Promise<SwapExecutionAction<T>[]>;
172
- /**
173
- * Executes the swap with the provided wallet, the exact arguments for this functions differ for various swap
174
- * types. Check the `execute()` function signature in the respective swap class to see the required arguments.
175
- *
176
- * @param args Execution arguments, usually contains a source wallet object, callbacks and options, for exact
177
- * syntax check the respective swap class.
178
- *
179
- * @returns Whether a swap was successfully executed or not, if it wasn't the user can refund or claim manually
180
- */
181
- abstract execute(...args: any[]): Promise<boolean>;
182
- /**
183
- * This attempts to populate missing fields in the pricing info based on the swap amounts
184
- *
185
- * @internal
186
- */
187
- protected tryRecomputeSwapPrice(): void;
188
- /**
189
- * Re-fetches & revalidates the price data based on the current market prices
190
- */
191
- refreshPriceData(): Promise<void>;
192
- /**
193
- * Checks if the pricing for the swap is valid, according to max allowed price difference set in the ISwapPrice
194
- */
195
- hasValidPrice(): boolean;
196
- /**
197
- * Returns pricing info about the swap
198
- */
199
- getPriceInfo(): {
200
- marketPrice?: number;
201
- swapPrice: number;
202
- difference: PercentagePPM;
203
- };
204
- /**
205
- * Asserts a given signer is the initiator of this swap
206
- *
207
- * @param signer Signer to check with this swap's initiator
208
- * @throws {Error} When signer's address doesn't match with the swap's initiator one
209
- * @internal
210
- */
211
- protected checkSigner(signer: T["Signer"] | string): void;
212
- /**
213
- * Returns an escrow hash of the swap
214
- *
215
- * @internal
216
- */
217
- abstract _getEscrowHash(): string | null;
218
- /**
219
- * Checks if the swap's quote is expired for good (i.e. the swap strictly cannot be initiated anymore)
220
- * @internal
221
- */
222
- abstract _verifyQuoteDefinitelyExpired(): Promise<boolean>;
223
- /**
224
- * Checks if the swap's quote is still valid
225
- * @internal
226
- */
227
- abstract _verifyQuoteValid(): Promise<boolean>;
228
- /**
229
- * Returns the intiator address of the swap - address that created this swap
230
- * @internal
231
- */
232
- abstract _getInitiator(): string;
233
- /**
234
- * Sets this swap as initiated
235
- * @internal
236
- */
237
- _setInitiated(): void;
238
- /**
239
- * Returns source address of the swap
240
- */
241
- abstract getInputAddress(): string | null;
242
- /**
243
- * Returns destination address of the swap
244
- */
245
- abstract getOutputAddress(): string | null;
246
- /**
247
- * Returns swap input transaction ID on the source chain
248
- */
249
- abstract getInputTxId(): string | null;
250
- /**
251
- * Returns swap output transaction ID on the destination chain
252
- */
253
- abstract getOutputTxId(): string | null;
254
- /**
255
- * Returns the ID of the swap, as used in the storage
256
- */
257
- abstract getId(): string;
258
- /**
259
- * Checks whether there is some action required from the user for this swap - can mean either refundable or claimable
260
- */
261
- abstract requiresAction(): boolean;
262
- /**
263
- * Returns whether the swap is finished and in its terminal state (this can mean successful, refunded or failed)
264
- */
265
- abstract isFinished(): boolean;
266
- /**
267
- * Checks whether the swap's quote has definitely expired and cannot be committed anymore, we can remove such swap
268
- */
269
- abstract isQuoteExpired(): boolean;
270
- /**
271
- * Checks whether the swap's quote is soft expired (this means there is not enough time buffer for it to commit,
272
- * but it still can happen)
273
- */
274
- abstract isQuoteSoftExpired(): boolean;
275
- /**
276
- * Returns whether the swap finished successful
277
- */
278
- abstract isSuccessful(): boolean;
279
- /**
280
- * Returns whether the swap failed (e.g. was refunded)
281
- */
282
- abstract isFailed(): boolean;
283
- /**
284
- * Returns whether the swap is currently being processed
285
- */
286
- abstract isInProgress(): boolean;
287
- /**
288
- * Whether a swap was initialized, a swap is considered initialized on first interaction with it, i.e.
289
- * calling commit() on a Smart chain -> Bitcoin swaps, calling waitForPayment() or similar on the other
290
- * direction. Not initiated swaps are not saved to the persistent storage by default (see
291
- * {@link SwapperOptions.saveUninitializedSwaps})
292
- */
293
- isInitiated(): boolean;
294
- /**
295
- * Returns quote expiry in UNIX millis
296
- */
297
- getQuoteExpiry(): number;
298
- /**
299
- * Returns the type of the swap
300
- */
301
- getType(): SwapType;
302
- /**
303
- * Returns the direction of the swap
304
- */
305
- getDirection(): SwapDirection;
306
- /**
307
- * Returns the current state of the swap
308
- */
309
- getState(): S;
310
- /**
311
- * Returns the current state of the swap along with the human-readable description of the state
312
- */
313
- getStateInfo(): SwapStateInfo<S>;
314
- /**
315
- * Returns a state-dependent set of actions for the user to execute, or empty array if there is currently
316
- * no action required from the user to execute.
317
- */
318
- abstract getCurrentActions(): Promise<SwapExecutionAction<T>[]>;
319
- /**
320
- * Returns output amount of the swap, user receives this much
321
- */
322
- abstract getOutput(): TokenAmount;
323
- /**
324
- * Returns the output token of the swap
325
- */
326
- abstract getOutputToken(): Token<T["ChainId"]>;
327
- /**
328
- * Returns input amount of the swap, user needs to pay this much
329
- */
330
- abstract getInput(): TokenAmount;
331
- /**
332
- * Returns the input token of the swap
333
- */
334
- abstract getInputToken(): Token<T["ChainId"]>;
335
- /**
336
- * Returns input amount of the swap without the fees (swap fee, network fee)
337
- */
338
- abstract getInputWithoutFee(): TokenAmount;
339
- /**
340
- * Returns total fee for the swap, the fee is represented in source currency & destination currency, but is
341
- * paid only once
342
- */
343
- abstract getFee(): Fee;
344
- /**
345
- * Returns the breakdown of all the fees paid
346
- */
347
- abstract getFeeBreakdown(): FeeBreakdown<T["ChainId"]>;
348
- /**
349
- * Saves the swap data to the underlying storage, or removes it if it is in a quote expired state
350
- *
351
- * @internal
352
- */
353
- _save(): Promise<void>;
354
- /**
355
- * Saves the swap data and also emits a swap state change
356
- *
357
- * @param state Optional state to set before the swap is saved an event emitted
358
- *
359
- * @internal
360
- */
361
- _saveAndEmit(state?: S): Promise<void>;
362
- /**
363
- * Serializes the swap to a JSON stringifiable representation (i.e. no bigints, buffers etc.)
364
- */
365
- serialize(): any;
366
- /**
367
- * Emits a `swapState` event with the current swap
368
- *
369
- * @internal
370
- */
371
- _emitEvent(): void;
372
- /**
373
- * Synchronizes swap state from chain and/or LP node, usually ran on startup
374
- *
375
- * @param save whether to save the new swap state or not
376
- *
377
- * @returns {boolean} true if the swap changed, false if the swap hasn't changed
378
- *
379
- * @internal
380
- */
381
- abstract _sync(save?: boolean): Promise<boolean>;
382
- /**
383
- * Runs quick checks on the swap, such as checking the expiry, usually ran periodically every few seconds
384
- *
385
- * @param save whether to save the new swap state or not
386
- *
387
- * @returns {boolean} true if the swap changed, false if the swap hasn't changed
388
- *
389
- * @internal
390
- */
391
- abstract _tick(save?: boolean): Promise<boolean>;
392
- }
1
+ /// <reference types="node" />
2
+ import { SwapType } from "../enums/SwapType";
3
+ import { EventEmitter } from "events";
4
+ import { ISwapWrapper, SwapTypeDefinition } from "./ISwapWrapper";
5
+ import { ChainType } from "@atomiqlabs/base";
6
+ import { SwapDirection } from "../enums/SwapDirection";
7
+ import { Fee } from "../types/fees/Fee";
8
+ import { FeeBreakdown } from "../types/fees/FeeBreakdown";
9
+ import { PercentagePPM } from "../types/fees/PercentagePPM";
10
+ import { TokenAmount } from "../types/TokenAmount";
11
+ import { Token } from "../types/Token";
12
+ import { SwapExecutionAction } from "../types/SwapExecutionAction";
13
+ import { LoggerType } from "../utils/Logger";
14
+ import { PriceInfoType } from "../types/PriceInfoType";
15
+ import { SwapStateInfo } from "../types/SwapStateInfo";
16
+ /**
17
+ * Initialization data for creating a swap
18
+ *
19
+ * @category Swaps/Base
20
+ */
21
+ export type ISwapInit = {
22
+ pricingInfo: PriceInfoType;
23
+ url?: string;
24
+ expiry: number;
25
+ swapFee: bigint;
26
+ swapFeeBtc: bigint;
27
+ exactIn: boolean;
28
+ contractVersion: string;
29
+ };
30
+ /**
31
+ * Type guard to check if an object is an ISwapInit
32
+ *
33
+ * @category Swaps/Base
34
+ */
35
+ export declare function isISwapInit(obj: any): obj is ISwapInit;
36
+ /**
37
+ * Base abstract class for all swap types
38
+ *
39
+ * @category Swaps/Base
40
+ */
41
+ export declare abstract class ISwap<T extends ChainType = ChainType, D extends SwapTypeDefinition<T, ISwapWrapper<T, D>, ISwap<T, D, S>> = SwapTypeDefinition<T, ISwapWrapper<T, any>, ISwap<T, any, any>>, S extends number = number> {
42
+ /**
43
+ * Swap type
44
+ */
45
+ protected readonly abstract TYPE: SwapType;
46
+ /**
47
+ * Description for the states
48
+ * @internal
49
+ */
50
+ protected readonly abstract swapStateDescription: Record<S, string>;
51
+ /**
52
+ * Name of the states
53
+ * @internal
54
+ */
55
+ protected readonly abstract swapStateName: (state: number) => string;
56
+ /**
57
+ * Swap logger
58
+ * @internal
59
+ */
60
+ protected readonly abstract logger: LoggerType;
61
+ /**
62
+ * Current newest defined version of the swap
63
+ * @internal
64
+ */
65
+ protected readonly currentVersion: number;
66
+ /**
67
+ * Wrapper instance holding this swap
68
+ * @internal
69
+ */
70
+ protected readonly wrapper: D["Wrapper"];
71
+ /**
72
+ * The current version of the swap
73
+ * @internal
74
+ */
75
+ protected version: number;
76
+ /**
77
+ * Whether a swap was initialized, a swap is considered initialize on first interaction with it, i.e.
78
+ * calling commit() on a Smart chain -> Bitcoin swaps, calling waitForPayment() or similar on the other
79
+ * direction. Not initiated swaps are not saved to the persistent storage by default (see
80
+ * {@link SwapperOptions.saveUninitializedSwaps})
81
+ * @internal
82
+ */
83
+ protected initiated: boolean;
84
+ /**
85
+ * Expiration of the swap quote
86
+ * @internal
87
+ */
88
+ protected expiry: number;
89
+ /**
90
+ * Pricing information of the swap
91
+ * @internal
92
+ */
93
+ protected pricingInfo?: PriceInfoType;
94
+ /**
95
+ * Swap fee in the non-bitcoin token
96
+ * @internal
97
+ */
98
+ protected swapFee: bigint;
99
+ /**
100
+ * Swap fee in bitcoin satoshis
101
+ * @internal
102
+ */
103
+ protected swapFeeBtc: bigint;
104
+ /**
105
+ * Swap state
106
+ * @internal
107
+ */
108
+ _state: S;
109
+ /**
110
+ * Random nonce to differentiate the swap from others with the same identifier hash (i.e. when quoting the same swap
111
+ * from multiple LPs)
112
+ * @internal
113
+ */
114
+ _randomNonce: string;
115
+ /**
116
+ * Whether the swap is saved in the persistent storage or not.
117
+ *
118
+ * @remarks This field itself is not persisted but is instead derived during runtime
119
+ *
120
+ * @internal
121
+ */
122
+ _persisted: boolean;
123
+ /**
124
+ * @internal
125
+ */
126
+ _contractVersion?: string;
127
+ /**
128
+ * Event emitter emitting `"swapState"` event when swap's state changes
129
+ */
130
+ readonly events: EventEmitter<{
131
+ swapState: [D["Swap"]];
132
+ }>;
133
+ /**
134
+ * URL of the intermediary (LP) used for this swap, already has the swap service specific path appended
135
+ */
136
+ readonly url?: string;
137
+ /**
138
+ * Smart chain identifier string corresponding to this swap
139
+ */
140
+ readonly chainIdentifier: T["ChainId"];
141
+ /**
142
+ * Whether a swap is an exact input swap
143
+ */
144
+ readonly exactIn: boolean;
145
+ /**
146
+ * A UNIX milliseconds timestamps of when this swap was created
147
+ */
148
+ createdAt: number;
149
+ protected constructor(wrapper: D["Wrapper"], obj: any);
150
+ protected constructor(wrapper: D["Wrapper"], swapInit: ISwapInit);
151
+ /**
152
+ * Called when swap is deserialized to potentially update the version of the data for the swap
153
+ *
154
+ * @internal
155
+ */
156
+ protected abstract upgradeVersion(): void;
157
+ /**
158
+ * Waits till the swap reaches a specific state
159
+ *
160
+ * @param targetState The state to wait for
161
+ * @param type Whether to wait for the state exactly or also to a state with a higher number
162
+ * @param abortSignal Abort signal
163
+ * @internal
164
+ */
165
+ protected waitTillState(targetState: S, type?: "eq" | "gte" | "neq", abortSignal?: AbortSignal): Promise<void>;
166
+ /**
167
+ * Returns a list of steps or transactions required to finish and settle the swap
168
+ *
169
+ * @param options Additional options for executing the swap
170
+ */
171
+ abstract txsExecute(options?: any): Promise<SwapExecutionAction<T>[]>;
172
+ /**
173
+ * Executes the swap with the provided wallet, the exact arguments for this functions differ for various swap
174
+ * types. Check the `execute()` function signature in the respective swap class to see the required arguments.
175
+ *
176
+ * @param args Execution arguments, usually contains a source wallet object, callbacks and options, for exact
177
+ * syntax check the respective swap class.
178
+ *
179
+ * @returns Whether a swap was successfully executed or not, if it wasn't the user can refund or claim manually
180
+ */
181
+ abstract execute(...args: any[]): Promise<boolean>;
182
+ /**
183
+ * This attempts to populate missing fields in the pricing info based on the swap amounts
184
+ *
185
+ * @internal
186
+ */
187
+ protected tryRecomputeSwapPrice(): void;
188
+ /**
189
+ * Re-fetches & revalidates the price data based on the current market prices
190
+ */
191
+ refreshPriceData(): Promise<void>;
192
+ /**
193
+ * Checks if the pricing for the swap is valid, according to max allowed price difference set in the ISwapPrice
194
+ */
195
+ hasValidPrice(): boolean;
196
+ /**
197
+ * Returns pricing info about the swap
198
+ */
199
+ getPriceInfo(): {
200
+ marketPrice?: number;
201
+ swapPrice: number;
202
+ difference: PercentagePPM;
203
+ };
204
+ /**
205
+ * Asserts a given signer is the initiator of this swap
206
+ *
207
+ * @param signer Signer to check with this swap's initiator
208
+ * @throws {Error} When signer's address doesn't match with the swap's initiator one
209
+ * @internal
210
+ */
211
+ protected checkSigner(signer: T["Signer"] | string): void;
212
+ /**
213
+ * Returns an escrow hash of the swap
214
+ *
215
+ * @internal
216
+ */
217
+ abstract _getEscrowHash(): string | null;
218
+ /**
219
+ * Checks if the swap's quote is expired for good (i.e. the swap strictly cannot be initiated anymore)
220
+ * @internal
221
+ */
222
+ abstract _verifyQuoteDefinitelyExpired(): Promise<boolean>;
223
+ /**
224
+ * Checks if the swap's quote is still valid
225
+ * @internal
226
+ */
227
+ abstract _verifyQuoteValid(): Promise<boolean>;
228
+ /**
229
+ * Returns the intiator address of the swap - address that created this swap
230
+ * @internal
231
+ */
232
+ abstract _getInitiator(): string;
233
+ /**
234
+ * Sets this swap as initiated
235
+ * @internal
236
+ */
237
+ _setInitiated(): void;
238
+ /**
239
+ * Returns source address of the swap
240
+ */
241
+ abstract getInputAddress(): string | null;
242
+ /**
243
+ * Returns destination address of the swap
244
+ */
245
+ abstract getOutputAddress(): string | null;
246
+ /**
247
+ * Returns swap input transaction ID on the source chain
248
+ */
249
+ abstract getInputTxId(): string | null;
250
+ /**
251
+ * Returns swap output transaction ID on the destination chain
252
+ */
253
+ abstract getOutputTxId(): string | null;
254
+ /**
255
+ * Returns the ID of the swap, as used in the storage
256
+ */
257
+ abstract getId(): string;
258
+ /**
259
+ * Checks whether there is some action required from the user for this swap - can mean either refundable or claimable
260
+ */
261
+ abstract requiresAction(): boolean;
262
+ /**
263
+ * Returns whether the swap is finished and in its terminal state (this can mean successful, refunded or failed)
264
+ */
265
+ abstract isFinished(): boolean;
266
+ /**
267
+ * Checks whether the swap's quote has definitely expired and cannot be committed anymore, we can remove such swap
268
+ */
269
+ abstract isQuoteExpired(): boolean;
270
+ /**
271
+ * Checks whether the swap's quote is soft expired (this means there is not enough time buffer for it to commit,
272
+ * but it still can happen)
273
+ */
274
+ abstract isQuoteSoftExpired(): boolean;
275
+ /**
276
+ * Returns whether the swap finished successful
277
+ */
278
+ abstract isSuccessful(): boolean;
279
+ /**
280
+ * Returns whether the swap failed (e.g. was refunded)
281
+ */
282
+ abstract isFailed(): boolean;
283
+ /**
284
+ * Returns whether the swap is currently being processed
285
+ */
286
+ abstract isInProgress(): boolean;
287
+ /**
288
+ * Whether a swap was initialized, a swap is considered initialized on first interaction with it, i.e.
289
+ * calling commit() on a Smart chain -> Bitcoin swaps, calling waitForPayment() or similar on the other
290
+ * direction. Not initiated swaps are not saved to the persistent storage by default (see
291
+ * {@link SwapperOptions.saveUninitializedSwaps})
292
+ */
293
+ isInitiated(): boolean;
294
+ /**
295
+ * Returns quote expiry in UNIX millis
296
+ */
297
+ getQuoteExpiry(): number;
298
+ /**
299
+ * Returns the type of the swap
300
+ */
301
+ getType(): SwapType;
302
+ /**
303
+ * Returns the direction of the swap
304
+ */
305
+ getDirection(): SwapDirection;
306
+ /**
307
+ * Returns the current state of the swap
308
+ */
309
+ getState(): S;
310
+ /**
311
+ * Returns the current state of the swap along with the human-readable description of the state
312
+ */
313
+ getStateInfo(): SwapStateInfo<S>;
314
+ /**
315
+ * Returns a state-dependent set of actions for the user to execute, or empty array if there is currently
316
+ * no action required from the user to execute.
317
+ */
318
+ abstract getCurrentActions(): Promise<SwapExecutionAction<T>[]>;
319
+ /**
320
+ * Returns output amount of the swap, user receives this much
321
+ */
322
+ abstract getOutput(): TokenAmount;
323
+ /**
324
+ * Returns the output token of the swap
325
+ */
326
+ abstract getOutputToken(): Token<T["ChainId"]>;
327
+ /**
328
+ * Returns input amount of the swap, user needs to pay this much
329
+ */
330
+ abstract getInput(): TokenAmount;
331
+ /**
332
+ * Returns the input token of the swap
333
+ */
334
+ abstract getInputToken(): Token<T["ChainId"]>;
335
+ /**
336
+ * Returns input amount of the swap without the fees (swap fee, network fee)
337
+ */
338
+ abstract getInputWithoutFee(): TokenAmount;
339
+ /**
340
+ * Returns total fee for the swap, the fee is represented in source currency & destination currency, but is
341
+ * paid only once
342
+ */
343
+ abstract getFee(): Fee;
344
+ /**
345
+ * Returns the breakdown of all the fees paid
346
+ */
347
+ abstract getFeeBreakdown(): FeeBreakdown<T["ChainId"]>;
348
+ /**
349
+ * Saves the swap data to the underlying storage, or removes it if it is in a quote expired state
350
+ *
351
+ * @internal
352
+ */
353
+ _save(): Promise<void>;
354
+ /**
355
+ * Saves the swap data and also emits a swap state change
356
+ *
357
+ * @param state Optional state to set before the swap is saved an event emitted
358
+ *
359
+ * @internal
360
+ */
361
+ _saveAndEmit(state?: S): Promise<void>;
362
+ /**
363
+ * Serializes the swap to a JSON stringifiable representation (i.e. no bigints, buffers etc.)
364
+ */
365
+ serialize(): any;
366
+ /**
367
+ * Emits a `swapState` event with the current swap
368
+ *
369
+ * @internal
370
+ */
371
+ _emitEvent(): void;
372
+ /**
373
+ * Synchronizes swap state from chain and/or LP node, usually ran on startup
374
+ *
375
+ * @param save whether to save the new swap state or not
376
+ *
377
+ * @returns {boolean} true if the swap changed, false if the swap hasn't changed
378
+ *
379
+ * @internal
380
+ */
381
+ abstract _sync(save?: boolean): Promise<boolean>;
382
+ /**
383
+ * Runs quick checks on the swap, such as checking the expiry, usually ran periodically every few seconds
384
+ *
385
+ * @param save whether to save the new swap state or not
386
+ *
387
+ * @returns {boolean} true if the swap changed, false if the swap hasn't changed
388
+ *
389
+ * @internal
390
+ */
391
+ abstract _tick(save?: boolean): Promise<boolean>;
392
+ }