@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
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OnchainForGasSwap = exports.isOnchainForGasSwapInit = exports.OnchainForGasSwapState = void 0;
4
4
  const SwapType_1 = require("../../../enums/SwapType");
5
- const PaymentAuthError_1 = require("../../../errors/PaymentAuthError");
6
5
  const Utils_1 = require("../../../utils/Utils");
7
6
  const BitcoinUtils_1 = require("../../../utils/BitcoinUtils");
8
7
  const ISwap_1 = require("../../ISwap");
@@ -20,15 +19,34 @@ const TimeoutUtils_1 = require("../../../utils/TimeoutUtils");
20
19
  const BitcoinWalletUtils_1 = require("../../../utils/BitcoinWalletUtils");
21
20
  /**
22
21
  * State enum for trusted on-chain gas swaps
23
- * @category Swaps
22
+ *
23
+ * @category Swaps/Trusted Gas Swaps
24
24
  */
25
25
  var OnchainForGasSwapState;
26
26
  (function (OnchainForGasSwapState) {
27
+ /**
28
+ * The swap quote expired without user sending in the BTC
29
+ */
27
30
  OnchainForGasSwapState[OnchainForGasSwapState["EXPIRED"] = -3] = "EXPIRED";
31
+ /**
32
+ * The swap has failed after the intermediary already received the BTC on the source chain
33
+ */
28
34
  OnchainForGasSwapState[OnchainForGasSwapState["FAILED"] = -2] = "FAILED";
35
+ /**
36
+ * Swap was refunded and BTC returned to the user's refund address
37
+ */
29
38
  OnchainForGasSwapState[OnchainForGasSwapState["REFUNDED"] = -1] = "REFUNDED";
39
+ /**
40
+ * Swap was created
41
+ */
30
42
  OnchainForGasSwapState[OnchainForGasSwapState["PR_CREATED"] = 0] = "PR_CREATED";
43
+ /**
44
+ * The swap is finished after the intermediary sent funds on the destination chain
45
+ */
31
46
  OnchainForGasSwapState[OnchainForGasSwapState["FINISHED"] = 1] = "FINISHED";
47
+ /**
48
+ * Swap is refundable because the intermediary cannot honor the swap request on the destination chain
49
+ */
32
50
  OnchainForGasSwapState[OnchainForGasSwapState["REFUNDABLE"] = 2] = "REFUNDABLE";
33
51
  })(OnchainForGasSwapState = exports.OnchainForGasSwapState || (exports.OnchainForGasSwapState = {}));
34
52
  function isOnchainForGasSwapInit(obj) {
@@ -44,15 +62,16 @@ function isOnchainForGasSwapInit(obj) {
44
62
  }
45
63
  exports.isOnchainForGasSwapInit = isOnchainForGasSwapInit;
46
64
  /**
47
- * Trusted on-chain BTC to gas token swap
48
- * @category Swaps
65
+ * Trusted swap for Bitcoin -> Smart chains, to be used for minor amounts to get gas tokens on the
66
+ * destination chain, which is only needed for Solana, which still uses legacy swaps
67
+ *
68
+ * @category Swaps/Trusted Gas Swaps
49
69
  */
50
70
  class OnchainForGasSwap extends ISwap_1.ISwap {
51
71
  constructor(wrapper, initOrObj) {
52
72
  if (isOnchainForGasSwapInit(initOrObj) && initOrObj.url != null)
53
73
  initOrObj.url += "/frombtc_trusted";
54
74
  super(wrapper, initOrObj);
55
- this.getSmartChainNetworkFee = null;
56
75
  this.TYPE = SwapType_1.SwapType.TRUSTED_FROM_BTC;
57
76
  this.wrapper = wrapper;
58
77
  if (isOnchainForGasSwapInit(initOrObj)) {
@@ -64,7 +83,7 @@ class OnchainForGasSwap extends ISwap_1.ISwap {
64
83
  this.recipient = initOrObj.recipient;
65
84
  this.token = initOrObj.token;
66
85
  this.refundAddress = initOrObj.refundAddress;
67
- this.state = OnchainForGasSwapState.PR_CREATED;
86
+ this._state = OnchainForGasSwapState.PR_CREATED;
68
87
  }
69
88
  else {
70
89
  this.paymentHash = initOrObj.paymentHash;
@@ -82,6 +101,10 @@ class OnchainForGasSwap extends ISwap_1.ISwap {
82
101
  this.logger = (0, Logger_1.getLogger)("OnchainForGas(" + this.getId() + "): ");
83
102
  this.tryRecomputeSwapPrice();
84
103
  }
104
+ /**
105
+ * @inheritDoc
106
+ * @internal
107
+ */
85
108
  upgradeVersion() {
86
109
  if (this.version == null) {
87
110
  //Noop
@@ -89,8 +112,8 @@ class OnchainForGasSwap extends ISwap_1.ISwap {
89
112
  }
90
113
  }
91
114
  /**
92
- * In case swapFee in BTC is not supplied it recalculates it based on swap price
93
- * @protected
115
+ * @inheritDoc
116
+ * @internal
94
117
  */
95
118
  tryRecomputeSwapPrice() {
96
119
  if (this.swapFeeBtc == null && this.swapFee != null) {
@@ -100,120 +123,203 @@ class OnchainForGasSwap extends ISwap_1.ISwap {
100
123
  }
101
124
  //////////////////////////////
102
125
  //// Getters & utils
126
+ /**
127
+ * @inheritDoc
128
+ * @internal
129
+ */
103
130
  _getEscrowHash() {
104
131
  return this.paymentHash;
105
132
  }
133
+ /**
134
+ * @inheritDoc
135
+ */
106
136
  getOutputAddress() {
107
137
  return this.recipient;
108
138
  }
139
+ /**
140
+ * @inheritDoc
141
+ */
109
142
  getInputAddress() {
110
143
  //TODO: Fuck this, it's not used anyway
111
144
  return null;
112
145
  }
146
+ /**
147
+ * @inheritDoc
148
+ */
113
149
  getInputTxId() {
114
150
  return this.txId ?? null;
115
151
  }
152
+ /**
153
+ * @inheritDoc
154
+ */
116
155
  getOutputTxId() {
117
156
  return this.scTxId ?? null;
118
157
  }
158
+ /**
159
+ * @inheritDoc
160
+ */
119
161
  getId() {
120
162
  return this.paymentHash;
121
163
  }
164
+ /**
165
+ * @inheritDoc
166
+ */
122
167
  getAddress() {
123
168
  return this.address;
124
169
  }
170
+ /**
171
+ * @inheritDoc
172
+ */
125
173
  getHyperlink() {
126
174
  return "bitcoin:" + this.address + "?amount=" + encodeURIComponent((Number(this.inputAmount) / 100000000).toString(10));
127
175
  }
176
+ /**
177
+ * @inheritDoc
178
+ */
128
179
  requiresAction() {
129
- return this.state === OnchainForGasSwapState.REFUNDABLE;
180
+ return this._state === OnchainForGasSwapState.REFUNDABLE;
130
181
  }
182
+ /**
183
+ * @inheritDoc
184
+ */
131
185
  isFinished() {
132
- return this.state === OnchainForGasSwapState.FINISHED || this.state === OnchainForGasSwapState.FAILED || this.state === OnchainForGasSwapState.EXPIRED || this.state === OnchainForGasSwapState.REFUNDED;
186
+ return this._state === OnchainForGasSwapState.FINISHED || this._state === OnchainForGasSwapState.FAILED || this._state === OnchainForGasSwapState.EXPIRED || this._state === OnchainForGasSwapState.REFUNDED;
133
187
  }
188
+ /**
189
+ * @inheritDoc
190
+ */
134
191
  isQuoteExpired() {
135
- return this.state === OnchainForGasSwapState.EXPIRED;
192
+ return this._state === OnchainForGasSwapState.EXPIRED;
136
193
  }
194
+ /**
195
+ * @inheritDoc
196
+ */
137
197
  isQuoteSoftExpired() {
138
198
  return this.expiry < Date.now();
139
199
  }
200
+ /**
201
+ * @inheritDoc
202
+ */
140
203
  isFailed() {
141
- return this.state === OnchainForGasSwapState.FAILED;
204
+ return this._state === OnchainForGasSwapState.FAILED;
142
205
  }
206
+ /**
207
+ * @inheritDoc
208
+ */
143
209
  isSuccessful() {
144
- return this.state === OnchainForGasSwapState.FINISHED;
210
+ return this._state === OnchainForGasSwapState.FINISHED;
145
211
  }
146
- verifyQuoteValid() {
212
+ /**
213
+ * @inheritDoc
214
+ * @internal
215
+ */
216
+ _verifyQuoteDefinitelyExpired() {
217
+ return Promise.resolve(this.expiry < Date.now());
218
+ }
219
+ /**
220
+ * @inheritDoc
221
+ * @internal
222
+ */
223
+ _verifyQuoteValid() {
147
224
  return Promise.resolve(this.expiry > Date.now());
148
225
  }
149
226
  //////////////////////////////
150
227
  //// Amounts & fees
228
+ /**
229
+ * Returns an output amount in base units without a swap fee included, hence this value
230
+ * is larger than the actual output amount
231
+ *
232
+ * @internal
233
+ */
151
234
  getOutAmountWithoutFee() {
152
235
  return this.outputAmount + (this.swapFee ?? 0n);
153
236
  }
237
+ /**
238
+ * @inheritDoc
239
+ */
154
240
  getOutputToken() {
155
- return this.wrapper.tokens[this.wrapper.chain.getNativeCurrencyAddress()];
241
+ return this.wrapper._tokens[this.wrapper._chain.getNativeCurrencyAddress()];
156
242
  }
243
+ /**
244
+ * @inheritDoc
245
+ */
157
246
  getOutput() {
158
- return (0, TokenAmount_1.toTokenAmount)(this.outputAmount, this.wrapper.tokens[this.wrapper.chain.getNativeCurrencyAddress()], this.wrapper.prices, this.pricingInfo);
247
+ return (0, TokenAmount_1.toTokenAmount)(this.outputAmount, this.wrapper._tokens[this.wrapper._chain.getNativeCurrencyAddress()], this.wrapper._prices, this.pricingInfo);
159
248
  }
249
+ /**
250
+ * @inheritDoc
251
+ */
160
252
  getInputToken() {
161
253
  return Token_1.BitcoinTokens.BTC;
162
254
  }
255
+ /**
256
+ * @inheritDoc
257
+ */
163
258
  getInput() {
164
- return (0, TokenAmount_1.toTokenAmount)(this.inputAmount, Token_1.BitcoinTokens.BTC, this.wrapper.prices, this.pricingInfo);
259
+ return (0, TokenAmount_1.toTokenAmount)(this.inputAmount, Token_1.BitcoinTokens.BTC, this.wrapper._prices, this.pricingInfo);
165
260
  }
261
+ /**
262
+ * @inheritDoc
263
+ */
166
264
  getInputWithoutFee() {
167
- return (0, TokenAmount_1.toTokenAmount)(this.inputAmount - (this.swapFeeBtc ?? 0n), Token_1.BitcoinTokens.BTC, this.wrapper.prices, this.pricingInfo);
265
+ return (0, TokenAmount_1.toTokenAmount)(this.inputAmount - (this.swapFeeBtc ?? 0n), Token_1.BitcoinTokens.BTC, this.wrapper._prices, this.pricingInfo);
168
266
  }
267
+ /**
268
+ * Returns the swap fee charged by the intermediary (LP) on this swap
269
+ *
270
+ * @internal
271
+ */
169
272
  getSwapFee() {
170
273
  if (this.pricingInfo == null)
171
274
  throw new Error("No pricing info known!");
172
275
  const feeWithoutBaseFee = this.swapFeeBtc == null ? 0n : this.swapFeeBtc - this.pricingInfo.satsBaseFee;
173
276
  const swapFeePPM = feeWithoutBaseFee * 1000000n / this.getInputWithoutFee().rawAmount;
174
- const amountInSrcToken = (0, TokenAmount_1.toTokenAmount)(this.swapFeeBtc ?? 0n, Token_1.BitcoinTokens.BTC, this.wrapper.prices, this.pricingInfo);
277
+ const amountInSrcToken = (0, TokenAmount_1.toTokenAmount)(this.swapFeeBtc ?? 0n, Token_1.BitcoinTokens.BTC, this.wrapper._prices, this.pricingInfo);
175
278
  return {
176
279
  amountInSrcToken,
177
- amountInDstToken: (0, TokenAmount_1.toTokenAmount)(this.swapFee ?? 0n, this.wrapper.tokens[this.wrapper.chain.getNativeCurrencyAddress()], this.wrapper.prices, this.pricingInfo),
280
+ amountInDstToken: (0, TokenAmount_1.toTokenAmount)(this.swapFee ?? 0n, this.wrapper._tokens[this.wrapper._chain.getNativeCurrencyAddress()], this.wrapper._prices, this.pricingInfo),
178
281
  currentUsdValue: amountInSrcToken.currentUsdValue,
179
282
  usdValue: amountInSrcToken.usdValue,
180
283
  pastUsdValue: amountInSrcToken.pastUsdValue,
181
284
  composition: {
182
- base: (0, TokenAmount_1.toTokenAmount)(this.pricingInfo.satsBaseFee, Token_1.BitcoinTokens.BTC, this.wrapper.prices, this.pricingInfo),
285
+ base: (0, TokenAmount_1.toTokenAmount)(this.pricingInfo.satsBaseFee, Token_1.BitcoinTokens.BTC, this.wrapper._prices, this.pricingInfo),
183
286
  percentage: (0, PercentagePPM_1.ppmToPercentage)(swapFeePPM)
184
287
  }
185
288
  };
186
289
  }
290
+ /**
291
+ * @inheritDoc
292
+ */
187
293
  getFee() {
188
294
  return this.getSwapFee();
189
295
  }
296
+ /**
297
+ * @inheritDoc
298
+ */
190
299
  getFeeBreakdown() {
191
300
  return [{
192
301
  type: FeeType_1.FeeType.SWAP,
193
302
  fee: this.getSwapFee()
194
303
  }];
195
304
  }
305
+ /**
306
+ * @inheritDoc
307
+ */
196
308
  getRequiredConfirmationsCount() {
197
309
  return 1;
198
310
  }
199
311
  /**
200
- * Returns the PSBT that is already funded with wallet's UTXOs (runs a coin-selection algorithm to choose UTXOs to use),
201
- * also returns inputs indices that need to be signed by the wallet before submitting the PSBT back to the SDK with
202
- * `swap.submitPsbt()`
203
- *
204
- * @param _bitcoinWallet Sender's bitcoin wallet
205
- * @param feeRate Optional fee rate for the transaction, needs to be at least as big as {minimumBtcFeeRate} field
206
- * @param additionalOutputs additional outputs to add to the PSBT - can be used to collect fees from users
312
+ * @inheritDoc
207
313
  */
208
314
  async getFundedPsbt(_bitcoinWallet, feeRate, additionalOutputs) {
209
- if (this.state !== OnchainForGasSwapState.PR_CREATED)
315
+ if (this._state !== OnchainForGasSwapState.PR_CREATED)
210
316
  throw new Error("Swap already paid for!");
211
317
  let bitcoinWallet;
212
318
  if ((0, IBitcoinWallet_1.isIBitcoinWallet)(_bitcoinWallet)) {
213
319
  bitcoinWallet = _bitcoinWallet;
214
320
  }
215
321
  else {
216
- bitcoinWallet = new SingleAddressBitcoinWallet_1.SingleAddressBitcoinWallet(this.wrapper.btcRpc, this.wrapper.options.bitcoinNetwork, _bitcoinWallet);
322
+ bitcoinWallet = new SingleAddressBitcoinWallet_1.SingleAddressBitcoinWallet(this.wrapper._btcRpc, this.wrapper._options.bitcoinNetwork, _bitcoinWallet);
217
323
  }
218
324
  //TODO: Maybe re-introduce fee rate check here if passed from the user
219
325
  if (feeRate == null) {
@@ -225,13 +331,13 @@ class OnchainForGasSwap extends ISwap_1.ISwap {
225
331
  });
226
332
  basePsbt.addOutput({
227
333
  amount: this.outputAmount,
228
- script: (0, BitcoinUtils_1.toOutputScript)(this.wrapper.options.bitcoinNetwork, this.address)
334
+ script: (0, BitcoinUtils_1.toOutputScript)(this.wrapper._options.bitcoinNetwork, this.address)
229
335
  });
230
336
  if (additionalOutputs != null)
231
337
  additionalOutputs.forEach(output => {
232
338
  basePsbt.addOutput({
233
339
  amount: output.amount,
234
- script: output.outputScript ?? (0, BitcoinUtils_1.toOutputScript)(this.wrapper.options.bitcoinNetwork, output.address)
340
+ script: output.outputScript ?? (0, BitcoinUtils_1.toOutputScript)(this.wrapper._options.bitcoinNetwork, output.address)
235
341
  });
236
342
  });
237
343
  const psbt = await bitcoinWallet.fundPsbt(basePsbt, feeRate);
@@ -249,13 +355,11 @@ class OnchainForGasSwap extends ISwap_1.ISwap {
249
355
  };
250
356
  }
251
357
  /**
252
- * Submits a PSBT signed by the wallet back to the SDK
253
- *
254
- * @param _psbt A psbt - either a Transaction object or a hex or base64 encoded PSBT string
358
+ * @inheritDoc
255
359
  */
256
360
  async submitPsbt(_psbt) {
257
361
  const psbt = (0, BitcoinUtils_1.parsePsbtTransaction)(_psbt);
258
- if (this.state !== OnchainForGasSwapState.PR_CREATED)
362
+ if (this._state !== OnchainForGasSwapState.PR_CREATED)
259
363
  throw new Error("Swap already paid for!");
260
364
  //Ensure not expired
261
365
  if (this.expiry < Date.now()) {
@@ -264,22 +368,28 @@ class OnchainForGasSwap extends ISwap_1.ISwap {
264
368
  const output0 = psbt.getOutput(0);
265
369
  if (output0.amount !== this.outputAmount)
266
370
  throw new Error("PSBT output amount invalid, expected: " + this.outputAmount + " got: " + output0.amount);
267
- const expectedOutputScript = (0, BitcoinUtils_1.toOutputScript)(this.wrapper.options.bitcoinNetwork, this.address);
371
+ const expectedOutputScript = (0, BitcoinUtils_1.toOutputScript)(this.wrapper._options.bitcoinNetwork, this.address);
268
372
  if (output0.script == null || !expectedOutputScript.equals(output0.script))
269
373
  throw new Error("PSBT output script invalid!");
270
374
  if (!psbt.isFinal)
271
375
  psbt.finalize();
272
- return await this.wrapper.btcRpc.sendRawTransaction(buffer_1.Buffer.from(psbt.toBytes(true, true)).toString("hex"));
376
+ return await this.wrapper._btcRpc.sendRawTransaction(buffer_1.Buffer.from(psbt.toBytes(true, true)).toString("hex"));
273
377
  }
378
+ /**
379
+ * @inheritDoc
380
+ */
274
381
  async estimateBitcoinFee(_bitcoinWallet, feeRate) {
275
- const bitcoinWallet = (0, BitcoinWalletUtils_1.toBitcoinWallet)(_bitcoinWallet, this.wrapper.btcRpc, this.wrapper.options.bitcoinNetwork);
382
+ const bitcoinWallet = (0, BitcoinWalletUtils_1.toBitcoinWallet)(_bitcoinWallet, this.wrapper._btcRpc, this.wrapper._options.bitcoinNetwork);
276
383
  const txFee = await bitcoinWallet.getTransactionFee(this.address, this.inputAmount, feeRate);
277
384
  if (txFee == null)
278
385
  return null;
279
- return (0, TokenAmount_1.toTokenAmount)(BigInt(txFee), Token_1.BitcoinTokens.BTC, this.wrapper.prices, this.pricingInfo);
386
+ return (0, TokenAmount_1.toTokenAmount)(BigInt(txFee), Token_1.BitcoinTokens.BTC, this.wrapper._prices, this.pricingInfo);
280
387
  }
388
+ /**
389
+ * @inheritDoc
390
+ */
281
391
  async sendBitcoinTransaction(wallet, feeRate) {
282
- if (this.state !== OnchainForGasSwapState.PR_CREATED)
392
+ if (this._state !== OnchainForGasSwapState.PR_CREATED)
283
393
  throw new Error("Swap already paid for!");
284
394
  //Ensure not expired
285
395
  if (this.expiry < Date.now()) {
@@ -296,9 +406,15 @@ class OnchainForGasSwap extends ISwap_1.ISwap {
296
406
  return await this.submitPsbt(signedPsbt);
297
407
  }
298
408
  }
409
+ /**
410
+ * @inheritDoc
411
+ *
412
+ * @param options.bitcoinWallet Optional bitcoin wallet address specification to return a funded PSBT,
413
+ * if not provided an address is returned instead.
414
+ */
299
415
  async txsExecute(options) {
300
- if (this.state === OnchainForGasSwapState.PR_CREATED) {
301
- if (!await this.verifyQuoteValid())
416
+ if (this._state === OnchainForGasSwapState.PR_CREATED) {
417
+ if (!await this._verifyQuoteValid())
302
418
  throw new Error("Quote already expired or close to expiry!");
303
419
  return [
304
420
  {
@@ -323,16 +439,24 @@ class OnchainForGasSwap extends ISwap_1.ISwap {
323
439
  }
324
440
  //////////////////////////////
325
441
  //// Payment
442
+ /**
443
+ * Queries the intermediary (LP) node for the state of the swap
444
+ *
445
+ * @param save Whether the save the result or not
446
+ *
447
+ * @returns Whether the swap was successful as `boolean` or `null` if the swap is still pending
448
+ * @internal
449
+ */
326
450
  async checkAddress(save = true) {
327
- if (this.state === OnchainForGasSwapState.FAILED ||
328
- this.state === OnchainForGasSwapState.EXPIRED ||
329
- this.state === OnchainForGasSwapState.REFUNDED)
451
+ if (this._state === OnchainForGasSwapState.FAILED ||
452
+ this._state === OnchainForGasSwapState.EXPIRED ||
453
+ this._state === OnchainForGasSwapState.REFUNDED)
330
454
  return false;
331
- if (this.state === OnchainForGasSwapState.FINISHED)
455
+ if (this._state === OnchainForGasSwapState.FINISHED)
332
456
  return false;
333
457
  if (this.url == null)
334
458
  return false;
335
- const response = await TrustedIntermediaryAPI_1.TrustedIntermediaryAPI.getAddressStatus(this.url, this.paymentHash, this.sequence, this.wrapper.options.getRequestTimeout);
459
+ const response = await TrustedIntermediaryAPI_1.TrustedIntermediaryAPI.getAddressStatus(this.url, this.paymentHash, this.sequence, this.wrapper._options.getRequestTimeout);
336
460
  switch (response.code) {
337
461
  case TrustedIntermediaryAPI_1.AddressStatusResponseCodes.AWAIT_PAYMENT:
338
462
  if (this.txId != null) {
@@ -366,9 +490,9 @@ class OnchainForGasSwap extends ISwap_1.ISwap {
366
490
  }
367
491
  return false;
368
492
  case TrustedIntermediaryAPI_1.AddressStatusResponseCodes.PAID:
369
- const txStatus = await this.wrapper.chain.getTxIdStatus(response.data.txId);
493
+ const txStatus = await this.wrapper._chain.getTxIdStatus(response.data.txId);
370
494
  if (txStatus === "success") {
371
- this.state = OnchainForGasSwapState.FINISHED;
495
+ this._state = OnchainForGasSwapState.FINISHED;
372
496
  this.scTxId = response.data.txId;
373
497
  if (save)
374
498
  await this._saveAndEmit();
@@ -376,30 +500,36 @@ class OnchainForGasSwap extends ISwap_1.ISwap {
376
500
  }
377
501
  return false;
378
502
  case TrustedIntermediaryAPI_1.AddressStatusResponseCodes.EXPIRED:
379
- this.state = OnchainForGasSwapState.EXPIRED;
503
+ this._state = OnchainForGasSwapState.EXPIRED;
380
504
  if (save)
381
505
  await this._saveAndEmit();
382
506
  return true;
383
507
  case TrustedIntermediaryAPI_1.AddressStatusResponseCodes.REFUNDABLE:
384
- if (this.state === OnchainForGasSwapState.REFUNDABLE)
508
+ if (this._state === OnchainForGasSwapState.REFUNDABLE)
385
509
  return null;
386
- this.state = OnchainForGasSwapState.REFUNDABLE;
510
+ this._state = OnchainForGasSwapState.REFUNDABLE;
387
511
  if (save)
388
512
  await this._saveAndEmit();
389
513
  return true;
390
514
  case TrustedIntermediaryAPI_1.AddressStatusResponseCodes.REFUNDED:
391
- this.state = OnchainForGasSwapState.REFUNDED;
515
+ this._state = OnchainForGasSwapState.REFUNDED;
392
516
  this.refundTxId = response.data.txId;
393
517
  if (save)
394
518
  await this._saveAndEmit();
395
519
  return true;
396
520
  default:
397
- this.state = OnchainForGasSwapState.FAILED;
521
+ this._state = OnchainForGasSwapState.FAILED;
398
522
  if (save)
399
523
  await this._saveAndEmit();
400
524
  return true;
401
525
  }
402
526
  }
527
+ /**
528
+ * Sets the bitcoin address used for possible refunds in case something goes wrong with the swap
529
+ *
530
+ * @param refundAddress Bitcoin address to receive the refund to
531
+ * @internal
532
+ */
403
533
  async setRefundAddress(refundAddress) {
404
534
  if (this.refundAddress != null) {
405
535
  if (this.refundAddress !== refundAddress)
@@ -408,31 +538,24 @@ class OnchainForGasSwap extends ISwap_1.ISwap {
408
538
  }
409
539
  if (this.url == null)
410
540
  throw new Error("LP URL not known, cannot set refund address!");
411
- await TrustedIntermediaryAPI_1.TrustedIntermediaryAPI.setRefundAddress(this.url, this.paymentHash, this.sequence, refundAddress, this.wrapper.options.getRequestTimeout);
541
+ await TrustedIntermediaryAPI_1.TrustedIntermediaryAPI.setRefundAddress(this.url, this.paymentHash, this.sequence, refundAddress, this.wrapper._options.getRequestTimeout);
412
542
  this.refundAddress = refundAddress;
413
543
  }
414
544
  /**
415
- * A blocking promise resolving when payment was received by the intermediary and client can continue
416
- * rejecting in case of failure
417
- *
418
- * @param abortSignal Abort signal
419
- * @param checkIntervalSeconds How often to poll the intermediary for answer
420
- * @param updateCallback Callback called when txId is found, and also called with subsequent confirmations
421
- * @throws {PaymentAuthError} If swap expired or failed
422
- * @throws {Error} When in invalid state (not PR_CREATED)
545
+ * @inheritDoc
423
546
  */
424
547
  async waitForBitcoinTransaction(updateCallback, checkIntervalSeconds = 5, abortSignal) {
425
- if (this.state !== OnchainForGasSwapState.PR_CREATED)
548
+ if (this._state !== OnchainForGasSwapState.PR_CREATED)
426
549
  throw new Error("Must be in PR_CREATED state!");
427
550
  if (!this.initiated) {
428
551
  this.initiated = true;
429
552
  await this._saveAndEmit();
430
553
  }
431
554
  while (!abortSignal?.aborted &&
432
- this.state === OnchainForGasSwapState.PR_CREATED) {
555
+ this._state === OnchainForGasSwapState.PR_CREATED) {
433
556
  await this.checkAddress(true);
434
557
  if (this.txId != null && updateCallback != null) {
435
- const res = await this.wrapper.btcRpc.getTransaction(this.txId);
558
+ const res = await this.wrapper._btcRpc.getTransaction(this.txId);
436
559
  if (res == null) {
437
560
  updateCallback();
438
561
  }
@@ -440,39 +563,53 @@ class OnchainForGasSwap extends ISwap_1.ISwap {
440
563
  updateCallback(res.txid, res.confirmations, 1, 0);
441
564
  }
442
565
  else {
443
- const delay = await this.wrapper.btcRpc.getConfirmationDelay(res, 1);
566
+ const delay = await this.wrapper._btcRpc.getConfirmationDelay(res, 1);
444
567
  updateCallback(res.txid, 0, 1, delay ?? undefined);
445
568
  }
446
569
  }
447
- if (this.state === OnchainForGasSwapState.PR_CREATED)
570
+ if (this._state === OnchainForGasSwapState.PR_CREATED)
448
571
  await (0, TimeoutUtils_1.timeoutPromise)(checkIntervalSeconds * 1000, abortSignal);
449
572
  }
450
- if (this.state === OnchainForGasSwapState.REFUNDABLE ||
451
- this.state === OnchainForGasSwapState.REFUNDED)
573
+ if (this._state === OnchainForGasSwapState.REFUNDABLE ||
574
+ this._state === OnchainForGasSwapState.REFUNDED)
452
575
  return this.txId;
453
576
  if (this.isQuoteExpired())
454
- throw new PaymentAuthError_1.PaymentAuthError("Swap expired");
577
+ throw new Error("Swap expired");
455
578
  if (this.isFailed())
456
- throw new PaymentAuthError_1.PaymentAuthError("Swap failed");
579
+ throw new Error("Swap failed");
457
580
  return this.txId;
458
581
  }
582
+ /**
583
+ * Waits till the LP processes a refund for a failed swap. The swap must be in
584
+ * {@link OnchainForGasSwapState.REFUNDABLE} state
585
+ *
586
+ * @param checkIntervalSeconds How often to check (default 5 seconds)
587
+ * @param abortSignal Abort signal
588
+ */
459
589
  async waitTillRefunded(checkIntervalSeconds, abortSignal) {
460
590
  checkIntervalSeconds ??= 5;
461
- if (this.state === OnchainForGasSwapState.REFUNDED)
591
+ if (this._state === OnchainForGasSwapState.REFUNDED)
462
592
  return;
463
- if (this.state !== OnchainForGasSwapState.REFUNDABLE)
593
+ if (this._state !== OnchainForGasSwapState.REFUNDABLE)
464
594
  throw new Error("Must be in REFUNDABLE state!");
465
595
  while (!abortSignal?.aborted &&
466
- this.state === OnchainForGasSwapState.REFUNDABLE) {
596
+ this._state === OnchainForGasSwapState.REFUNDABLE) {
467
597
  await this.checkAddress(true);
468
- if (this.state === OnchainForGasSwapState.REFUNDABLE)
598
+ if (this._state === OnchainForGasSwapState.REFUNDABLE)
469
599
  await (0, TimeoutUtils_1.timeoutPromise)(checkIntervalSeconds * 1000, abortSignal);
470
600
  }
471
601
  if (this.isQuoteExpired())
472
- throw new PaymentAuthError_1.PaymentAuthError("Swap expired");
602
+ throw new Error("Swap expired");
473
603
  if (this.isFailed())
474
- throw new PaymentAuthError_1.PaymentAuthError("Swap failed");
604
+ throw new Error("Swap failed");
475
605
  }
606
+ /**
607
+ * Requests a refund after the swap failed, this also waits till the refund is actually sent by the
608
+ * intermediary (LP). The swap must be in {@link OnchainForGasSwapState.REFUNDABLE} state
609
+ *
610
+ * @param refundAddress Bitcoin address to receive the refund to
611
+ * @param abortSignal Abort signal
612
+ */
476
613
  async requestRefund(refundAddress, abortSignal) {
477
614
  if (refundAddress != null)
478
615
  await this.setRefundAddress(refundAddress);
@@ -480,6 +617,9 @@ class OnchainForGasSwap extends ISwap_1.ISwap {
480
617
  }
481
618
  //////////////////////////////
482
619
  //// Storage
620
+ /**
621
+ * @inheritDoc
622
+ */
483
623
  serialize() {
484
624
  return {
485
625
  ...super.serialize(),
@@ -496,13 +636,21 @@ class OnchainForGasSwap extends ISwap_1.ISwap {
496
636
  refundTxId: this.refundTxId,
497
637
  };
498
638
  }
639
+ /**
640
+ * @inheritDoc
641
+ * @internal
642
+ */
499
643
  _getInitiator() {
500
644
  return this.recipient;
501
645
  }
502
646
  //////////////////////////////
503
647
  //// Swap ticks & sync
648
+ /**
649
+ * @inheritDoc
650
+ * @internal
651
+ */
504
652
  async _sync(save) {
505
- if (this.state === OnchainForGasSwapState.PR_CREATED) {
653
+ if (this._state === OnchainForGasSwapState.PR_CREATED) {
506
654
  //Check if it's maybe already paid
507
655
  const result = await this.checkAddress(false);
508
656
  if (result) {
@@ -513,6 +661,10 @@ class OnchainForGasSwap extends ISwap_1.ISwap {
513
661
  }
514
662
  return false;
515
663
  }
664
+ /**
665
+ * @inheritDoc
666
+ * @internal
667
+ */
516
668
  _tick(save) {
517
669
  return Promise.resolve(false);
518
670
  }