@atomiqlabs/sdk 8.1.8 → 8.3.5

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 (261) hide show
  1. package/dist/bitcoin/coinselect2/utils.d.ts +6 -0
  2. package/dist/bitcoin/wallet/BitcoinWallet.d.ts +41 -5
  3. package/dist/bitcoin/wallet/BitcoinWallet.js +36 -1
  4. package/dist/bitcoin/wallet/IBitcoinWallet.d.ts +52 -2
  5. package/dist/bitcoin/wallet/IBitcoinWallet.js +2 -1
  6. package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.d.ts +42 -7
  7. package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.js +36 -1
  8. package/dist/enums/FeeType.d.ts +8 -1
  9. package/dist/enums/FeeType.js +8 -1
  10. package/dist/enums/SwapAmountType.d.ts +7 -0
  11. package/dist/enums/SwapAmountType.js +7 -0
  12. package/dist/enums/SwapDirection.d.ts +7 -0
  13. package/dist/enums/SwapDirection.js +7 -0
  14. package/dist/enums/SwapType.d.ts +62 -1
  15. package/dist/enums/SwapType.js +62 -1
  16. package/dist/errors/IntermediaryError.d.ts +4 -0
  17. package/dist/errors/IntermediaryError.js +1 -0
  18. package/dist/errors/RequestError.d.ts +15 -1
  19. package/dist/errors/RequestError.js +8 -0
  20. package/dist/errors/UserError.d.ts +1 -0
  21. package/dist/errors/UserError.js +1 -0
  22. package/dist/index.d.ts +5 -5
  23. package/dist/index.js +7 -6
  24. package/dist/intermediaries/Intermediary.d.ts +61 -14
  25. package/dist/intermediaries/Intermediary.js +38 -11
  26. package/dist/intermediaries/IntermediaryDiscovery.d.ts +62 -29
  27. package/dist/intermediaries/IntermediaryDiscovery.js +39 -24
  28. package/dist/prices/RedundantSwapPrice.d.ts +26 -5
  29. package/dist/prices/RedundantSwapPrice.js +22 -2
  30. package/dist/prices/SingleSwapPrice.d.ts +10 -7
  31. package/dist/prices/SingleSwapPrice.js +11 -8
  32. package/dist/prices/SwapPriceWithChain.d.ts +56 -19
  33. package/dist/prices/SwapPriceWithChain.js +62 -25
  34. package/dist/prices/abstract/IPriceProvider.d.ts +4 -4
  35. package/dist/prices/abstract/IPriceProvider.js +1 -1
  36. package/dist/prices/abstract/ISwapPrice.d.ts +95 -46
  37. package/dist/prices/abstract/ISwapPrice.js +104 -56
  38. package/dist/prices/providers/BinancePriceProvider.d.ts +8 -1
  39. package/dist/prices/providers/BinancePriceProvider.js +8 -1
  40. package/dist/prices/providers/CoinGeckoPriceProvider.d.ts +7 -1
  41. package/dist/prices/providers/CoinGeckoPriceProvider.js +7 -1
  42. package/dist/prices/providers/CoinPaprikaPriceProvider.d.ts +7 -1
  43. package/dist/prices/providers/CoinPaprikaPriceProvider.js +7 -1
  44. package/dist/prices/providers/CustomPriceProvider.d.ts +12 -1
  45. package/dist/prices/providers/CustomPriceProvider.js +12 -1
  46. package/dist/prices/providers/KrakenPriceProvider.d.ts +10 -1
  47. package/dist/prices/providers/KrakenPriceProvider.js +10 -1
  48. package/dist/prices/providers/OKXPriceProvider.d.ts +7 -1
  49. package/dist/prices/providers/OKXPriceProvider.js +7 -1
  50. package/dist/prices/providers/abstract/ExchangePriceProvider.d.ts +3 -0
  51. package/dist/prices/providers/abstract/ExchangePriceProvider.js +3 -0
  52. package/dist/storage/IUnifiedStorage.d.ts +19 -7
  53. package/dist/storage/UnifiedSwapStorage.d.ts +33 -3
  54. package/dist/storage/UnifiedSwapStorage.js +29 -1
  55. package/dist/storage-browser/IndexedDBUnifiedStorage.d.ts +31 -7
  56. package/dist/storage-browser/IndexedDBUnifiedStorage.js +29 -6
  57. package/dist/storage-browser/LocalStorageManager.d.ts +25 -1
  58. package/dist/storage-browser/LocalStorageManager.js +25 -1
  59. package/dist/swapper/Swapper.d.ts +380 -226
  60. package/dist/swapper/Swapper.js +383 -349
  61. package/dist/swapper/SwapperFactory.d.ts +66 -18
  62. package/dist/swapper/SwapperFactory.js +24 -3
  63. package/dist/swapper/SwapperUtils.d.ts +75 -28
  64. package/dist/swapper/SwapperUtils.js +107 -60
  65. package/dist/swapper/SwapperWithChain.d.ts +286 -91
  66. package/dist/swapper/SwapperWithChain.js +218 -64
  67. package/dist/swapper/SwapperWithSigner.d.ts +229 -80
  68. package/dist/swapper/SwapperWithSigner.js +190 -44
  69. package/dist/swaps/IAddressSwap.d.ts +12 -3
  70. package/dist/swaps/IAddressSwap.js +3 -2
  71. package/dist/swaps/IBTCWalletSwap.d.ts +26 -8
  72. package/dist/swaps/IBTCWalletSwap.js +3 -2
  73. package/dist/swaps/IClaimableSwap.d.ts +38 -6
  74. package/dist/swaps/IClaimableSwap.js +3 -2
  75. package/dist/swaps/IClaimableSwapWrapper.d.ts +11 -1
  76. package/dist/swaps/IRefundableSwap.d.ts +31 -5
  77. package/dist/swaps/IRefundableSwap.js +3 -2
  78. package/dist/swaps/ISwap.d.ts +162 -24
  79. package/dist/swaps/ISwap.js +92 -35
  80. package/dist/swaps/ISwapWithGasDrop.d.ts +8 -2
  81. package/dist/swaps/ISwapWithGasDrop.js +2 -1
  82. package/dist/swaps/ISwapWrapper.d.ts +161 -52
  83. package/dist/swaps/ISwapWrapper.js +131 -73
  84. package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.d.ts +51 -6
  85. package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.js +22 -12
  86. package/dist/swaps/escrow_swaps/IEscrowSwap.d.ts +65 -12
  87. package/dist/swaps/escrow_swaps/IEscrowSwap.js +38 -19
  88. package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.d.ts +39 -9
  89. package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.js +30 -21
  90. package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.d.ts +31 -15
  91. package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.js +33 -18
  92. package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.d.ts +97 -28
  93. package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.js +91 -27
  94. package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.d.ts +22 -9
  95. package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.js +24 -11
  96. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.d.ts +278 -60
  97. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.js +519 -241
  98. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.d.ts +77 -26
  99. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.js +132 -50
  100. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.d.ts +313 -52
  101. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.js +544 -194
  102. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.d.ts +87 -26
  103. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.js +147 -58
  104. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.d.ts +222 -55
  105. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.js +462 -244
  106. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.d.ts +77 -23
  107. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.js +116 -46
  108. package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.d.ts +195 -58
  109. package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.js +324 -191
  110. package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.d.ts +30 -5
  111. package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.js +44 -19
  112. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.d.ts +61 -20
  113. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.js +75 -32
  114. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.d.ts +76 -50
  115. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.js +106 -101
  116. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.d.ts +37 -14
  117. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.js +66 -20
  118. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.d.ts +46 -17
  119. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.js +82 -27
  120. package/dist/swaps/spv_swaps/SpvFromBTCSwap.d.ts +350 -88
  121. package/dist/swaps/spv_swaps/SpvFromBTCSwap.js +482 -215
  122. package/dist/swaps/spv_swaps/SpvFromBTCWrapper.d.ts +76 -24
  123. package/dist/swaps/spv_swaps/SpvFromBTCWrapper.js +247 -124
  124. package/dist/swaps/trusted/ln/LnForGasSwap.d.ts +148 -20
  125. package/dist/swaps/trusted/ln/LnForGasSwap.js +175 -45
  126. package/dist/swaps/trusted/ln/LnForGasWrapper.d.ts +29 -10
  127. package/dist/swaps/trusted/ln/LnForGasWrapper.js +30 -11
  128. package/dist/swaps/trusted/onchain/OnchainForGasSwap.d.ts +202 -49
  129. package/dist/swaps/trusted/onchain/OnchainForGasSwap.js +232 -80
  130. package/dist/swaps/trusted/onchain/OnchainForGasWrapper.d.ts +34 -12
  131. package/dist/swaps/trusted/onchain/OnchainForGasWrapper.js +33 -14
  132. package/dist/types/AmountData.d.ts +2 -1
  133. package/dist/types/CustomPriceFunction.d.ts +8 -2
  134. package/dist/types/PriceInfoType.d.ts +4 -4
  135. package/dist/types/PriceInfoType.js +3 -3
  136. package/dist/types/SwapExecutionAction.d.ts +85 -4
  137. package/dist/types/SwapWithSigner.d.ts +5 -2
  138. package/dist/types/SwapWithSigner.js +5 -2
  139. package/dist/types/Token.d.ts +11 -5
  140. package/dist/types/Token.js +6 -3
  141. package/dist/types/TokenAmount.d.ts +3 -0
  142. package/dist/types/TokenAmount.js +2 -0
  143. package/dist/types/fees/Fee.d.ts +3 -2
  144. package/dist/types/fees/FeeBreakdown.d.ts +3 -2
  145. package/dist/types/fees/PercentagePPM.d.ts +4 -2
  146. package/dist/types/fees/PercentagePPM.js +2 -1
  147. package/dist/types/lnurl/LNURLPay.d.ts +20 -12
  148. package/dist/types/lnurl/LNURLPay.js +8 -4
  149. package/dist/types/lnurl/LNURLWithdraw.d.ts +17 -10
  150. package/dist/types/lnurl/LNURLWithdraw.js +8 -4
  151. package/dist/types/wallets/LightningInvoiceCreateService.d.ts +24 -0
  152. package/dist/types/wallets/LightningInvoiceCreateService.js +15 -0
  153. package/dist/types/wallets/MinimalBitcoinWalletInterface.d.ts +3 -1
  154. package/dist/types/wallets/MinimalLightningNetworkWalletInterface.d.ts +4 -2
  155. package/dist/utils/BitcoinUtils.d.ts +1 -0
  156. package/dist/utils/BitcoinUtils.js +5 -1
  157. package/dist/utils/SwapUtils.d.ts +58 -1
  158. package/dist/utils/SwapUtils.js +55 -1
  159. package/dist/utils/TokenUtils.d.ts +10 -2
  160. package/dist/utils/TokenUtils.js +12 -4
  161. package/package.json +3 -3
  162. package/src/bitcoin/coinselect2/utils.ts +6 -0
  163. package/src/bitcoin/wallet/BitcoinWallet.ts +41 -5
  164. package/src/bitcoin/wallet/IBitcoinWallet.ts +57 -2
  165. package/src/bitcoin/wallet/SingleAddressBitcoinWallet.ts +42 -6
  166. package/src/enums/FeeType.ts +8 -1
  167. package/src/enums/SwapAmountType.ts +7 -0
  168. package/src/enums/SwapDirection.ts +7 -0
  169. package/src/enums/SwapType.ts +62 -2
  170. package/src/errors/IntermediaryError.ts +4 -0
  171. package/src/errors/RequestError.ts +15 -1
  172. package/src/errors/UserError.ts +1 -0
  173. package/src/index.ts +12 -5
  174. package/src/intermediaries/Intermediary.ts +61 -14
  175. package/src/intermediaries/IntermediaryDiscovery.ts +69 -34
  176. package/src/prices/RedundantSwapPrice.ts +26 -6
  177. package/src/prices/SingleSwapPrice.ts +11 -8
  178. package/src/prices/SwapPriceWithChain.ts +63 -26
  179. package/src/prices/abstract/IPriceProvider.ts +4 -4
  180. package/src/prices/abstract/ISwapPrice.ts +115 -66
  181. package/src/prices/providers/BinancePriceProvider.ts +8 -1
  182. package/src/prices/providers/CoinGeckoPriceProvider.ts +7 -1
  183. package/src/prices/providers/CoinPaprikaPriceProvider.ts +7 -1
  184. package/src/prices/providers/CustomPriceProvider.ts +12 -1
  185. package/src/prices/providers/KrakenPriceProvider.ts +10 -1
  186. package/src/prices/providers/OKXPriceProvider.ts +7 -1
  187. package/src/prices/providers/abstract/ExchangePriceProvider.ts +3 -0
  188. package/src/storage/IUnifiedStorage.ts +19 -7
  189. package/src/storage/UnifiedSwapStorage.ts +33 -3
  190. package/src/storage-browser/IndexedDBUnifiedStorage.ts +31 -8
  191. package/src/storage-browser/LocalStorageManager.ts +25 -1
  192. package/src/swapper/Swapper.ts +599 -390
  193. package/src/swapper/SwapperFactory.ts +73 -24
  194. package/src/swapper/SwapperUtils.ts +107 -60
  195. package/src/swapper/SwapperWithChain.ts +320 -81
  196. package/src/swapper/SwapperWithSigner.ts +263 -56
  197. package/src/swaps/IAddressSwap.ts +13 -3
  198. package/src/swaps/IBTCWalletSwap.ts +26 -10
  199. package/src/swaps/IClaimableSwap.ts +41 -6
  200. package/src/swaps/IClaimableSwapWrapper.ts +11 -2
  201. package/src/swaps/IRefundableSwap.ts +34 -5
  202. package/src/swaps/ISwap.ts +224 -85
  203. package/src/swaps/ISwapWithGasDrop.ts +8 -2
  204. package/src/swaps/ISwapWrapper.ts +216 -98
  205. package/src/swaps/escrow_swaps/IEscrowSelfInitSwap.ts +64 -18
  206. package/src/swaps/escrow_swaps/IEscrowSwap.ts +83 -37
  207. package/src/swaps/escrow_swaps/IEscrowSwapWrapper.ts +61 -30
  208. package/src/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.ts +37 -19
  209. package/src/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.ts +123 -50
  210. package/src/swaps/escrow_swaps/frombtc/IFromBTCWrapper.ts +24 -11
  211. package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.ts +562 -258
  212. package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.ts +156 -62
  213. package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.ts +592 -227
  214. package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.ts +177 -74
  215. package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.ts +483 -245
  216. package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.ts +141 -59
  217. package/src/swaps/escrow_swaps/tobtc/IToBTCSwap.ts +350 -195
  218. package/src/swaps/escrow_swaps/tobtc/IToBTCWrapper.ts +48 -23
  219. package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.ts +87 -40
  220. package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.ts +110 -110
  221. package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.ts +89 -34
  222. package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.ts +101 -31
  223. package/src/swaps/spv_swaps/SpvFromBTCSwap.ts +556 -259
  224. package/src/swaps/spv_swaps/SpvFromBTCWrapper.ts +292 -148
  225. package/src/swaps/trusted/ln/LnForGasSwap.ts +186 -47
  226. package/src/swaps/trusted/ln/LnForGasWrapper.ts +34 -15
  227. package/src/swaps/trusted/onchain/OnchainForGasSwap.ts +262 -88
  228. package/src/swaps/trusted/onchain/OnchainForGasWrapper.ts +41 -19
  229. package/src/types/AmountData.ts +2 -1
  230. package/src/types/CustomPriceFunction.ts +8 -2
  231. package/src/types/PriceInfoType.ts +4 -4
  232. package/src/types/SwapExecutionAction.ts +97 -5
  233. package/src/types/SwapWithSigner.ts +8 -4
  234. package/src/types/Token.ts +12 -5
  235. package/src/types/TokenAmount.ts +3 -0
  236. package/src/types/fees/Fee.ts +3 -2
  237. package/src/types/fees/FeeBreakdown.ts +3 -2
  238. package/src/types/fees/PercentagePPM.ts +4 -2
  239. package/src/types/lnurl/LNURLPay.ts +20 -12
  240. package/src/types/lnurl/LNURLWithdraw.ts +17 -10
  241. package/src/types/wallets/LightningInvoiceCreateService.ts +30 -0
  242. package/src/types/wallets/MinimalBitcoinWalletInterface.ts +3 -1
  243. package/src/types/wallets/MinimalLightningNetworkWalletInterface.ts +4 -2
  244. package/src/utils/BitcoinUtils.ts +5 -0
  245. package/src/utils/SwapUtils.ts +63 -1
  246. package/src/utils/TokenUtils.ts +12 -4
  247. package/dist/bitcoin/BitcoinRpcWithAddressIndex.d.ts +0 -68
  248. package/dist/bitcoin/BitcoinRpcWithAddressIndex.js +0 -2
  249. package/dist/bitcoin/LightningNetworkApi.d.ts +0 -12
  250. package/dist/bitcoin/LightningNetworkApi.js +0 -2
  251. package/dist/bitcoin/mempool/MempoolApi.d.ts +0 -350
  252. package/dist/bitcoin/mempool/MempoolApi.js +0 -311
  253. package/dist/bitcoin/mempool/MempoolBitcoinBlock.d.ts +0 -44
  254. package/dist/bitcoin/mempool/MempoolBitcoinBlock.js +0 -48
  255. package/dist/bitcoin/mempool/MempoolBitcoinRpc.d.ts +0 -119
  256. package/dist/bitcoin/mempool/MempoolBitcoinRpc.js +0 -361
  257. package/dist/bitcoin/mempool/synchronizer/MempoolBtcRelaySynchronizer.d.ts +0 -22
  258. package/dist/bitcoin/mempool/synchronizer/MempoolBtcRelaySynchronizer.js +0 -105
  259. package/dist/errors/PaymentAuthError.d.ts +0 -11
  260. package/dist/errors/PaymentAuthError.js +0 -23
  261. package/src/errors/PaymentAuthError.ts +0 -26
@@ -13,42 +13,101 @@ import { TokenAmount } from "../../../../types/TokenAmount";
13
13
  import { BtcToken, SCToken } from "../../../../types/Token";
14
14
  import { LoggerType } from "../../../../utils/Logger";
15
15
  /**
16
- * State enum for FromBTC swaps
17
- * @category Swaps
16
+ * State enum for legacy escrow based Bitcoin -> Smart chain swaps.
17
+ *
18
+ * @category Swaps/Legacy/Bitcoin → Smart chain
18
19
  */
19
20
  export declare enum FromBTCSwapState {
21
+ /**
22
+ * Bitcoin swap address has expired and the intermediary (LP) has already refunded
23
+ * its funds. No BTC should be sent anymore!
24
+ */
20
25
  FAILED = -4,
26
+ /**
27
+ * Bitcoin swap address has expired, user should not send any BTC anymore! Though
28
+ * the intermediary (LP) hasn't refunded yet. So if there is a transaction already
29
+ * in-flight the swap might still succeed.
30
+ */
21
31
  EXPIRED = -3,
32
+ /**
33
+ * Swap has expired for good and there is no way how it can be executed anymore
34
+ */
22
35
  QUOTE_EXPIRED = -2,
36
+ /**
37
+ * A swap is almost expired, and it should be presented to the user as expired, though
38
+ * there is still a chance that it will be processed
39
+ */
23
40
  QUOTE_SOFT_EXPIRED = -1,
41
+ /**
42
+ * Swap quote was created, use the {@link FromBTCSwap.commit} or {@link FromBTCSwap.txsCommit} functions
43
+ * to initiate it by creating the swap escrow on the destination smart chain
44
+ */
24
45
  PR_CREATED = 0,
46
+ /**
47
+ * Swap escrow was initiated (committed) on the destination chain, user can send the BTC to the
48
+ * swap address with the {@link FromBTCSwap.getFundedPsbt}, {@link FromBTCSwap.getAddress} or
49
+ * {@link FromBTCSwap.getHyperlink} functions.
50
+ */
25
51
  CLAIM_COMMITED = 1,
52
+ /**
53
+ * Input bitcoin transaction was confirmed, wait for automatic settlement by the watchtower
54
+ * or settle manually using the {@link FromBTCSwap.claim} or {@link FromBTCSwap.txsClaim}
55
+ * function.
56
+ */
26
57
  BTC_TX_CONFIRMED = 2,
58
+ /**
59
+ * Swap successfully settled and funds received on the destination chain
60
+ */
27
61
  CLAIM_CLAIMED = 3
28
62
  }
29
63
  export type FromBTCSwapInit<T extends SwapData> = IEscrowSelfInitSwapInit<T> & {
30
64
  data: T;
31
- feeRate: string;
32
- address: string;
33
- amount: bigint;
34
- requiredConfirmations: number;
65
+ address?: string;
66
+ amount?: bigint;
67
+ requiredConfirmations?: number;
35
68
  };
36
69
  export declare function isFromBTCSwapInit<T extends SwapData>(obj: any): obj is FromBTCSwapInit<T>;
70
+ /**
71
+ * Legacy escrow (PrTLC) based swap for Bitcoin -> Smart chains, requires manual initiation
72
+ * of the swap escrow on the destination chain.
73
+ *
74
+ * @category Swaps/Legacy/Bitcoin → Smart chain
75
+ */
37
76
  export declare class FromBTCSwap<T extends ChainType = ChainType> extends IFromBTCSelfInitSwap<T, FromBTCDefinition<T>, FromBTCSwapState> implements IBTCWalletSwap, IClaimableSwap<T, FromBTCDefinition<T>, FromBTCSwapState>, IAddressSwap {
77
+ protected readonly TYPE: SwapType.FROM_BTC;
78
+ /**
79
+ * @internal
80
+ */
38
81
  protected readonly logger: LoggerType;
82
+ /**
83
+ * @internal
84
+ */
39
85
  protected readonly inputToken: BtcToken<false>;
40
- protected readonly TYPE = SwapType.FROM_BTC;
41
- readonly data: T["Data"];
42
- readonly feeRate: string;
43
- address: string;
44
- amount: bigint;
45
- readonly requiredConfirmations: number;
46
- senderAddress?: string;
47
- txId?: string;
48
- vout?: number;
86
+ /**
87
+ * @internal
88
+ */
89
+ protected readonly feeRate: string;
90
+ /**
91
+ * @internal
92
+ */
93
+ readonly _data: T["Data"];
94
+ private address?;
95
+ private amount?;
96
+ private requiredConfirmations?;
97
+ private senderAddress?;
98
+ private txId?;
99
+ private vout?;
49
100
  constructor(wrapper: FromBTCWrapper<T>, init: FromBTCSwapInit<T["Data"]>);
50
101
  constructor(wrapper: FromBTCWrapper<T>, obj: any);
102
+ /**
103
+ * @inheritDoc
104
+ * @internal
105
+ */
51
106
  protected getSwapData(): T["Data"];
107
+ /**
108
+ * @inheritDoc
109
+ * @internal
110
+ */
52
111
  protected upgradeVersion(): void;
53
112
  /**
54
113
  * Returns bitcoin address where the on-chain BTC should be sent to
@@ -60,31 +119,88 @@ export declare class FromBTCSwap<T extends ChainType = ChainType> extends IFromB
60
119
  * @private
61
120
  */
62
121
  private _getHyperlink;
122
+ /**
123
+ * @inheritDoc
124
+ */
63
125
  getHyperlink(): string;
126
+ /**
127
+ * @inheritDoc
128
+ */
64
129
  getInputAddress(): string | null;
130
+ /**
131
+ * @inheritDoc
132
+ */
65
133
  getInputTxId(): string | null;
66
134
  /**
67
135
  * Returns timeout time (in UNIX milliseconds) when the on-chain address will expire and no funds should be sent
68
136
  * to that address anymore
69
137
  */
70
138
  getTimeoutTime(): number;
139
+ /**
140
+ * @inheritDoc
141
+ */
71
142
  requiresAction(): boolean;
143
+ /**
144
+ * @inheritDoc
145
+ */
72
146
  isFinished(): boolean;
147
+ /**
148
+ * @inheritDoc
149
+ */
73
150
  isClaimable(): boolean;
151
+ /**
152
+ * @inheritDoc
153
+ */
74
154
  isSuccessful(): boolean;
155
+ /**
156
+ * @inheritDoc
157
+ */
75
158
  isFailed(): boolean;
159
+ /**
160
+ * @inheritDoc
161
+ */
76
162
  isQuoteExpired(): boolean;
163
+ /**
164
+ * @inheritDoc
165
+ */
77
166
  isQuoteSoftExpired(): boolean;
167
+ /**
168
+ * @inheritDoc
169
+ * @internal
170
+ */
78
171
  protected canCommit(): boolean;
172
+ /**
173
+ * @inheritDoc
174
+ */
79
175
  getInputToken(): BtcToken<false>;
176
+ /**
177
+ * @inheritDoc
178
+ */
80
179
  getInput(): TokenAmount<T["ChainId"], BtcToken<false>>;
81
180
  /**
82
- * Returns claimer bounty, acting as a reward for watchtowers to claim the swap automatically
181
+ * Returns claimer bounty, acting as a reward for watchtowers to claim the swap automatically,
182
+ * this amount is pre-funded by the user on the destination chain when the swap escrow
183
+ * is initiated. For total pre-funded deposit amount see {@link getTotalDeposit}.
83
184
  */
84
185
  getClaimerBounty(): TokenAmount<T["ChainId"], SCToken<T["ChainId"]>, true>;
186
+ /**
187
+ * If the required number of confirmations is not known, this function tries to infer it by looping through
188
+ * possible confirmation targets and comparing the claim hashes
189
+ *
190
+ * @param btcTx Bitcoin transaction
191
+ * @param vout Output index of the desired output in the bitcoin transaction
192
+ *
193
+ * @private
194
+ */
195
+ private inferRequiredConfirmationsCount;
196
+ /**
197
+ * @inheritDoc
198
+ */
85
199
  getRequiredConfirmationsCount(): number;
86
200
  /**
87
- * Checks whether a bitcoin payment was already made, returns the payment or null when no payment has been made.
201
+ * Checks whether a bitcoin payment was already made, returns the payment or `null` when no payment has been made.
202
+ *
203
+ * @internal
88
204
  */
89
205
  protected getBitcoinPayment(): Promise<{
90
206
  txId: string;
@@ -94,28 +210,31 @@ export declare class FromBTCSwap<T extends ChainType = ChainType> extends IFromB
94
210
  inputAddresses?: string[];
95
211
  } | null>;
96
212
  /**
97
- * For internal use! Used to set the txId of the bitcoin payment from the on-chain events listener
213
+ * Used to set the txId of the bitcoin payment from the on-chain events listener
214
+ *
215
+ * @param txId Transaction ID that settled the swap on the smart chain
98
216
  *
99
- * @param txId
217
+ * @internal
100
218
  */
101
219
  _setBitcoinTxId(txId: string): Promise<void>;
102
220
  /**
103
- * Waits till the bitcoin transaction confirms and swap becomes claimable
221
+ * @inheritDoc
104
222
  *
105
- * @param updateCallback Callback called when txId is found, and also called with subsequent confirmations
106
- * @param checkIntervalSeconds How often to check the bitcoin transaction
107
- * @param abortSignal Abort signal
108
- * @throws {Error} if in invalid state (must be CLAIM_COMMITED)
223
+ * @throws {Error} if in invalid state (must be {@link FromBTCSwapState.CLAIM_COMMITED})
109
224
  */
110
225
  waitForBitcoinTransaction(updateCallback?: (txId?: string, confirmations?: number, targetConfirmations?: number, txEtaMs?: number) => void, checkIntervalSeconds?: number, abortSignal?: AbortSignal): Promise<string>;
111
226
  /**
112
- * Returns the PSBT that is already funded with wallet's UTXOs (runs a coin-selection algorithm to choose UTXOs to use),
113
- * also returns inputs indices that need to be signed by the wallet before submitting the PSBT back to the SDK with
114
- * `swap.submitPsbt()`
227
+ * Private getter of the funded PSBT that doesn't check current state
115
228
  *
116
- * @param _bitcoinWallet Sender's bitcoin wallet
117
- * @param feeRate Optional fee rate for the transaction, needs to be at least as big as {minimumBtcFeeRate} field
118
- * @param additionalOutputs additional outputs to add to the PSBT - can be used to collect fees from users
229
+ * @param _bitcoinWallet Bitcoin wallet to fund the PSBT with
230
+ * @param feeRate Optional bitcoin fee rate in sats/vB
231
+ * @param additionalOutputs Optional additional outputs that should also be included in the generated PSBT
232
+ *
233
+ * @private
234
+ */
235
+ private _getFundedPsbt;
236
+ /**
237
+ * @inheritDoc
119
238
  */
120
239
  getFundedPsbt(_bitcoinWallet: IBitcoinWallet | MinimalBitcoinWalletInterface, feeRate?: number, additionalOutputs?: ({
121
240
  amount: bigint;
@@ -129,14 +248,20 @@ export declare class FromBTCSwap<T extends ChainType = ChainType> extends IFromB
129
248
  psbtBase64: string;
130
249
  signInputs: number[];
131
250
  }>;
132
- private _getFundedPsbt;
133
251
  /**
134
- * Submits a PSBT signed by the wallet back to the SDK
252
+ * @inheritDoc
135
253
  *
136
- * @param _psbt A psbt - either a Transaction object or a hex or base64 encoded PSBT string
254
+ * @throws {Error} if the swap is in invalid state (not in {@link FromBTCSwapState.CLAIM_COMMITED}), or if
255
+ * the swap bitcoin address already expired.
137
256
  */
138
257
  submitPsbt(_psbt: Transaction | string): Promise<string>;
258
+ /**
259
+ * @inheritDoc
260
+ */
139
261
  estimateBitcoinFee(_bitcoinWallet: IBitcoinWallet | MinimalBitcoinWalletInterface, feeRate?: number): Promise<TokenAmount<any, BtcToken<false>, true> | null>;
262
+ /**
263
+ * @inheritDoc
264
+ */
140
265
  sendBitcoinTransaction(wallet: IBitcoinWallet | MinimalBitcoinWalletInterfaceWithSigner, feeRate?: number): Promise<string>;
141
266
  /**
142
267
  * Executes the swap with the provided bitcoin wallet,
@@ -165,6 +290,17 @@ export declare class FromBTCSwap<T extends ChainType = ChainType> extends IFromB
165
290
  btcTxCheckIntervalSeconds?: number;
166
291
  maxWaitTillAutomaticSettlementSeconds?: number;
167
292
  }): Promise<boolean>;
293
+ /**
294
+ * @inheritDoc
295
+ *
296
+ * @param options.bitcoinWallet Bitcoin wallet to use, when provided the function returns a funded
297
+ * psbt (`"FUNDED_PSBT"`), if not passed just a bitcoin receive address is returned (`"ADDRESS"`)
298
+ * @param options.skipChecks Skip checks like making sure init signature is still valid and swap
299
+ * wasn't commited yet (this is handled on swap creation, if you commit right after quoting, you
300
+ * can use `skipChecks=true`)
301
+ *
302
+ * @throws {Error} if the swap or quote is expired, or if triggered in invalid state
303
+ */
168
304
  txsExecute(options?: {
169
305
  bitcoinWallet?: MinimalBitcoinWalletInterface;
170
306
  skipChecks?: boolean;
@@ -176,14 +312,14 @@ export declare class FromBTCSwap<T extends ChainType = ChainType> extends IFromB
176
312
  } | {
177
313
  name: "Payment";
178
314
  description: string;
179
- chain: string;
315
+ chain: "BITCOIN";
180
316
  txs: ({
181
317
  address: string;
182
318
  amount: number;
183
319
  hyperlink: string;
184
- type: string;
320
+ type: "ADDRESS";
185
321
  } | {
186
- type: string;
322
+ type: "FUNDED_PSBT";
187
323
  psbt: Transaction;
188
324
  psbtHex: string;
189
325
  psbtBase64: string;
@@ -194,42 +330,52 @@ export declare class FromBTCSwap<T extends ChainType = ChainType> extends IFromB
194
330
  })[];
195
331
  })[]>;
196
332
  /**
197
- * Commits the swap on-chain, locking the tokens from the intermediary in a PTLC
333
+ * @inheritDoc
198
334
  *
199
- * @param _signer Signer to sign the transactions with, must be the same as used in the initialization
200
- * @param abortSignal Abort signal to stop waiting for the transaction confirmation and abort
201
- * @param skipChecks Skip checks like making sure init signature is still valid and swap wasn't commited yet
202
- * (this is handled when swap is created (quoted), if you commit right after quoting, you can use skipChecks=true)
203
- * @param onBeforeTxSent
204
335
  * @throws {Error} If invalid signer is provided that doesn't match the swap data
205
336
  */
206
337
  commit(_signer: T["Signer"] | T["NativeSigner"], abortSignal?: AbortSignal, skipChecks?: boolean, onBeforeTxSent?: (txId: string) => void): Promise<string>;
338
+ /**
339
+ * @inheritDoc
340
+ */
207
341
  waitTillCommited(abortSignal?: AbortSignal): Promise<void>;
208
342
  /**
209
- * Returns transactions required to claim the swap on-chain (and possibly also sync the bitcoin light client)
210
- * after a bitcoin transaction was sent and confirmed
343
+ * Returns transactions for settling (claiming) the swap if the swap requires manual settlement, you can check so
344
+ * with isClaimable. After sending the transaction manually be sure to call the waitTillClaimed function to wait
345
+ * till the claim transaction is observed, processed by the SDK and state of the swap properly updated.
346
+ *
347
+ * @remarks
348
+ * Might also return transactions necessary to sync the bitcoin light client.
349
+ *
350
+ * @param _signer Address of the signer to create the claim transactions for
211
351
  *
212
- * @throws {Error} If the swap is in invalid state (must be BTC_TX_CONFIRMED)
352
+ * @throws {Error} If the swap is in invalid state (must be {@link FromBTCSwapState.BTC_TX_CONFIRMED})
213
353
  */
214
354
  txsClaim(_signer?: string | T["Signer"] | T["NativeSigner"]): Promise<T["TX"][]>;
215
355
  /**
216
- * Claims and finishes the swap
356
+ * Settles the swap by claiming the funds on the destination chain if the swap requires manual settlement, you can
357
+ * check so with isClaimable.
358
+ *
359
+ * @remarks
360
+ * Might also sync the bitcoin light client during the process.
361
+ *
362
+ * @param _signer Signer to use for signing the settlement transactions, can also be different to the recipient
363
+ * @param abortSignal Abort signal
364
+ * @param onBeforeTxSent Optional callback triggered before the claim transaction is broadcasted
217
365
  *
218
- * @param _signer Signer to sign the transactions with, can also be different to the initializer
219
- * @param abortSignal Abort signal to stop waiting for transaction confirmation
220
- * @param onBeforeTxSent
366
+ * @returns Transaction ID of the settlement (claim) transaction on the destination smart chain
221
367
  */
222
368
  claim(_signer: T["Signer"] | T["NativeSigner"], abortSignal?: AbortSignal, onBeforeTxSent?: (txId: string) => void): Promise<string>;
223
369
  /**
224
- * Waits till the swap is successfully claimed
370
+ * @inheritDoc
225
371
  *
226
- * @param maxWaitTimeSeconds Maximum time in seconds to wait for the swap to be settled
227
- * @param abortSignal AbortSignal
228
- * @throws {Error} If swap is in invalid state (must be BTC_TX_CONFIRMED)
372
+ * @throws {Error} If swap is in invalid state (must be {@link FromBTCSwapState.BTC_TX_CONFIRMED})
229
373
  * @throws {Error} If the LP refunded sooner than we were able to claim
230
- * @returns {boolean} whether the swap was claimed in time or not
231
374
  */
232
375
  waitTillClaimed(maxWaitTimeSeconds?: number, abortSignal?: AbortSignal): Promise<boolean>;
376
+ /**
377
+ * @inheritDoc
378
+ */
233
379
  serialize(): any;
234
380
  /**
235
381
  * Checks the swap's state on-chain and compares it to its internal state, updates/changes it according to on-chain
@@ -238,8 +384,29 @@ export declare class FromBTCSwap<T extends ChainType = ChainType> extends IFromB
238
384
  * @private
239
385
  */
240
386
  private syncStateFromChain;
241
- _shouldFetchCommitStatus(): boolean;
387
+ /**
388
+ * @inheritDoc
389
+ * @internal
390
+ */
391
+ _shouldFetchOnchainState(): boolean;
392
+ /**
393
+ * @inheritDoc
394
+ * @internal
395
+ */
242
396
  _shouldFetchExpiryStatus(): boolean;
397
+ /**
398
+ * @inheritDoc
399
+ * @internal
400
+ */
243
401
  _sync(save?: boolean, quoteDefinitelyExpired?: boolean, commitStatus?: SwapCommitState): Promise<boolean>;
402
+ /**
403
+ * @inheritDoc
404
+ * @internal
405
+ */
406
+ _forciblySetOnchainState(status: SwapCommitState): Promise<boolean>;
407
+ /**
408
+ * @inheritDoc
409
+ * @internal
410
+ */
244
411
  _tick(save?: boolean): Promise<boolean>;
245
412
  }