@atomiqlabs/sdk 8.1.8 → 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 +302 -221
  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 +512 -378
  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
@@ -8,6 +8,7 @@ import { Buffer } from "buffer";
8
8
  import { BitcoinRpcWithAddressIndex } from "@atomiqlabs/base";
9
9
  /**
10
10
  * UTXO data structure for Bitcoin wallets
11
+ *
11
12
  * @category Bitcoin
12
13
  */
13
14
  export type BitcoinWalletUtxo = {
@@ -25,26 +26,61 @@ export type BitcoinWalletUtxo = {
25
26
  };
26
27
  /**
27
28
  * Identifies the address type of a Bitcoin address
29
+ *
28
30
  * @category Bitcoin
29
31
  */
30
32
  export declare function identifyAddressType(address: string, network: BTC_NETWORK): CoinselectAddressTypes;
31
33
  /**
32
- * Abstract base class for Bitcoin wallet implementations
34
+ * Abstract base class for Bitcoin wallet implementations, using bitcoin rpc with address index
35
+ * as a backend for fetching balances, UTXOs, etc.
36
+ *
33
37
  * @category Bitcoin
34
38
  */
35
39
  export declare abstract class BitcoinWallet implements IBitcoinWallet {
36
- rpc: BitcoinRpcWithAddressIndex<any>;
37
- network: BTC_NETWORK;
38
- feeMultiplier: number;
39
- feeOverride?: number;
40
+ protected readonly rpc: BitcoinRpcWithAddressIndex<any>;
41
+ protected readonly network: BTC_NETWORK;
42
+ protected feeMultiplier: number;
43
+ protected feeOverride?: number;
40
44
  constructor(mempoolApi: BitcoinRpcWithAddressIndex<any>, network: BTC_NETWORK, feeMultiplier?: number, feeOverride?: number);
45
+ /**
46
+ * @inheritDoc
47
+ */
41
48
  getFeeRate(): Promise<number>;
49
+ /**
50
+ * Internal helper function for sending a raw transaction through the underlying RPC
51
+ *
52
+ * @param rawHex Serialized bitcoin transaction in hexadecimal format
53
+ * @returns txId Transaction ID of the submitted bitcoin transaction
54
+ *
55
+ * @protected
56
+ */
42
57
  protected _sendTransaction(rawHex: string): Promise<string>;
58
+ /**
59
+ * Internal helper function for fetching the balance of the wallet given a specific bitcoin wallet address
60
+ *
61
+ * @param address
62
+ * @protected
63
+ */
43
64
  protected _getBalance(address: string): Promise<{
44
65
  confirmedBalance: bigint;
45
66
  unconfirmedBalance: bigint;
46
67
  }>;
68
+ /**
69
+ * Internal helper function for fetching the UTXO set of a given wallet address
70
+ *
71
+ * @param sendingAddress
72
+ * @param sendingAddressType
73
+ * @protected
74
+ */
47
75
  protected _getUtxoPool(sendingAddress: string, sendingAddressType: CoinselectAddressTypes): Promise<BitcoinWalletUtxo[]>;
76
+ /**
77
+ *
78
+ * @param sendingAccounts
79
+ * @param recipient
80
+ * @param amount
81
+ * @param feeRate
82
+ * @protected
83
+ */
48
84
  protected _getPsbt(sendingAccounts: {
49
85
  pubkey: string;
50
86
  address: string;
@@ -9,6 +9,7 @@ const BitcoinUtils_1 = require("../../utils/BitcoinUtils");
9
9
  const Logger_1 = require("../../utils/Logger");
10
10
  /**
11
11
  * Identifies the address type of a Bitcoin address
12
+ *
12
13
  * @category Bitcoin
13
14
  */
14
15
  function identifyAddressType(address, network) {
@@ -30,7 +31,9 @@ function identifyAddressType(address, network) {
30
31
  exports.identifyAddressType = identifyAddressType;
31
32
  const logger = (0, Logger_1.getLogger)("BitcoinWallet: ");
32
33
  /**
33
- * Abstract base class for Bitcoin wallet implementations
34
+ * Abstract base class for Bitcoin wallet implementations, using bitcoin rpc with address index
35
+ * as a backend for fetching balances, UTXOs, etc.
36
+ *
34
37
  * @category Bitcoin
35
38
  */
36
39
  class BitcoinWallet {
@@ -40,18 +43,42 @@ class BitcoinWallet {
40
43
  this.feeMultiplier = feeMultiplier;
41
44
  this.feeOverride = feeOverride;
42
45
  }
46
+ /**
47
+ * @inheritDoc
48
+ */
43
49
  async getFeeRate() {
44
50
  if (this.feeOverride != null) {
45
51
  return this.feeOverride;
46
52
  }
47
53
  return Math.floor((await this.rpc.getFeeRate()) * this.feeMultiplier);
48
54
  }
55
+ /**
56
+ * Internal helper function for sending a raw transaction through the underlying RPC
57
+ *
58
+ * @param rawHex Serialized bitcoin transaction in hexadecimal format
59
+ * @returns txId Transaction ID of the submitted bitcoin transaction
60
+ *
61
+ * @protected
62
+ */
49
63
  _sendTransaction(rawHex) {
50
64
  return this.rpc.sendRawTransaction(rawHex);
51
65
  }
66
+ /**
67
+ * Internal helper function for fetching the balance of the wallet given a specific bitcoin wallet address
68
+ *
69
+ * @param address
70
+ * @protected
71
+ */
52
72
  _getBalance(address) {
53
73
  return this.rpc.getAddressBalances(address);
54
74
  }
75
+ /**
76
+ * Internal helper function for fetching the UTXO set of a given wallet address
77
+ *
78
+ * @param sendingAddress
79
+ * @param sendingAddressType
80
+ * @protected
81
+ */
55
82
  async _getUtxoPool(sendingAddress, sendingAddressType) {
56
83
  const utxos = await this.rpc.getAddressUTXOs(sendingAddress);
57
84
  let totalSpendable = 0;
@@ -81,6 +108,14 @@ class BitcoinWallet {
81
108
  logger.debug("_getUtxoPool(): Total spendable value: " + totalSpendable + " num utxos: " + utxoPool.length);
82
109
  return utxoPool;
83
110
  }
111
+ /**
112
+ *
113
+ * @param sendingAccounts
114
+ * @param recipient
115
+ * @param amount
116
+ * @param feeRate
117
+ * @protected
118
+ */
84
119
  async _getPsbt(sendingAccounts, recipient, amount, feeRate) {
85
120
  const psbt = new btc_signer_1.Transaction({ PSBTVersion: 0 });
86
121
  psbt.addOutput({
@@ -1,25 +1,75 @@
1
1
  import { Transaction } from "@scure/btc-signer";
2
2
  /**
3
- * Type guard to check if an object implements IBitcoinWallet
3
+ * Type guard to check if an object implements {@link IBitcoinWallet}
4
+ *
4
5
  * @category Bitcoin
5
6
  */
6
7
  export declare function isIBitcoinWallet(val: any): val is IBitcoinWallet;
7
8
  /**
8
- * Interface for Bitcoin wallet operations
9
+ * Interface to be implemented by Bitcoin wallets
10
+ *
9
11
  * @category Bitcoin
10
12
  */
11
13
  export interface IBitcoinWallet {
14
+ /**
15
+ * Signs and broadcasts a transaction sending `amount` of sats to `address`, optionally with the
16
+ * `feeRate` sats/vB fee rate.
17
+ *
18
+ * @param address Destination address of the transaction
19
+ * @param amount Amount of satoshis to send (1 BTC = 100,000,000 sats)
20
+ * @param feeRate Optional fee rate in sats/vB to use for the transaction
21
+ */
12
22
  sendTransaction(address: string, amount: bigint, feeRate?: number): Promise<string>;
23
+ /**
24
+ * Funds (populates the inputs) for a given PSBT from wallet's UTXO set
25
+ *
26
+ * @param psbt PSBT to add the inputs to
27
+ * @param feeRate Optional fee rate in sats/vB to use for the transaction
28
+ */
13
29
  fundPsbt(psbt: Transaction, feeRate?: number): Promise<Transaction>;
30
+ /**
31
+ * Signs inputs in the provided PSBT
32
+ *
33
+ * @param psbt A PSBT to sign
34
+ * @param signInputs Indices of the inputs to sign
35
+ */
14
36
  signPsbt(psbt: Transaction, signInputs: number[]): Promise<Transaction>;
37
+ /**
38
+ * Returns the current fee rate in sats/vB
39
+ */
15
40
  getFeeRate(): Promise<number>;
41
+ /**
42
+ * Estimates a total fee in satoshis for a given transaction
43
+ *
44
+ * @param address Destination address of the transaction
45
+ * @param amount Amount of satoshis to send (1 BTC = 100,000,000 sats)
46
+ * @param feeRate Optional fee rate in sats/vB to use for the transaction
47
+ */
16
48
  getTransactionFee(address: string, amount: bigint, feeRate?: number): Promise<number>;
49
+ /**
50
+ * Estimates a total fee in satoshis for a given transaction as identified by the PSBT
51
+ *
52
+ * @param psbt A PSBT to which additional inputs from wallet's UTXO set will be added and fee estimated
53
+ * @param feeRate Optional fee rate in sats/vB to use for the transaction
54
+ */
17
55
  getFundedPsbtFee(psbt: Transaction, feeRate?: number): Promise<number>;
56
+ /**
57
+ * Returns the bitcoin address suitable for receiving funds
58
+ */
18
59
  getReceiveAddress(): string;
60
+ /**
61
+ * Returns confirmed and unconfirmed balance in satoshis of the wallet
62
+ */
19
63
  getBalance(): Promise<{
20
64
  confirmedBalance: bigint;
21
65
  unconfirmedBalance: bigint;
22
66
  }>;
67
+ /**
68
+ * Returns the maximum spendable balance in satoshis given a specific PSBT that should be funded
69
+ *
70
+ * @param psbt A PSBT to which additional inputs from wallet's UTXO set will be added and fee estimated
71
+ * @param feeRate Optional fee rate in sats/vB to use for the transaction
72
+ */
23
73
  getSpendableBalance(psbt?: Transaction, feeRate?: number): Promise<{
24
74
  balance: bigint;
25
75
  feeRate: number;
@@ -2,7 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isIBitcoinWallet = void 0;
4
4
  /**
5
- * Type guard to check if an object implements IBitcoinWallet
5
+ * Type guard to check if an object implements {@link IBitcoinWallet}
6
+ *
6
7
  * @category Bitcoin
7
8
  */
8
9
  function isIBitcoinWallet(val) {
@@ -4,37 +4,72 @@ import { Transaction } from "@scure/btc-signer";
4
4
  import { BitcoinWallet } from "./BitcoinWallet";
5
5
  import { BitcoinRpcWithAddressIndex } from "@atomiqlabs/base";
6
6
  /**
7
- * Bitcoin wallet implementation for single-address scenarios
7
+ * Bitcoin wallet implementation deriving a single address from a WIF encoded private key
8
+ *
8
9
  * @category Bitcoin
9
10
  */
10
11
  export declare class SingleAddressBitcoinWallet extends BitcoinWallet {
11
- readonly privKey?: Uint8Array;
12
- readonly pubkey: Uint8Array;
13
- readonly address: string;
14
- readonly addressType: CoinselectAddressTypes;
12
+ protected readonly privKey?: Uint8Array;
13
+ protected readonly pubkey: Uint8Array;
14
+ protected readonly address: string;
15
+ protected readonly addressType: CoinselectAddressTypes;
15
16
  constructor(mempoolApi: BitcoinRpcWithAddressIndex<any>, network: BTC_NETWORK, addressDataOrWIF: string | {
16
17
  address: string;
17
18
  publicKey: string;
18
19
  }, feeMultiplier?: number, feeOverride?: number);
19
- protected toBitcoinWalletAccounts(): {
20
+ /**
21
+ * Returns all the wallet addresses controlled by the wallet
22
+ *
23
+ * @protected
24
+ */
25
+ protected toBitcoinWalletAccounts(): [{
20
26
  pubkey: string;
21
27
  address: string;
22
28
  addressType: CoinselectAddressTypes;
23
- }[];
29
+ }];
30
+ /**
31
+ * @inheritDoc
32
+ */
24
33
  sendTransaction(address: string, amount: bigint, feeRate?: number): Promise<string>;
34
+ /**
35
+ * @inheritDoc
36
+ */
25
37
  fundPsbt(inputPsbt: Transaction, feeRate?: number): Promise<Transaction>;
38
+ /**
39
+ * @inheritDoc
40
+ */
26
41
  signPsbt(psbt: Transaction, signInputs: number[]): Promise<Transaction>;
42
+ /**
43
+ * @inheritDoc
44
+ */
27
45
  getTransactionFee(address: string, amount: bigint, feeRate?: number): Promise<number>;
46
+ /**
47
+ * @inheritDoc
48
+ */
28
49
  getFundedPsbtFee(basePsbt: Transaction, feeRate?: number): Promise<number>;
50
+ /**
51
+ * @inheritDoc
52
+ */
29
53
  getReceiveAddress(): string;
54
+ /**
55
+ * @inheritDoc
56
+ */
30
57
  getBalance(): Promise<{
31
58
  confirmedBalance: bigint;
32
59
  unconfirmedBalance: bigint;
33
60
  }>;
61
+ /**
62
+ * @inheritDoc
63
+ */
34
64
  getSpendableBalance(psbt?: Transaction, feeRate?: number): Promise<{
35
65
  balance: bigint;
36
66
  feeRate: number;
37
67
  totalFee: number;
38
68
  }>;
69
+ /**
70
+ * Generates a new random private key WIF that can be used to instantiate the bitcoin wallet instance
71
+ *
72
+ * @returns A WIF encoded bitcoin private key
73
+ */
39
74
  static generateRandomPrivateKey(network?: BTC_NETWORK): string;
40
75
  }
@@ -6,7 +6,8 @@ const btc_signer_1 = require("@scure/btc-signer");
6
6
  const buffer_1 = require("buffer");
7
7
  const BitcoinWallet_1 = require("./BitcoinWallet");
8
8
  /**
9
- * Bitcoin wallet implementation for single-address scenarios
9
+ * Bitcoin wallet implementation deriving a single address from a WIF encoded private key
10
+ *
10
11
  * @category Bitcoin
11
12
  */
12
13
  class SingleAddressBitcoinWallet extends BitcoinWallet_1.BitcoinWallet {
@@ -31,11 +32,19 @@ class SingleAddressBitcoinWallet extends BitcoinWallet_1.BitcoinWallet {
31
32
  }
32
33
  this.addressType = (0, BitcoinWallet_1.identifyAddressType)(this.address, network);
33
34
  }
35
+ /**
36
+ * Returns all the wallet addresses controlled by the wallet
37
+ *
38
+ * @protected
39
+ */
34
40
  toBitcoinWalletAccounts() {
35
41
  return [{
36
42
  pubkey: buffer_1.Buffer.from(this.pubkey).toString("hex"), address: this.address, addressType: this.addressType
37
43
  }];
38
44
  }
45
+ /**
46
+ * @inheritDoc
47
+ */
39
48
  async sendTransaction(address, amount, feeRate) {
40
49
  if (!this.privKey)
41
50
  throw new Error("Not supported.");
@@ -47,6 +56,9 @@ class SingleAddressBitcoinWallet extends BitcoinWallet_1.BitcoinWallet {
47
56
  const txHex = buffer_1.Buffer.from(psbt.extract()).toString("hex");
48
57
  return await super._sendTransaction(txHex);
49
58
  }
59
+ /**
60
+ * @inheritDoc
61
+ */
50
62
  async fundPsbt(inputPsbt, feeRate) {
51
63
  const { psbt } = await super._fundPsbt(this.toBitcoinWalletAccounts(), inputPsbt, feeRate);
52
64
  if (psbt == null) {
@@ -54,6 +66,9 @@ class SingleAddressBitcoinWallet extends BitcoinWallet_1.BitcoinWallet {
54
66
  }
55
67
  return psbt;
56
68
  }
69
+ /**
70
+ * @inheritDoc
71
+ */
57
72
  async signPsbt(psbt, signInputs) {
58
73
  if (!this.privKey)
59
74
  throw new Error("Not supported.");
@@ -62,23 +77,43 @@ class SingleAddressBitcoinWallet extends BitcoinWallet_1.BitcoinWallet {
62
77
  }
63
78
  return psbt;
64
79
  }
80
+ /**
81
+ * @inheritDoc
82
+ */
65
83
  async getTransactionFee(address, amount, feeRate) {
66
84
  const { fee } = await super._getPsbt(this.toBitcoinWalletAccounts(), address, Number(amount), feeRate);
67
85
  return fee;
68
86
  }
87
+ /**
88
+ * @inheritDoc
89
+ */
69
90
  async getFundedPsbtFee(basePsbt, feeRate) {
70
91
  const { fee } = await super._fundPsbt(this.toBitcoinWalletAccounts(), basePsbt, feeRate);
71
92
  return fee;
72
93
  }
94
+ /**
95
+ * @inheritDoc
96
+ */
73
97
  getReceiveAddress() {
74
98
  return this.address;
75
99
  }
100
+ /**
101
+ * @inheritDoc
102
+ */
76
103
  getBalance() {
77
104
  return this._getBalance(this.address);
78
105
  }
106
+ /**
107
+ * @inheritDoc
108
+ */
79
109
  getSpendableBalance(psbt, feeRate) {
80
110
  return this._getSpendableBalance([{ address: this.address, addressType: this.addressType }], psbt, feeRate);
81
111
  }
112
+ /**
113
+ * Generates a new random private key WIF that can be used to instantiate the bitcoin wallet instance
114
+ *
115
+ * @returns A WIF encoded bitcoin private key
116
+ */
82
117
  static generateRandomPrivateKey(network) {
83
118
  return (0, btc_signer_1.WIF)(network).encode((0, utils_1.randomPrivateKeyBytes)());
84
119
  }
@@ -1,8 +1,15 @@
1
1
  /**
2
2
  * Enum representing types of fees in a swap
3
+ *
3
4
  * @category Pricing and LPs
4
5
  */
5
6
  export declare enum FeeType {
7
+ /**
8
+ * Swap fee taken by the LP
9
+ */
6
10
  SWAP = 0,
11
+ /**
12
+ * Network fee to cover the transactions on the destination (output) network
13
+ */
7
14
  NETWORK_OUTPUT = 1
8
15
  }
@@ -3,10 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FeeType = void 0;
4
4
  /**
5
5
  * Enum representing types of fees in a swap
6
+ *
6
7
  * @category Pricing and LPs
7
8
  */
8
9
  var FeeType;
9
10
  (function (FeeType) {
11
+ /**
12
+ * Swap fee taken by the LP
13
+ */
10
14
  FeeType[FeeType["SWAP"] = 0] = "SWAP";
15
+ /**
16
+ * Network fee to cover the transactions on the destination (output) network
17
+ */
11
18
  FeeType[FeeType["NETWORK_OUTPUT"] = 1] = "NETWORK_OUTPUT";
12
19
  })(FeeType = exports.FeeType || (exports.FeeType = {}));
@@ -1,8 +1,15 @@
1
1
  /**
2
2
  * Enum representing whether the swap amount is exact input or exact output
3
+ *
3
4
  * @category Core
4
5
  */
5
6
  export declare enum SwapAmountType {
7
+ /**
8
+ * Swap amount specified in the input token
9
+ */
6
10
  EXACT_IN = 1,
11
+ /**
12
+ * Swap amount specified in the output token
13
+ */
7
14
  EXACT_OUT = 0
8
15
  }
@@ -3,10 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SwapAmountType = void 0;
4
4
  /**
5
5
  * Enum representing whether the swap amount is exact input or exact output
6
+ *
6
7
  * @category Core
7
8
  */
8
9
  var SwapAmountType;
9
10
  (function (SwapAmountType) {
11
+ /**
12
+ * Swap amount specified in the input token
13
+ */
10
14
  SwapAmountType[SwapAmountType["EXACT_IN"] = 1] = "EXACT_IN";
15
+ /**
16
+ * Swap amount specified in the output token
17
+ */
11
18
  SwapAmountType[SwapAmountType["EXACT_OUT"] = 0] = "EXACT_OUT";
12
19
  })(SwapAmountType = exports.SwapAmountType || (exports.SwapAmountType = {}));
@@ -1,8 +1,15 @@
1
1
  /**
2
2
  * Enum representing the direction of a swap (from or to Bitcoin)
3
+ *
3
4
  * @category Core
4
5
  */
5
6
  export declare enum SwapDirection {
7
+ /**
8
+ * Swaps from bitcoin to smart chains (Solana, Starknet, EVM, etc.)
9
+ */
6
10
  FROM_BTC = 0,
11
+ /**
12
+ * Swaps from smart chains (Solana, Starknet, EVM, etc.) to bitcoin
13
+ */
7
14
  TO_BTC = 1
8
15
  }
@@ -3,10 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SwapDirection = void 0;
4
4
  /**
5
5
  * Enum representing the direction of a swap (from or to Bitcoin)
6
+ *
6
7
  * @category Core
7
8
  */
8
9
  var SwapDirection;
9
10
  (function (SwapDirection) {
11
+ /**
12
+ * Swaps from bitcoin to smart chains (Solana, Starknet, EVM, etc.)
13
+ */
10
14
  SwapDirection[SwapDirection["FROM_BTC"] = 0] = "FROM_BTC";
15
+ /**
16
+ * Swaps from smart chains (Solana, Starknet, EVM, etc.) to bitcoin
17
+ */
11
18
  SwapDirection[SwapDirection["TO_BTC"] = 1] = "TO_BTC";
12
19
  })(SwapDirection = exports.SwapDirection || (exports.SwapDirection = {}));
@@ -1,14 +1,75 @@
1
1
  /**
2
- * Enum representing different types of swaps
2
+ * Enum representing different types of swap protocols used by atomiq.
3
+ *
3
4
  * @category Core
4
5
  */
5
6
  export declare enum SwapType {
7
+ /**
8
+ * Legacy escrow (PrTLC) based swap for Bitcoin -> Smart chains, requires manual initiation of the swap
9
+ * on the destination chain.
10
+ *
11
+ * Handled by {@link FromBTCWrapper} & {@link FromBTCSwap}.
12
+ *
13
+ * Legacy swaps are only used on Solana!
14
+ */
6
15
  FROM_BTC = 0,
16
+ /**
17
+ * Legacy escrow (HTLC) based swap for Bitcoin Lightning -> Smart chains, requires manual settlement of the swap on the
18
+ * destination network once the lightning network payment is received by the LP
19
+ *
20
+ * Handled by {@link FromBTCLNWrapper} & {@link FromBTCLNSwap}.
21
+ *
22
+ * Legacy swaps are only used on Solana!
23
+ */
7
24
  FROM_BTCLN = 1,
25
+ /**
26
+ * Escrow based (PrTLC) swap for Smart chains -> Bitcoin
27
+ *
28
+ * Handled by {@link ToBTCWrapper} & {@link ToBTCSwap}.
29
+ */
8
30
  TO_BTC = 2,
31
+ /**
32
+ * Escrow based (HTLC) swap for Smart chains -> Bitcoin Lightning
33
+ *
34
+ * Handled by {@link ToBTCLNWrapper} & {@link ToBTCLNSwap}.
35
+ */
9
36
  TO_BTCLN = 3,
37
+ /**
38
+ * Trusted swap for Bitcoin -> Smart chains, to be used for minor amounts to get gas tokens on the destination
39
+ * chain, which is only needed for Solana, which still uses legacy swaps and doesn't support newer
40
+ * {@link SPV_VAULT_FROM_BTC} & {@link FROM_BTCLN_AUTO} swaps.
41
+ *
42
+ * Handled by {@link OnchainForGasWrapper} & {@link OnchainForGasSwap}.
43
+ */
10
44
  TRUSTED_FROM_BTC = 4,
45
+ /**
46
+ * Trusted swap for Bitcoin Lightning -> Smart chains, to be used for minor amounts to get gas tokens on the
47
+ * destination chain, which is only needed for Solana, which still uses legacy swaps and doesn't support newer
48
+ * {@link SPV_VAULT_FROM_BTC} & {@link FROM_BTCLN_AUTO} swaps.
49
+ *
50
+ * Handled by {@link LnForGasWrapper} & {@link LnForGasSwap}.
51
+ */
11
52
  TRUSTED_FROM_BTCLN = 5,
53
+ /**
54
+ * New spv vault (UTXO-controlled vault) based swaps for Bitcoin -> Smart chain swaps not requiring any
55
+ * initiation on the destination chain, and with the added possibility for the user to receive a
56
+ * native token on the destination chain as part of the swap (a "gas drop" feature).
57
+ *
58
+ * Handled by {@link SpvFromBTCWrapper} & {@link SpvFromBTCSwap}.
59
+ *
60
+ * Used on all the supported chains except Solana!
61
+ */
12
62
  SPV_VAULT_FROM_BTC = 6,
63
+ /**
64
+ * New escrow based (HTLC) swaps for Bitcoin Lightning -> Smart chain swaps not requiring manual
65
+ * settlement on the destination by the user, and instead letting the LP initiate the escrow,
66
+ * with the permissionless watchtower network managing the claiming of HTLC, with the swap secret
67
+ * broadcasted over Nostr. Also adds a possibility for the user to receive a native token on the
68
+ * destination chain as part of the swap (a "gas drop" feature).
69
+ *
70
+ * Handled by {@link FromBTCLNAutoWrapper} & {@link FromBTCLNAutoSwap}.
71
+ *
72
+ * Used on all the supported chains except Solana!
73
+ */
13
74
  FROM_BTCLN_AUTO = 7
14
75
  }
@@ -2,17 +2,78 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SwapType = void 0;
4
4
  /**
5
- * Enum representing different types of swaps
5
+ * Enum representing different types of swap protocols used by atomiq.
6
+ *
6
7
  * @category Core
7
8
  */
8
9
  var SwapType;
9
10
  (function (SwapType) {
11
+ /**
12
+ * Legacy escrow (PrTLC) based swap for Bitcoin -> Smart chains, requires manual initiation of the swap
13
+ * on the destination chain.
14
+ *
15
+ * Handled by {@link FromBTCWrapper} & {@link FromBTCSwap}.
16
+ *
17
+ * Legacy swaps are only used on Solana!
18
+ */
10
19
  SwapType[SwapType["FROM_BTC"] = 0] = "FROM_BTC";
20
+ /**
21
+ * Legacy escrow (HTLC) based swap for Bitcoin Lightning -> Smart chains, requires manual settlement of the swap on the
22
+ * destination network once the lightning network payment is received by the LP
23
+ *
24
+ * Handled by {@link FromBTCLNWrapper} & {@link FromBTCLNSwap}.
25
+ *
26
+ * Legacy swaps are only used on Solana!
27
+ */
11
28
  SwapType[SwapType["FROM_BTCLN"] = 1] = "FROM_BTCLN";
29
+ /**
30
+ * Escrow based (PrTLC) swap for Smart chains -> Bitcoin
31
+ *
32
+ * Handled by {@link ToBTCWrapper} & {@link ToBTCSwap}.
33
+ */
12
34
  SwapType[SwapType["TO_BTC"] = 2] = "TO_BTC";
35
+ /**
36
+ * Escrow based (HTLC) swap for Smart chains -> Bitcoin Lightning
37
+ *
38
+ * Handled by {@link ToBTCLNWrapper} & {@link ToBTCLNSwap}.
39
+ */
13
40
  SwapType[SwapType["TO_BTCLN"] = 3] = "TO_BTCLN";
41
+ /**
42
+ * Trusted swap for Bitcoin -> Smart chains, to be used for minor amounts to get gas tokens on the destination
43
+ * chain, which is only needed for Solana, which still uses legacy swaps and doesn't support newer
44
+ * {@link SPV_VAULT_FROM_BTC} & {@link FROM_BTCLN_AUTO} swaps.
45
+ *
46
+ * Handled by {@link OnchainForGasWrapper} & {@link OnchainForGasSwap}.
47
+ */
14
48
  SwapType[SwapType["TRUSTED_FROM_BTC"] = 4] = "TRUSTED_FROM_BTC";
49
+ /**
50
+ * Trusted swap for Bitcoin Lightning -> Smart chains, to be used for minor amounts to get gas tokens on the
51
+ * destination chain, which is only needed for Solana, which still uses legacy swaps and doesn't support newer
52
+ * {@link SPV_VAULT_FROM_BTC} & {@link FROM_BTCLN_AUTO} swaps.
53
+ *
54
+ * Handled by {@link LnForGasWrapper} & {@link LnForGasSwap}.
55
+ */
15
56
  SwapType[SwapType["TRUSTED_FROM_BTCLN"] = 5] = "TRUSTED_FROM_BTCLN";
57
+ /**
58
+ * New spv vault (UTXO-controlled vault) based swaps for Bitcoin -> Smart chain swaps not requiring any
59
+ * initiation on the destination chain, and with the added possibility for the user to receive a
60
+ * native token on the destination chain as part of the swap (a "gas drop" feature).
61
+ *
62
+ * Handled by {@link SpvFromBTCWrapper} & {@link SpvFromBTCSwap}.
63
+ *
64
+ * Used on all the supported chains except Solana!
65
+ */
16
66
  SwapType[SwapType["SPV_VAULT_FROM_BTC"] = 6] = "SPV_VAULT_FROM_BTC";
67
+ /**
68
+ * New escrow based (HTLC) swaps for Bitcoin Lightning -> Smart chain swaps not requiring manual
69
+ * settlement on the destination by the user, and instead letting the LP initiate the escrow,
70
+ * with the permissionless watchtower network managing the claiming of HTLC, with the swap secret
71
+ * broadcasted over Nostr. Also adds a possibility for the user to receive a native token on the
72
+ * destination chain as part of the swap (a "gas drop" feature).
73
+ *
74
+ * Handled by {@link FromBTCLNAutoWrapper} & {@link FromBTCLNAutoSwap}.
75
+ *
76
+ * Used on all the supported chains except Solana!
77
+ */
17
78
  SwapType[SwapType["FROM_BTCLN_AUTO"] = 7] = "FROM_BTCLN_AUTO";
18
79
  })(SwapType = exports.SwapType || (exports.SwapType = {}));