@atomiqlabs/sdk 8.1.7 → 8.3.1

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 (253) hide show
  1. package/dist/bitcoin/wallet/BitcoinWallet.d.ts +41 -5
  2. package/dist/bitcoin/wallet/BitcoinWallet.js +36 -1
  3. package/dist/bitcoin/wallet/IBitcoinWallet.d.ts +52 -2
  4. package/dist/bitcoin/wallet/IBitcoinWallet.js +2 -1
  5. package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.d.ts +42 -7
  6. package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.js +36 -1
  7. package/dist/enums/FeeType.d.ts +7 -0
  8. package/dist/enums/FeeType.js +7 -0
  9. package/dist/enums/SwapAmountType.d.ts +7 -0
  10. package/dist/enums/SwapAmountType.js +7 -0
  11. package/dist/enums/SwapDirection.d.ts +7 -0
  12. package/dist/enums/SwapDirection.js +7 -0
  13. package/dist/enums/SwapType.d.ts +62 -1
  14. package/dist/enums/SwapType.js +62 -1
  15. package/dist/errors/IntermediaryError.d.ts +4 -0
  16. package/dist/errors/IntermediaryError.js +1 -0
  17. package/dist/errors/RequestError.d.ts +15 -1
  18. package/dist/errors/RequestError.js +8 -0
  19. package/dist/errors/UserError.d.ts +1 -0
  20. package/dist/errors/UserError.js +1 -0
  21. package/dist/index.d.ts +4 -5
  22. package/dist/index.js +3 -4
  23. package/dist/intermediaries/Intermediary.d.ts +57 -10
  24. package/dist/intermediaries/Intermediary.js +37 -10
  25. package/dist/intermediaries/IntermediaryDiscovery.d.ts +55 -22
  26. package/dist/intermediaries/IntermediaryDiscovery.js +35 -22
  27. package/dist/prices/RedundantSwapPrice.d.ts +24 -3
  28. package/dist/prices/RedundantSwapPrice.js +21 -1
  29. package/dist/prices/SingleSwapPrice.d.ts +9 -6
  30. package/dist/prices/SingleSwapPrice.js +10 -7
  31. package/dist/prices/SwapPriceWithChain.d.ts +54 -16
  32. package/dist/prices/SwapPriceWithChain.js +58 -20
  33. package/dist/prices/abstract/ISwapPrice.d.ts +94 -45
  34. package/dist/prices/abstract/ISwapPrice.js +103 -55
  35. package/dist/prices/providers/BinancePriceProvider.d.ts +7 -0
  36. package/dist/prices/providers/BinancePriceProvider.js +7 -0
  37. package/dist/prices/providers/CoinGeckoPriceProvider.d.ts +6 -0
  38. package/dist/prices/providers/CoinGeckoPriceProvider.js +6 -0
  39. package/dist/prices/providers/CoinPaprikaPriceProvider.d.ts +6 -0
  40. package/dist/prices/providers/CoinPaprikaPriceProvider.js +6 -0
  41. package/dist/prices/providers/CustomPriceProvider.d.ts +11 -0
  42. package/dist/prices/providers/CustomPriceProvider.js +11 -0
  43. package/dist/prices/providers/KrakenPriceProvider.d.ts +9 -0
  44. package/dist/prices/providers/KrakenPriceProvider.js +9 -0
  45. package/dist/prices/providers/OKXPriceProvider.d.ts +6 -0
  46. package/dist/prices/providers/OKXPriceProvider.js +6 -0
  47. package/dist/prices/providers/abstract/ExchangePriceProvider.d.ts +3 -0
  48. package/dist/prices/providers/abstract/ExchangePriceProvider.js +3 -0
  49. package/dist/storage/IUnifiedStorage.d.ts +19 -7
  50. package/dist/storage/UnifiedSwapStorage.d.ts +33 -3
  51. package/dist/storage/UnifiedSwapStorage.js +29 -1
  52. package/dist/storage-browser/IndexedDBUnifiedStorage.d.ts +31 -7
  53. package/dist/storage-browser/IndexedDBUnifiedStorage.js +29 -6
  54. package/dist/storage-browser/LocalStorageManager.d.ts +25 -1
  55. package/dist/storage-browser/LocalStorageManager.js +25 -1
  56. package/dist/swapper/Swapper.d.ts +303 -222
  57. package/dist/swapper/Swapper.js +376 -344
  58. package/dist/swapper/SwapperFactory.d.ts +41 -17
  59. package/dist/swapper/SwapperFactory.js +23 -2
  60. package/dist/swapper/SwapperUtils.d.ts +75 -28
  61. package/dist/swapper/SwapperUtils.js +107 -60
  62. package/dist/swapper/SwapperWithChain.d.ts +286 -91
  63. package/dist/swapper/SwapperWithChain.js +218 -64
  64. package/dist/swapper/SwapperWithSigner.d.ts +229 -80
  65. package/dist/swapper/SwapperWithSigner.js +190 -44
  66. package/dist/swaps/IAddressSwap.d.ts +10 -1
  67. package/dist/swaps/IAddressSwap.js +2 -1
  68. package/dist/swaps/IBTCWalletSwap.d.ts +24 -6
  69. package/dist/swaps/IBTCWalletSwap.js +2 -1
  70. package/dist/swaps/IClaimableSwap.d.ts +36 -4
  71. package/dist/swaps/IClaimableSwap.js +2 -1
  72. package/dist/swaps/IClaimableSwapWrapper.d.ts +11 -1
  73. package/dist/swaps/IRefundableSwap.d.ts +29 -3
  74. package/dist/swaps/IRefundableSwap.js +2 -1
  75. package/dist/swaps/ISwap.d.ts +159 -21
  76. package/dist/swaps/ISwap.js +90 -33
  77. package/dist/swaps/ISwapWithGasDrop.d.ts +6 -0
  78. package/dist/swaps/ISwapWithGasDrop.js +1 -0
  79. package/dist/swaps/ISwapWrapper.d.ts +157 -48
  80. package/dist/swaps/ISwapWrapper.js +130 -72
  81. package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.d.ts +49 -6
  82. package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.js +22 -12
  83. package/dist/swaps/escrow_swaps/IEscrowSwap.d.ts +65 -12
  84. package/dist/swaps/escrow_swaps/IEscrowSwap.js +38 -19
  85. package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.d.ts +39 -9
  86. package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.js +30 -21
  87. package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.d.ts +31 -15
  88. package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.js +33 -18
  89. package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.d.ts +94 -29
  90. package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.js +90 -27
  91. package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.d.ts +22 -9
  92. package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.js +24 -11
  93. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.d.ts +275 -58
  94. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.js +516 -239
  95. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.d.ts +76 -25
  96. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.js +131 -49
  97. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.d.ts +311 -51
  98. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.js +542 -193
  99. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.d.ts +87 -26
  100. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.js +147 -58
  101. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.d.ts +209 -53
  102. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.js +449 -242
  103. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.d.ts +77 -23
  104. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.js +116 -46
  105. package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.d.ts +197 -56
  106. package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.js +326 -189
  107. package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.d.ts +30 -5
  108. package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.js +44 -19
  109. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.d.ts +60 -19
  110. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.js +74 -31
  111. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.d.ts +76 -50
  112. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.js +106 -101
  113. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.d.ts +36 -13
  114. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.js +65 -19
  115. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.d.ts +46 -17
  116. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.js +82 -27
  117. package/dist/swaps/spv_swaps/SpvFromBTCSwap.d.ts +328 -92
  118. package/dist/swaps/spv_swaps/SpvFromBTCSwap.js +460 -219
  119. package/dist/swaps/spv_swaps/SpvFromBTCWrapper.d.ts +76 -24
  120. package/dist/swaps/spv_swaps/SpvFromBTCWrapper.js +244 -124
  121. package/dist/swaps/trusted/ln/LnForGasSwap.d.ts +146 -18
  122. package/dist/swaps/trusted/ln/LnForGasSwap.js +173 -43
  123. package/dist/swaps/trusted/ln/LnForGasWrapper.d.ts +29 -10
  124. package/dist/swaps/trusted/ln/LnForGasWrapper.js +30 -11
  125. package/dist/swaps/trusted/onchain/OnchainForGasSwap.d.ts +200 -47
  126. package/dist/swaps/trusted/onchain/OnchainForGasSwap.js +230 -78
  127. package/dist/swaps/trusted/onchain/OnchainForGasWrapper.d.ts +34 -12
  128. package/dist/swaps/trusted/onchain/OnchainForGasWrapper.js +33 -14
  129. package/dist/types/AmountData.d.ts +2 -1
  130. package/dist/types/CustomPriceFunction.d.ts +7 -1
  131. package/dist/types/SwapExecutionAction.d.ts +74 -4
  132. package/dist/types/SwapWithSigner.d.ts +4 -1
  133. package/dist/types/SwapWithSigner.js +5 -2
  134. package/dist/types/Token.d.ts +11 -5
  135. package/dist/types/Token.js +6 -3
  136. package/dist/types/TokenAmount.d.ts +3 -0
  137. package/dist/types/TokenAmount.js +2 -0
  138. package/dist/types/fees/Fee.d.ts +2 -1
  139. package/dist/types/fees/FeeBreakdown.d.ts +2 -1
  140. package/dist/types/fees/PercentagePPM.d.ts +2 -0
  141. package/dist/types/fees/PercentagePPM.js +1 -0
  142. package/dist/types/lnurl/LNURLPay.d.ts +14 -6
  143. package/dist/types/lnurl/LNURLPay.js +6 -2
  144. package/dist/types/lnurl/LNURLWithdraw.d.ts +12 -5
  145. package/dist/types/lnurl/LNURLWithdraw.js +6 -2
  146. package/dist/types/wallets/LightningInvoiceCreateService.d.ts +20 -0
  147. package/dist/types/wallets/LightningInvoiceCreateService.js +15 -0
  148. package/dist/types/wallets/MinimalBitcoinWalletInterface.d.ts +3 -1
  149. package/dist/types/wallets/MinimalLightningNetworkWalletInterface.d.ts +3 -1
  150. package/dist/utils/BitcoinUtils.d.ts +1 -0
  151. package/dist/utils/BitcoinUtils.js +5 -1
  152. package/dist/utils/SwapUtils.d.ts +56 -1
  153. package/dist/utils/SwapUtils.js +53 -1
  154. package/dist/utils/TokenUtils.d.ts +10 -2
  155. package/dist/utils/TokenUtils.js +12 -4
  156. package/package.json +3 -3
  157. package/src/bitcoin/wallet/BitcoinWallet.ts +41 -5
  158. package/src/bitcoin/wallet/IBitcoinWallet.ts +57 -2
  159. package/src/bitcoin/wallet/SingleAddressBitcoinWallet.ts +42 -6
  160. package/src/enums/FeeType.ts +7 -0
  161. package/src/enums/SwapAmountType.ts +7 -0
  162. package/src/enums/SwapDirection.ts +7 -0
  163. package/src/enums/SwapType.ts +62 -2
  164. package/src/errors/IntermediaryError.ts +4 -0
  165. package/src/errors/RequestError.ts +15 -1
  166. package/src/errors/UserError.ts +1 -0
  167. package/src/index.ts +6 -5
  168. package/src/intermediaries/Intermediary.ts +57 -10
  169. package/src/intermediaries/IntermediaryDiscovery.ts +60 -27
  170. package/src/prices/RedundantSwapPrice.ts +24 -4
  171. package/src/prices/SingleSwapPrice.ts +10 -7
  172. package/src/prices/SwapPriceWithChain.ts +59 -21
  173. package/src/prices/abstract/ISwapPrice.ts +114 -65
  174. package/src/prices/providers/BinancePriceProvider.ts +7 -0
  175. package/src/prices/providers/CoinGeckoPriceProvider.ts +6 -0
  176. package/src/prices/providers/CoinPaprikaPriceProvider.ts +6 -0
  177. package/src/prices/providers/CustomPriceProvider.ts +11 -0
  178. package/src/prices/providers/KrakenPriceProvider.ts +9 -0
  179. package/src/prices/providers/OKXPriceProvider.ts +6 -0
  180. package/src/prices/providers/abstract/ExchangePriceProvider.ts +3 -0
  181. package/src/storage/IUnifiedStorage.ts +19 -7
  182. package/src/storage/UnifiedSwapStorage.ts +33 -3
  183. package/src/storage-browser/IndexedDBUnifiedStorage.ts +31 -8
  184. package/src/storage-browser/LocalStorageManager.ts +25 -1
  185. package/src/swapper/Swapper.ts +513 -379
  186. package/src/swapper/SwapperFactory.ts +44 -21
  187. package/src/swapper/SwapperUtils.ts +107 -60
  188. package/src/swapper/SwapperWithChain.ts +320 -81
  189. package/src/swapper/SwapperWithSigner.ts +263 -56
  190. package/src/swaps/IAddressSwap.ts +11 -1
  191. package/src/swaps/IBTCWalletSwap.ts +24 -8
  192. package/src/swaps/IClaimableSwap.ts +39 -4
  193. package/src/swaps/IClaimableSwapWrapper.ts +11 -2
  194. package/src/swaps/IRefundableSwap.ts +32 -3
  195. package/src/swaps/ISwap.ts +221 -82
  196. package/src/swaps/ISwapWithGasDrop.ts +6 -0
  197. package/src/swaps/ISwapWrapper.ts +212 -94
  198. package/src/swaps/escrow_swaps/IEscrowSelfInitSwap.ts +62 -18
  199. package/src/swaps/escrow_swaps/IEscrowSwap.ts +83 -37
  200. package/src/swaps/escrow_swaps/IEscrowSwapWrapper.ts +61 -30
  201. package/src/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.ts +37 -19
  202. package/src/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.ts +120 -51
  203. package/src/swaps/escrow_swaps/frombtc/IFromBTCWrapper.ts +24 -11
  204. package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.ts +559 -256
  205. package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.ts +155 -61
  206. package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.ts +590 -226
  207. package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.ts +177 -74
  208. package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.ts +470 -243
  209. package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.ts +141 -59
  210. package/src/swaps/escrow_swaps/tobtc/IToBTCSwap.ts +352 -193
  211. package/src/swaps/escrow_swaps/tobtc/IToBTCWrapper.ts +48 -23
  212. package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.ts +86 -39
  213. package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.ts +110 -110
  214. package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.ts +88 -33
  215. package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.ts +101 -31
  216. package/src/swaps/spv_swaps/SpvFromBTCSwap.ts +534 -263
  217. package/src/swaps/spv_swaps/SpvFromBTCWrapper.ts +289 -148
  218. package/src/swaps/trusted/ln/LnForGasSwap.ts +184 -45
  219. package/src/swaps/trusted/ln/LnForGasWrapper.ts +34 -15
  220. package/src/swaps/trusted/onchain/OnchainForGasSwap.ts +260 -86
  221. package/src/swaps/trusted/onchain/OnchainForGasWrapper.ts +41 -19
  222. package/src/types/AmountData.ts +2 -1
  223. package/src/types/CustomPriceFunction.ts +7 -1
  224. package/src/types/SwapExecutionAction.ts +84 -5
  225. package/src/types/SwapWithSigner.ts +7 -3
  226. package/src/types/Token.ts +12 -5
  227. package/src/types/TokenAmount.ts +3 -0
  228. package/src/types/fees/Fee.ts +2 -1
  229. package/src/types/fees/FeeBreakdown.ts +2 -1
  230. package/src/types/fees/PercentagePPM.ts +2 -0
  231. package/src/types/lnurl/LNURLPay.ts +14 -6
  232. package/src/types/lnurl/LNURLWithdraw.ts +12 -5
  233. package/src/types/wallets/LightningInvoiceCreateService.ts +26 -0
  234. package/src/types/wallets/MinimalBitcoinWalletInterface.ts +3 -1
  235. package/src/types/wallets/MinimalLightningNetworkWalletInterface.ts +3 -1
  236. package/src/utils/BitcoinUtils.ts +5 -0
  237. package/src/utils/SwapUtils.ts +61 -1
  238. package/src/utils/TokenUtils.ts +12 -4
  239. package/dist/bitcoin/BitcoinRpcWithAddressIndex.d.ts +0 -68
  240. package/dist/bitcoin/BitcoinRpcWithAddressIndex.js +0 -2
  241. package/dist/bitcoin/LightningNetworkApi.d.ts +0 -12
  242. package/dist/bitcoin/LightningNetworkApi.js +0 -2
  243. package/dist/bitcoin/mempool/MempoolApi.d.ts +0 -350
  244. package/dist/bitcoin/mempool/MempoolApi.js +0 -311
  245. package/dist/bitcoin/mempool/MempoolBitcoinBlock.d.ts +0 -44
  246. package/dist/bitcoin/mempool/MempoolBitcoinBlock.js +0 -48
  247. package/dist/bitcoin/mempool/MempoolBitcoinRpc.d.ts +0 -119
  248. package/dist/bitcoin/mempool/MempoolBitcoinRpc.js +0 -361
  249. package/dist/bitcoin/mempool/synchronizer/MempoolBtcRelaySynchronizer.d.ts +0 -22
  250. package/dist/bitcoin/mempool/synchronizer/MempoolBtcRelaySynchronizer.js +0 -105
  251. package/dist/errors/PaymentAuthError.d.ts +0 -11
  252. package/dist/errors/PaymentAuthError.js +0 -23
  253. package/src/errors/PaymentAuthError.ts +0 -26
@@ -7,24 +7,36 @@ const SwapWithSigner_1 = require("../types/SwapWithSigner");
7
7
  * @category Core
8
8
  */
9
9
  class SwapperWithSigner {
10
+ /**
11
+ * Pricing API used by the SDK
12
+ */
10
13
  get prices() {
11
14
  return this.swapper.prices;
12
15
  }
16
+ /**
17
+ * Intermediary discovery instance
18
+ */
13
19
  get intermediaryDiscovery() {
14
20
  return this.swapper.intermediaryDiscovery;
15
21
  }
16
- get mempoolApi() {
17
- return this.swapper.mempoolApi;
18
- }
19
- get bitcoinRpc() {
20
- return this.swapper.bitcoinRpc;
21
- }
22
- get bitcoinNetwork() {
23
- return this.swapper.bitcoinNetwork;
24
- }
22
+ /**
23
+ * Miscellaneous utility functions
24
+ */
25
25
  get Utils() {
26
26
  return this.swapper.Utils;
27
27
  }
28
+ /**
29
+ * Helper information about various swap protocol and their features:
30
+ * - `requiresInputWallet`: Whether a swap requires a connected wallet on the input chain able to sign
31
+ * arbitrary transaction
32
+ * - `requiresOutputWallet`: Whether a swap requires a connected wallet on the output chain able to sign
33
+ * arbitrary transactions
34
+ * - `supportsGasDrop`: Whether a swap supports the "gas drop" feature, allowing to user to receive a small
35
+ * amount of native token as part of the swap when swapping to smart chains
36
+ *
37
+ * Uses a `Record` type here, use the {@link SwapProtocolInfo} import for a literal readonly type, with
38
+ * pre-filled exact values in the type.
39
+ */
28
40
  get SwapTypeInfo() {
29
41
  return this.swapper.SwapTypeInfo;
30
42
  }
@@ -33,43 +45,162 @@ class SwapperWithSigner {
33
45
  this.signer = signer;
34
46
  this.chainIdentifier = swapper.chainIdentifier;
35
47
  }
48
+ /**
49
+ * Creates Smart chain -> Bitcoin ({@link SwapType.TO_BTC}) swap
50
+ *
51
+ * @param tokenAddress Token address to pay with
52
+ * @param address Recipient's bitcoin address
53
+ * @param amount Amount to send in token based units (if `exactIn=true`) or receive in satoshis (if `exactIn=false`)
54
+ * @param exactIn Whether to use exact in instead of exact out
55
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
56
+ * @param options Additional options for the swap
57
+ */
36
58
  createToBTCSwap(tokenAddress, address, amount, exactIn, additionalParams, options) {
37
59
  return this.swapper.createToBTCSwap(this.signer.getAddress(), tokenAddress, address, amount, exactIn, additionalParams, options)
38
60
  .then(swap => (0, SwapWithSigner_1.wrapSwapWithSigner)(swap, this.signer));
39
61
  }
62
+ /**
63
+ * Creates Smart chain -> Bitcoin Lightning ({@link SwapType.TO_BTCLN}) swap
64
+ *
65
+ * @param tokenAddress Token address to pay with
66
+ * @param paymentRequest BOLT11 lightning network invoice to be paid (needs to have a fixed amount), and the swap
67
+ * amount is taken from this fixed amount, hence only exact output swaps are supported
68
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
69
+ * @param options Additional options for the swap
70
+ */
40
71
  createToBTCLNSwap(tokenAddress, paymentRequest, additionalParams, options) {
41
72
  return this.swapper.createToBTCLNSwap(this.signer.getAddress(), tokenAddress, paymentRequest, additionalParams, options)
42
73
  .then(swap => (0, SwapWithSigner_1.wrapSwapWithSigner)(swap, this.signer));
43
74
  }
75
+ /**
76
+ * Creates Smart chain -> Bitcoin Lightning ({@link SwapType.TO_BTCLN}) swap via LNURL-pay link
77
+ *
78
+ * @param tokenAddress Token address to pay with
79
+ * @param lnurlPay LNURL-pay link to use for the payment
80
+ * @param amount Amount to send in token based units (if `exactIn=true`) or receive in satoshis (if `exactIn=false`)
81
+ * @param exactIn Whether to do an exact in swap instead of exact out
82
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
83
+ * @param options Additional options for the swap
84
+ */
44
85
  createToBTCLNSwapViaLNURL(tokenAddress, lnurlPay, amount, exactIn, additionalParams, options) {
45
86
  return this.swapper.createToBTCLNSwapViaLNURL(this.signer.getAddress(), tokenAddress, lnurlPay, amount, exactIn, additionalParams, options)
46
87
  .then(swap => (0, SwapWithSigner_1.wrapSwapWithSigner)(swap, this.signer));
47
88
  }
89
+ /**
90
+ * Creates Smart chain -> Bitcoin Lightning ({@link SwapType.TO_BTCLN}) swap via {@link LightningInvoiceCreateService}
91
+ *
92
+ * @param tokenAddress Token address to pay with
93
+ * @param service Invoice create service object which facilitates the creation of fixed amount LN invoices
94
+ * @param amount Amount to send in token based units (if `exactIn=true`) or receive in satoshis (if `exactIn=false`)
95
+ * @param exactIn Whether to do an exact in swap instead of exact out
96
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
97
+ * @param options Additional options for the swap
98
+ */
99
+ createToBTCLNSwapViaInvoiceCreateService(tokenAddress, service, amount, exactIn, additionalParams, options) {
100
+ return this.swapper.createToBTCLNSwapViaInvoiceCreateService(this.signer.getAddress(), tokenAddress, service, amount, exactIn, additionalParams, options)
101
+ .then(swap => (0, SwapWithSigner_1.wrapSwapWithSigner)(swap, this.signer));
102
+ }
103
+ /**
104
+ * Creates Bitcoin -> Smart chain ({@link SwapType.SPV_VAULT_FROM_BTC}) swap
105
+ *
106
+ * @param tokenAddress Token address to receive
107
+ * @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
108
+ * @param exactOut Whether to use a exact out instead of exact in
109
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
110
+ * @param options Additional options for the swap
111
+ */
112
+ createFromBTCSwapNew(tokenAddress, amount, exactOut, additionalParams, options) {
113
+ return this.swapper.createFromBTCSwapNew(this.signer.getAddress(), tokenAddress, amount, exactOut, additionalParams, options)
114
+ .then(swap => (0, SwapWithSigner_1.wrapSwapWithSigner)(swap, this.signer));
115
+ }
116
+ /**
117
+ * Creates LEGACY Bitcoin -> Smart chain ({@link SwapType.FROM_BTC}) swap
118
+ *
119
+ * @param tokenAddress Token address to receive
120
+ * @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
121
+ * @param exactOut Whether to use a exact out instead of exact in
122
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
123
+ * @param options Additional options for the swap
124
+ */
48
125
  createFromBTCSwap(tokenAddress, amount, exactOut, additionalParams, options) {
49
126
  return this.swapper.createFromBTCSwap(this.signer.getAddress(), tokenAddress, amount, exactOut, additionalParams, options)
50
127
  .then(swap => (0, SwapWithSigner_1.wrapSwapWithSigner)(swap, this.signer));
51
128
  }
129
+ /**
130
+ * Creates LEGACY Bitcoin Lightning -> Smart chain ({@link SwapType.FROM_BTCLN}) swap
131
+ *
132
+ * @param tokenAddress Token address to receive
133
+ * @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
134
+ * @param exactOut Whether to use a exact out instead of exact in
135
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
136
+ * @param options Additional options for the swap
137
+ */
52
138
  createFromBTCLNSwap(tokenAddress, amount, exactOut, additionalParams, options) {
53
139
  return this.swapper.createFromBTCLNSwap(this.signer.getAddress(), tokenAddress, amount, exactOut, additionalParams, options)
54
140
  .then(swap => (0, SwapWithSigner_1.wrapSwapWithSigner)(swap, this.signer));
55
141
  }
142
+ /**
143
+ * Creates LEGACY Bitcoin Lightning -> Smart chain ({@link SwapType.FROM_BTCLN}) swap, withdrawing from
144
+ * an LNURL-withdraw link
145
+ *
146
+ * @param tokenAddress Token address to receive
147
+ * @param lnurl LNURL-withdraw link to pull the funds from
148
+ * @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
149
+ * @param exactOut Whether to use a exact out instead of exact in
150
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
151
+ */
56
152
  createFromBTCLNSwapViaLNURL(tokenAddress, lnurl, amount, exactOut, additionalParams) {
57
153
  return this.swapper.createFromBTCLNSwapViaLNURL(this.signer.getAddress(), tokenAddress, lnurl, amount, exactOut, additionalParams)
58
154
  .then(swap => (0, SwapWithSigner_1.wrapSwapWithSigner)(swap, this.signer));
59
155
  }
156
+ /**
157
+ * Creates Bitcoin Lightning -> Smart chain ({@link SwapType.FROM_BTCLN_AUTO}) swap
158
+ *
159
+ * @param tokenAddress Token address to receive
160
+ * @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
161
+ * @param exactOut Whether to use a exact out instead of exact in
162
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
163
+ * @param options Additional options for the swap
164
+ */
60
165
  createFromBTCLNSwapNew(tokenAddress, amount, exactOut, additionalParams, options) {
61
166
  return this.swapper.createFromBTCLNSwapNew(this.signer.getAddress(), tokenAddress, amount, exactOut, additionalParams, options)
62
167
  .then(swap => (0, SwapWithSigner_1.wrapSwapWithSigner)(swap, this.signer));
63
168
  }
169
+ /**
170
+ * Creates Bitcoin Lightning -> Smart chain ({@link SwapType.FROM_BTCLN_AUTO}) swap, withdrawing from
171
+ * an LNURL-withdraw link
172
+ *
173
+ * @param tokenAddress Token address to receive
174
+ * @param lnurl LNURL-withdraw link to pull the funds from
175
+ * @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
176
+ * @param exactOut Whether to use a exact out instead of exact in
177
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
178
+ * @param options Additional options for the swap
179
+ */
64
180
  createFromBTCLNSwapNewViaLNURL(tokenAddress, lnurl, amount, exactOut, additionalParams, options) {
65
181
  return this.swapper.createFromBTCLNSwapNewViaLNURL(this.signer.getAddress(), tokenAddress, lnurl, amount, exactOut, additionalParams, options)
66
182
  .then(swap => (0, SwapWithSigner_1.wrapSwapWithSigner)(swap, this.signer));
67
183
  }
68
- createTrustedLNForGasSwap(amount, trustedIntermediaryUrl) {
69
- return this.swapper.createTrustedLNForGasSwap(this.signer.getAddress(), amount, trustedIntermediaryUrl);
184
+ /**
185
+ * Creates a trusted Bitcoin Lightning -> Smart chain ({@link SwapType.TRUSTED_FROM_BTCLN}) gas swap
186
+ *
187
+ * @param amount Amount of native token to receive, in base units
188
+ * @param trustedIntermediaryOrUrl URL or Intermediary object of the trusted intermediary to use, otherwise uses default
189
+ * @throws {Error} If no trusted intermediary specified
190
+ */
191
+ createTrustedLNForGasSwap(amount, trustedIntermediaryOrUrl) {
192
+ return this.swapper.createTrustedLNForGasSwap(this.signer.getAddress(), amount, trustedIntermediaryOrUrl);
70
193
  }
71
- createTrustedOnchainForGasSwap(amount, refundAddress, trustedIntermediaryUrl) {
72
- return this.swapper.createTrustedOnchainForGasSwap(this.signer.getAddress(), amount, refundAddress, trustedIntermediaryUrl);
194
+ /**
195
+ * Creates a trusted Bitcoin -> Smart chain ({@link SwapType.TRUSTED_FROM_BTC}) gas swap
196
+ *
197
+ * @param amount Amount of native token to receive, in base units
198
+ * @param refundAddress Bitcoin refund address, in case the swap fails the funds are refunded here
199
+ * @param trustedIntermediaryOrUrl URL or Intermediary object of the trusted intermediary to use, otherwise uses default
200
+ * @throws {Error} If no trusted intermediary specified
201
+ */
202
+ createTrustedOnchainForGasSwap(amount, refundAddress, trustedIntermediaryOrUrl) {
203
+ return this.swapper.createTrustedOnchainForGasSwap(this.signer.getAddress(), amount, refundAddress, trustedIntermediaryOrUrl);
73
204
  }
74
205
  /**
75
206
  * Creates a swap from srcToken to dstToken, of a specific token amount, either specifying input amount (exactIn=true)
@@ -111,23 +242,67 @@ class SwapperWithSigner {
111
242
  getSwapById(id) {
112
243
  return this.swapper.getSwapById(id, this.signer.getAddress());
113
244
  }
245
+ /**
246
+ * Returns the swap with a proper return type, or `undefined` if not found or has wrong type
247
+ *
248
+ * @param id An ID of the swap ({@link ISwap.getId})
249
+ * @param swapType Type of the swap
250
+ */
251
+ async getTypedSwapById(id, swapType) {
252
+ return this.swapper.getTypedSwapById(id, swapType, this.signer.getAddress());
253
+ }
114
254
  /**
115
255
  * Synchronizes swaps from chain, this is usually ran when SDK is initialized, deletes expired quotes
116
256
  */
117
257
  async _syncSwaps() {
118
258
  return this.swapper._syncSwaps(this.signer.getAddress());
119
259
  }
260
+ /**
261
+ * Recovers swaps from on-chain historical data.
262
+ *
263
+ * Please note that the recovered swaps might not be complete (i.e. missing amounts or addresses), as some
264
+ * of the swap data is purely off-chain and can never be recovered purely from on-chain data. This
265
+ * functions tries to recover as much swap data as possible.
266
+ *
267
+ * @param startBlockheight Optional starting blockheight for swap data recovery, will only check swaps
268
+ * initiated after this blockheight
269
+ */
270
+ async recoverSwaps(startBlockheight) {
271
+ return this.swapper.recoverSwaps(this.signer.getAddress(), startBlockheight);
272
+ }
273
+ /**
274
+ * Returns the {@link Token} object for a given token
275
+ *
276
+ * @param tickerOrAddress Token to return the object for, can use multiple formats:
277
+ * - a) token ticker, such as `"BTC"`, `"SOL"`, etc.
278
+ * - b) token ticker prefixed with smart chain identifier, such as `"SOLANA-SOL"`, `"SOLANA-USDC"`, etc.
279
+ * - c) token address
280
+ */
281
+ getToken(tickerOrAddress) {
282
+ return this.swapper.getToken(tickerOrAddress);
283
+ }
284
+ /**
285
+ * Returns whether the SDK supports a given swap type on this chain based on currently known LPs
286
+ *
287
+ * @param swapType Swap protocol type
288
+ */
120
289
  supportsSwapType(swapType) {
121
290
  return this.swapper.supportsSwapType(swapType);
122
291
  }
292
+ /**
293
+ * Returns type of the swap based on input and output tokens specified
294
+ *
295
+ * @param srcToken Source token
296
+ * @param dstToken Destination token
297
+ */
123
298
  getSwapType(srcToken, dstToken) {
124
299
  return this.swapper.getSwapType(srcToken, dstToken);
125
300
  }
126
301
  /**
127
302
  * Returns minimum/maximum limits for inputs and outputs for a swap between given tokens
128
303
  *
129
- * @param srcToken
130
- * @param dstToken
304
+ * @param srcToken Source token
305
+ * @param dstToken Destination token
131
306
  */
132
307
  getSwapLimits(srcToken, dstToken) {
133
308
  return this.swapper.getSwapLimits(srcToken, dstToken);
@@ -139,34 +314,5 @@ class SwapperWithSigner {
139
314
  getSwapCounterTokens(token, input) {
140
315
  return this.swapper.getSwapCounterTokens(token, input);
141
316
  }
142
- ///////////////////////////////////
143
- /// Deprecated
144
- /**
145
- * Returns swap bounds (minimums & maximums) for different swap types & tokens
146
- * @deprecated Use getSwapLimits() instead!
147
- */
148
- getSwapBounds() {
149
- return this.swapper.getSwapBounds();
150
- }
151
- /**
152
- * Returns maximum possible swap amount
153
- * @deprecated Use getSwapLimits() instead!
154
- *
155
- * @param type Type of the swap
156
- * @param token Token of the swap
157
- */
158
- getMaximum(type, token) {
159
- return this.swapper.getMaximum(type, token);
160
- }
161
- /**
162
- * Returns minimum possible swap amount
163
- * @deprecated Use getSwapLimits() instead!
164
- *
165
- * @param type Type of swap
166
- * @param token Token of the swap
167
- */
168
- getMinimum(type, token) {
169
- return this.swapper.getMinimum(type, token);
170
- }
171
317
  }
172
318
  exports.SwapperWithSigner = SwapperWithSigner;
@@ -1,13 +1,22 @@
1
1
  /**
2
- * Type guard to check if an object is an IAddressSwap
2
+ * Type guard to check if an object is an {@link IAddressSwap}
3
+ *
3
4
  * @category Swaps
4
5
  */
5
6
  export declare function isIAddressSwap(obj: any): obj is IAddressSwap;
6
7
  /**
7
8
  * Interface for swaps which require a user to send funds to a specific address
9
+ *
8
10
  * @category Swaps
9
11
  */
10
12
  export interface IAddressSwap {
13
+ /**
14
+ * An address to which the user needs to send funds on the source chain
15
+ */
11
16
  getAddress(): string;
17
+ /**
18
+ * A hyperlink representation of the address + amount that the user needs to sends on the source chain.
19
+ * This is suitable to be displayed in a form of QR code.
20
+ */
12
21
  getHyperlink(): string;
13
22
  }
@@ -2,7 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isIAddressSwap = void 0;
4
4
  /**
5
- * Type guard to check if an object is an IAddressSwap
5
+ * Type guard to check if an object is an {@link IAddressSwap}
6
+ *
6
7
  * @category Swaps
7
8
  */
8
9
  function isIAddressSwap(obj) {
@@ -4,22 +4,24 @@ import { MinimalBitcoinWalletInterface, MinimalBitcoinWalletInterfaceWithSigner
4
4
  import { TokenAmount } from "../types/TokenAmount";
5
5
  import { BtcToken } from "../types/Token";
6
6
  /**
7
- * Type guard to check if an object is an IBTCWalletSwap
7
+ * Type guard to check if an object is an {@link IBTCWalletSwap}
8
+ *
8
9
  * @category Swaps
9
10
  */
10
11
  export declare function isIBTCWalletSwap(obj: any): obj is IBTCWalletSwap;
11
12
  /**
12
13
  * Interface for swaps requiring Bitcoin wallet interaction
14
+ *
13
15
  * @category Swaps
14
16
  */
15
17
  export interface IBTCWalletSwap {
16
18
  /**
17
19
  * Returns the PSBT that is already funded with wallet's UTXOs (runs a coin-selection algorithm to choose UTXOs to use),
18
20
  * also returns inputs indices that need to be signed by the wallet before submitting the PSBT back to the SDK with
19
- * `swap.submitPsbt()`
21
+ * {@link submitPsbt}
20
22
  *
21
23
  * @param _bitcoinWallet Sender's bitcoin wallet
22
- * @param feeRate Optional fee rate for the transaction, needs to be at least as big as {minimumBtcFeeRate} field
24
+ * @param feeRate Optional fee rate in sats/vB for the transaction
23
25
  * @param additionalOutputs additional outputs to add to the PSBT - can be used to collect fees from users
24
26
  */
25
27
  getFundedPsbt(_bitcoinWallet: IBitcoinWallet | MinimalBitcoinWalletInterface, feeRate?: number, additionalOutputs?: ({
@@ -37,19 +39,35 @@ export interface IBTCWalletSwap {
37
39
  /**
38
40
  * Submits a PSBT signed by the wallet back to the SDK
39
41
  *
40
- * @param psbt A psbt - either a Transaction object or a hex or base64 encoded PSBT string
42
+ * @param psbt A PSBT, either a Transaction object or a hex or base64 encoded PSBT string
41
43
  */
42
44
  submitPsbt(psbt: Transaction | string): Promise<string>;
45
+ /**
46
+ * Estimates a bitcoin on-chain fee paid for the bitcoin swap transaction
47
+ *
48
+ * @param wallet Sender's bitcoin wallet
49
+ * @param feeRate Optional fee rate in sats/vB for the transaction
50
+ */
43
51
  estimateBitcoinFee(wallet: IBitcoinWallet | MinimalBitcoinWalletInterface, feeRate?: number): Promise<TokenAmount<any, BtcToken<false>> | null>;
52
+ /**
53
+ * Sends a swap bitcoin transaction via the passed bitcoin wallet
54
+ *
55
+ * @param wallet Sender's bitcoin wallet
56
+ * @param feeRate Optional fee rate in sats/vB for the transaction
57
+ */
44
58
  sendBitcoinTransaction(wallet: IBitcoinWallet | MinimalBitcoinWalletInterfaceWithSigner, feeRate?: number): Promise<string>;
45
59
  /**
46
- * Waits till the bitcoin transaction confirms
60
+ * Waits till the bitcoin transaction gets the required number of confirmations
47
61
  *
48
62
  * @param updateCallback Callback called when txId is found, and also called with subsequent confirmations
49
63
  * @param checkIntervalSeconds How often to check the bitcoin transaction
50
64
  * @param abortSignal Abort signal
51
- * @throws {Error} if in invalid state (must be CLAIM_COMMITED)
65
+ * @throws {Error} if in invalid state
52
66
  */
53
67
  waitForBitcoinTransaction(updateCallback?: (txId?: string, confirmations?: number, targetConfirmations?: number, txEtaMs?: number) => void, checkIntervalSeconds?: number, abortSignal?: AbortSignal): Promise<string>;
68
+ /**
69
+ * Returns the number of confirmations required for the bitcoin transaction for this swap
70
+ * to complete and settle
71
+ */
54
72
  getRequiredConfirmationsCount(): number;
55
73
  }
@@ -2,7 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isIBTCWalletSwap = void 0;
4
4
  /**
5
- * Type guard to check if an object is an IBTCWalletSwap
5
+ * Type guard to check if an object is an {@link IBTCWalletSwap}
6
+ *
6
7
  * @category Swaps
7
8
  */
8
9
  function isIBTCWalletSwap(obj) {
@@ -2,16 +2,48 @@ import { ChainType } from "@atomiqlabs/base";
2
2
  import { ISwap } from "./ISwap";
3
3
  import { ISwapWrapper, SwapTypeDefinition } from "./ISwapWrapper";
4
4
  /**
5
- * Type guard to check if an object is an IClaimableSwap
5
+ * Type guard to check if an object is an {@link IClaimableSwap}
6
+ *
6
7
  * @category Swaps
7
8
  */
8
9
  export declare function isIClaimableSwap(obj: any): obj is IClaimableSwap;
9
10
  /**
10
- * Interface for swaps that can be claimed
11
+ * Interface for swaps that can end up in a claimable state, requiring the user to claim the
12
+ * assets on the destination chain.
13
+ *
11
14
  * @category Swaps
12
15
  */
13
16
  export interface IClaimableSwap<T extends ChainType = ChainType, D extends SwapTypeDefinition<T, ISwapWrapper<T, D>, IClaimableSwap<T, D, S>> = SwapTypeDefinition<T, ISwapWrapper<T, any>, IClaimableSwap<T, any, any>>, S extends number = number> extends ISwap<T, D, S> {
17
+ /**
18
+ * Checks whether a swap currently requires a manual claiming (settlement)
19
+ */
14
20
  isClaimable(): boolean;
15
- txsClaim(_signer?: T["Signer"] | T["NativeSigner"]): Promise<T["TX"][]>;
16
- claim(_signer?: T["Signer"] | T["NativeSigner"], abortSignal?: AbortSignal): Promise<string>;
21
+ /**
22
+ * Returns transactions for settling (claiming) the swap if the swap requires manual settlement, you can check
23
+ * so with {@link isClaimable}. After sending the transaction manually be sure to call the {@link waitTillClaimed}
24
+ * function to wait till the claim transaction is observed, processed by the SDK and state of the swap
25
+ * properly updated.
26
+ *
27
+ * @param _signer Address of the signer to create the refund transactions for
28
+ */
29
+ txsClaim(_signer?: string | T["Signer"] | T["NativeSigner"]): Promise<T["TX"][]>;
30
+ /**
31
+ * Settles the swap by claiming the funds on the destination chain if the swap requires manual settlement,
32
+ * you can check so with {@link isClaimable}
33
+ *
34
+ * @param _signer Signer to use for signing the settlement transactions
35
+ * @param abortSignal Abort signal
36
+ * @param onBeforeTxSent Optional callback triggered before the claim transaction is broadcasted
37
+ */
38
+ claim(_signer?: T["Signer"] | T["NativeSigner"], abortSignal?: AbortSignal, onBeforeTxSent?: (txId: string) => void): Promise<string>;
39
+ /**
40
+ * Waits till the swap is successfully settled (claimed), should be called after sending the claim (settlement)
41
+ * transactions manually to wait till the SDK processes the settlement and updates the swap state accordingly
42
+ *
43
+ * @param maxWaitTimeSeconds Maximum time in seconds to wait for the swap to be settled
44
+ * @param abortSignal AbortSignal
45
+ *
46
+ * @returns {boolean} whether the swap was claimed in time or not
47
+ */
48
+ waitTillClaimed(maxWaitTimeSeconds?: number, abortSignal?: AbortSignal): Promise<boolean>;
17
49
  }
@@ -2,7 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isIClaimableSwap = void 0;
4
4
  /**
5
- * Type guard to check if an object is an IClaimableSwap
5
+ * Type guard to check if an object is an {@link IClaimableSwap}
6
+ *
6
7
  * @category Swaps
7
8
  */
8
9
  function isIClaimableSwap(obj) {
@@ -1,5 +1,15 @@
1
1
  import { ISwap } from "./ISwap";
2
2
  import { IClaimableSwap } from "./IClaimableSwap";
3
+ /**
4
+ * Interface for a swap wrapper for swaps that can end up in a claimable state, requiring the user to claim the
5
+ * assets on the destination chain.
6
+ *
7
+ * @category Swaps
8
+ */
3
9
  export interface IClaimableSwapWrapper<T extends ISwap & IClaimableSwap = ISwap & IClaimableSwap> {
4
- claimableSwapStates: T["state"][];
10
+ /**
11
+ * A list of swap states when the swap is potentially claimable
12
+ * @internal
13
+ */
14
+ _claimableSwapStates: T["_state"][];
5
15
  }
@@ -2,16 +2,42 @@ import { ChainType } from "@atomiqlabs/base";
2
2
  import { ISwap } from "./ISwap";
3
3
  import { ISwapWrapper, SwapTypeDefinition } from "./ISwapWrapper";
4
4
  /**
5
- * Type guard to check if an object is an IRefundableSwap
5
+ * Type guard to check if an object is an {@link IRefundableSwap}
6
+ *
6
7
  * @category Swaps
7
8
  */
8
9
  export declare function isIRefundableSwap(obj: any): obj is IRefundableSwap;
9
10
  /**
10
- * Interface for swaps that can be refunded
11
+ * Interface for swaps that can be refunded in case of failure
12
+ *
11
13
  * @category Swaps
12
14
  */
13
15
  export interface IRefundableSwap<T extends ChainType = ChainType, D extends SwapTypeDefinition<T, ISwapWrapper<T, D>, IRefundableSwap<T, D, S>> = SwapTypeDefinition<T, ISwapWrapper<T, any>, IRefundableSwap<T, any, any>>, S extends number = number> extends ISwap<T, D, S> {
16
+ /**
17
+ * Checks whether a swap is currently refundable
18
+ */
14
19
  isRefundable(): boolean;
15
- txsRefund(_signer?: T["Signer"] | T["NativeSigner"]): Promise<T["TX"][]>;
20
+ /**
21
+ * Returns transactions for refunding the swap if the swap is in refundable state, you can check so with
22
+ * {@link isRefundable}. After sending the transaction manually be sure to call the {@link waitTillRefunded}
23
+ * function to wait till the refund transaction is observed, processed by the SDK and state of the swap
24
+ * properly updated.
25
+ *
26
+ * @param _signer Address of the signer to create the refund transactions for
27
+ */
28
+ txsRefund(_signer?: string): Promise<T["TX"][]>;
29
+ /**
30
+ * Refunds the swap if the swap is in refundable state, you can check so with {@link isRefundable}
31
+ *
32
+ * @param _signer Signer to sign the transactions with, must be the same as used in the initialization
33
+ * @param abortSignal Abort signal
34
+ */
16
35
  refund(_signer?: T["Signer"] | T["NativeSigner"], abortSignal?: AbortSignal): Promise<string>;
36
+ /**
37
+ * Waits till a swap is refunded, should be called after sending the refund transactions manually to
38
+ * wait till the SDK processes the refund and updates the swap state accordingly
39
+ *
40
+ * @param abortSignal AbortSignal
41
+ */
42
+ waitTillRefunded(abortSignal?: AbortSignal): Promise<void>;
17
43
  }
@@ -2,7 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isIRefundableSwap = void 0;
4
4
  /**
5
- * Type guard to check if an object is an IRefundableSwap
5
+ * Type guard to check if an object is an {@link IRefundableSwap}
6
+ *
6
7
  * @category Swaps
7
8
  */
8
9
  function isIRefundableSwap(obj) {