@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
@@ -18,7 +18,7 @@ import { LNURLWithdraw } from "../../../../types/lnurl/LNURLWithdraw";
18
18
  import { PriceInfoType } from "../../../../types/PriceInfoType";
19
19
  /**
20
20
  * State enum for FromBTCLNAuto swaps
21
- * @category Swaps
21
+ * @category Swaps/Lightning → Smart chain
22
22
  */
23
23
  export declare enum FromBTCLNAutoSwapState {
24
24
  FAILED = -4,
@@ -31,11 +31,11 @@ export declare enum FromBTCLNAutoSwapState {
31
31
  CLAIM_CLAIMED = 3
32
32
  }
33
33
  export type FromBTCLNAutoSwapInit<T extends SwapData> = IEscrowSwapInit<T> & {
34
- pr: string;
35
- secret: string;
34
+ pr?: string;
35
+ secret?: string;
36
36
  initialSwapData: T;
37
- btcAmountSwap: bigint;
38
- btcAmountGas: bigint;
37
+ btcAmountSwap?: bigint;
38
+ btcAmountGas?: bigint;
39
39
  gasSwapFeeBtc: bigint;
40
40
  gasSwapFee: bigint;
41
41
  gasPricingInfo?: PriceInfoType;
@@ -44,47 +44,125 @@ export type FromBTCLNAutoSwapInit<T extends SwapData> = IEscrowSwapInit<T> & {
44
44
  lnurlCallback?: string;
45
45
  };
46
46
  export declare function isFromBTCLNAutoSwapInit<T extends SwapData>(obj: any): obj is FromBTCLNAutoSwapInit<T>;
47
+ /**
48
+ * New escrow based (HTLC) swaps for Bitcoin Lightning -> Smart chain swaps not requiring manual settlement on
49
+ * the destination by the user, and instead letting the LP initiate the escrow. Permissionless watchtower network
50
+ * handles the claiming of HTLC, with the swap secret broadcasted over Nostr. Also adds a possibility for the user
51
+ * to receive a native token on the destination chain as part of the swap (a "gas drop" feature).
52
+ *
53
+ * @category Swaps/Lightning → Smart chain
54
+ */
47
55
  export declare class FromBTCLNAutoSwap<T extends ChainType = ChainType> extends IEscrowSwap<T, FromBTCLNAutoDefinition<T>> implements IAddressSwap, ISwapWithGasDrop<T>, IClaimableSwap<T, FromBTCLNAutoDefinition<T>, FromBTCLNAutoSwapState> {
56
+ protected readonly TYPE: SwapType.FROM_BTCLN_AUTO;
57
+ /**
58
+ * @internal
59
+ */
48
60
  protected readonly logger: LoggerType;
61
+ /**
62
+ * @internal
63
+ */
49
64
  protected readonly inputToken: BtcToken<true>;
50
- protected readonly TYPE = SwapType.FROM_BTCLN_AUTO;
51
- protected readonly lnurlFailSignal: AbortController;
52
- protected readonly pr: string;
53
- protected readonly secret: string;
54
- protected initialSwapData: T["Data"];
55
- protected readonly btcAmountSwap: bigint;
56
- protected readonly btcAmountGas: bigint;
57
- protected readonly gasSwapFeeBtc: bigint;
58
- protected readonly gasSwapFee: bigint;
59
- gasPricingInfo?: PriceInfoType;
60
- lnurl?: string;
61
- lnurlK1?: string;
62
- lnurlCallback?: string;
63
- prPosted?: boolean;
64
- protected getSwapData(): T["Data"];
65
+ private readonly lnurlFailSignal;
66
+ private readonly usesClaimHashAsId;
67
+ private readonly initialSwapData;
68
+ private readonly btcAmountSwap?;
69
+ private readonly btcAmountGas?;
70
+ private readonly gasSwapFeeBtc;
71
+ private readonly gasSwapFee;
72
+ private readonly gasPricingInfo?;
73
+ /**
74
+ * In case the swap is recovered from on-chain data, the pr saved here is just a payment hash,
75
+ * as it is impossible to retrieve the actual lightning network invoice paid purely from on-chain
76
+ * data
77
+ * @private
78
+ */
79
+ private pr?;
80
+ private secret?;
81
+ private lnurl?;
82
+ private lnurlK1?;
83
+ private lnurlCallback?;
84
+ private prPosted?;
85
+ private broadcastTickCounter;
86
+ /**
87
+ * Sets the LNURL data for the swap
88
+ *
89
+ * @internal
90
+ */
91
+ _setLNURLData(lnurl: string, lnurlK1: string, lnurlCallback: string): void;
65
92
  constructor(wrapper: FromBTCLNAutoWrapper<T>, init: FromBTCLNAutoSwapInit<T["Data"]>);
66
93
  constructor(wrapper: FromBTCLNAutoWrapper<T>, obj: any);
94
+ /**
95
+ * @inheritDoc
96
+ * @internal
97
+ */
98
+ protected getSwapData(): T["Data"];
99
+ /**
100
+ * @inheritDoc
101
+ * @internal
102
+ */
67
103
  protected upgradeVersion(): void;
68
104
  /**
69
- * In case swapFee in BTC is not supplied it recalculates it based on swap price
70
- * @protected
105
+ * @inheritDoc
106
+ * @internal
71
107
  */
72
108
  protected tryRecomputeSwapPrice(): void;
109
+ /**
110
+ * @inheritDoc
111
+ */
73
112
  refreshPriceData(): Promise<void>;
113
+ /**
114
+ * @inheritDoc
115
+ * @internal
116
+ */
74
117
  _getEscrowHash(): string | null;
118
+ /**
119
+ * @inheritDoc
120
+ * @internal
121
+ */
75
122
  _getInitiator(): string;
123
+ /**
124
+ * @inheritDoc
125
+ */
76
126
  getId(): string;
127
+ /**
128
+ * @inheritDoc
129
+ */
77
130
  getOutputAddress(): string | null;
131
+ /**
132
+ * @inheritDoc
133
+ */
78
134
  getOutputTxId(): string | null;
135
+ /**
136
+ * @inheritDoc
137
+ */
79
138
  requiresAction(): boolean;
139
+ /**
140
+ * @inheritDoc
141
+ * @internal
142
+ */
80
143
  protected getIdentifierHashString(): string;
81
- protected getPaymentHash(): Buffer;
144
+ /**
145
+ * Returns the payment hash of the swap and lightning network invoice, or `null` if not known (i.e. if
146
+ * the swap was recovered from on-chain data, the payment hash might not be known)
147
+ *
148
+ * @internal
149
+ */
150
+ protected getPaymentHash(): Buffer | null;
151
+ /**
152
+ * @inheritDoc
153
+ */
82
154
  getInputAddress(): string | null;
83
- getInputTxId(): string;
155
+ /**
156
+ * @inheritDoc
157
+ */
158
+ getInputTxId(): string | null;
84
159
  /**
85
160
  * Returns the lightning network BOLT11 invoice that needs to be paid as an input to the swap
86
161
  */
87
162
  getAddress(): string;
163
+ /**
164
+ * @inheritDoc
165
+ */
88
166
  getHyperlink(): string;
89
167
  /**
90
168
  * Returns the timeout time (in UNIX milliseconds) when the swap will definitelly be considered as expired
@@ -95,29 +173,123 @@ export declare class FromBTCLNAutoSwap<T extends ChainType = ChainType> extends
95
173
  * Returns timeout time (in UNIX milliseconds) when the swap htlc will expire
96
174
  */
97
175
  getHtlcTimeoutTime(): number | null;
176
+ /**
177
+ * @inheritDoc
178
+ */
98
179
  isFinished(): boolean;
180
+ /**
181
+ * @inheritDoc
182
+ */
99
183
  isClaimable(): boolean;
184
+ /**
185
+ * @inheritDoc
186
+ */
100
187
  isSuccessful(): boolean;
188
+ /**
189
+ * @inheritDoc
190
+ */
101
191
  isFailed(): boolean;
192
+ /**
193
+ * @inheritDoc
194
+ */
102
195
  isQuoteExpired(): boolean;
196
+ /**
197
+ * @inheritDoc
198
+ */
103
199
  isQuoteSoftExpired(): boolean;
200
+ /**
201
+ * @inheritDoc
202
+ */
104
203
  _verifyQuoteDefinitelyExpired(): Promise<boolean>;
105
- verifyQuoteValid(): Promise<boolean>;
106
- protected getLightningInvoiceSats(): bigint;
107
- protected getWatchtowerFeeAmountBtc(): bigint;
108
- protected getInputSwapAmountWithoutFee(): bigint;
109
- protected getInputGasAmountWithoutFee(): bigint;
110
- protected getInputAmountWithoutFee(): bigint;
204
+ /**
205
+ * @inheritDoc
206
+ */
207
+ _verifyQuoteValid(): Promise<boolean>;
208
+ /**
209
+ * Returns the satoshi amount of the lightning network invoice, or `null` if the lightning network
210
+ * invoice is not known (i.e. when the swap was recovered from on-chain data, the paid invoice
211
+ * cannot be recovered because it is purely off-chain)
212
+ *
213
+ * @internal
214
+ */
215
+ protected getLightningInvoiceSats(): bigint | null;
216
+ /**
217
+ * Returns the watchtower fee paid in BTC satoshis, or null if known (i.e. if the swap was recovered from
218
+ * on-chain data)
219
+ *
220
+ * @protected
221
+ */
222
+ protected getWatchtowerFeeAmountBtc(): bigint | null;
223
+ /**
224
+ * Returns the input amount for the actual swap (excluding the input amount used to cover the "gas drop"
225
+ * part of the swap), excluding fees
226
+ *
227
+ * @internal
228
+ */
229
+ protected getInputSwapAmountWithoutFee(): bigint | null;
230
+ /**
231
+ * Returns the input amount purely for the "gas drop" part of the swap (this much BTC in sats will be
232
+ * swapped into the native gas token on the destination chain), excluding fees
233
+ *
234
+ * @internal
235
+ */
236
+ protected getInputGasAmountWithoutFee(): bigint | null;
237
+ /**
238
+ * Get total btc amount in sats on the input, excluding the swap fee and watchtower fee
239
+ *
240
+ * @internal
241
+ */
242
+ protected getInputAmountWithoutFee(): bigint | null;
243
+ /**
244
+ * Returns the "would be" output amount if the swap charged no swap fee
245
+ *
246
+ * @internal
247
+ */
111
248
  protected getOutputAmountWithoutFee(): bigint;
249
+ /**
250
+ * @inheritDoc
251
+ */
112
252
  getInputToken(): BtcToken<true>;
253
+ /**
254
+ * @inheritDoc
255
+ */
113
256
  getInput(): TokenAmount<T["ChainId"], BtcToken<true>>;
257
+ /**
258
+ * @inheritDoc
259
+ */
114
260
  getInputWithoutFee(): TokenAmount<T["ChainId"], BtcToken<true>>;
261
+ /**
262
+ * @inheritDoc
263
+ */
115
264
  getOutputToken(): SCToken<T["ChainId"]>;
265
+ /**
266
+ * @inheritDoc
267
+ */
116
268
  getOutput(): TokenAmount<T["ChainId"], SCToken<T["ChainId"]>, true>;
269
+ /**
270
+ * @inheritDoc
271
+ */
117
272
  getGasDropOutput(): TokenAmount<T["ChainId"], SCToken<T["ChainId"]>, true>;
273
+ /**
274
+ * Returns the swap fee charged by the intermediary (LP) on this swap
275
+ *
276
+ * @internal
277
+ */
118
278
  protected getSwapFee(): Fee<T["ChainId"], BtcToken<true>, SCToken<T["ChainId"]>>;
279
+ /**
280
+ * Returns the fee to be paid to watchtowers on the destination chain to automatically
281
+ * process and settle this swap without requiring any user interaction
282
+ *
283
+ * @internal
284
+ */
119
285
  protected getWatchtowerFee(): Fee<T["ChainId"], BtcToken<true>, SCToken<T["ChainId"]>>;
286
+ /**
287
+ * @inheritDoc
288
+ */
120
289
  getFee(): Fee<T["ChainId"], BtcToken<true>, SCToken<T["ChainId"]>>;
290
+ /**
291
+ * @inheritDoc
292
+ */
121
293
  getFeeBreakdown(): [
122
294
  {
123
295
  type: FeeType.SWAP;
@@ -128,6 +300,7 @@ export declare class FromBTCLNAutoSwap<T extends ChainType = ChainType> extends
128
300
  fee: Fee<T["ChainId"], BtcToken<true>, SCToken<T["ChainId"]>>;
129
301
  }
130
302
  ];
303
+ private isValidSecretPreimage;
131
304
  /**
132
305
  * Executes the swap with the provided bitcoin lightning network wallet or LNURL
133
306
  *
@@ -135,6 +308,8 @@ export declare class FromBTCLNAutoSwap<T extends ChainType = ChainType> extends
135
308
  * link, wallet is not required and the LN invoice can be paid externally as well (just pass null or undefined here)
136
309
  * @param callbacks Callbacks to track the progress of the swap
137
310
  * @param options Optional options for the swap like feeRate, AbortSignal, and timeouts/intervals
311
+ * @param secret A swap secret to broadcast to watchtowers, generally only needed if the swap
312
+ * was recovered from on-chain data, or the pre-image was generated outside the SDK
138
313
  *
139
314
  * @returns {boolean} Whether a swap was settled automatically by swap watchtowers or requires manual claim by the
140
315
  * user, in case `false` is returned the user should call `swap.claim()` to settle the swap on the destination manually
@@ -146,78 +321,126 @@ export declare class FromBTCLNAutoSwap<T extends ChainType = ChainType> extends
146
321
  abortSignal?: AbortSignal;
147
322
  lightningTxCheckIntervalSeconds?: number;
148
323
  maxWaitTillAutomaticSettlementSeconds?: number;
149
- }): Promise<boolean>;
324
+ }, secret?: string): Promise<boolean>;
325
+ /**
326
+ * @inheritDoc
327
+ */
150
328
  txsExecute(): Promise<{
151
329
  name: "Payment";
152
330
  description: string;
153
- chain: string;
331
+ chain: "LIGHTNING";
154
332
  txs: {
333
+ type: "BOLT11_PAYMENT_REQUEST";
155
334
  address: string;
156
335
  hyperlink: string;
157
336
  }[];
158
337
  }[]>;
159
338
  /**
160
- * Checks whether the LP received the LN payment and we can continue by committing & claiming the HTLC on-chain
339
+ * Checks whether the LP received the LN payment
161
340
  *
162
341
  * @param save If the new swap state should be saved
342
+ *
343
+ * @internal
163
344
  */
164
345
  _checkIntermediaryPaymentReceived(save?: boolean): Promise<boolean | null>;
346
+ /**
347
+ * Checks and overrides the swap data for this swap. This is used to set the swap data from
348
+ * on-chain events.
349
+ *
350
+ * @param data Swap data of the escrow swap
351
+ * @param save If the new data should be saved
352
+ *
353
+ * @internal
354
+ */
165
355
  _saveRealSwapData(data: T["Data"], save?: boolean): Promise<boolean>;
166
356
  /**
167
357
  * Checks the data returned by the intermediary in the payment auth request
168
358
  *
169
359
  * @param data Parsed swap data as returned by the intermediary
170
- * @protected
360
+ *
171
361
  * @throws {IntermediaryError} If the returned are not valid
172
362
  * @throws {Error} If the swap is already committed on-chain
363
+ *
364
+ * @private
173
365
  */
174
- protected checkIntermediaryReturnedData(data: T["Data"]): Promise<void>;
366
+ private checkIntermediaryReturnedData;
175
367
  /**
176
- * Waits till an LN payment is received by the intermediary and client can continue commiting & claiming the HTLC
368
+ * Waits till a lightning network payment is received by the intermediary, and the intermediary
369
+ * initiates the swap HTLC on the smart chain side. After the HTLC is initiated you can wait
370
+ * for an automatic settlement by the watchtowers with the {@link waitTillClaimed} function,
371
+ * or settle manually using the {@link claim} or {@link txsClaim} functions.
372
+ *
373
+ * If this swap is using an LNURL-withdraw link as input, it automatically posts the
374
+ * generated invoice to the LNURL service to pay it.
177
375
  *
178
376
  * @param onPaymentReceived Callback as for when the LP reports having received the ln payment
179
- * @param checkIntervalSeconds How often to poll the intermediary for answer (default 5 seconds)
180
377
  * @param abortSignal Abort signal to stop waiting for payment
378
+ * @param checkIntervalSeconds How often to poll the intermediary for answer (default 5 seconds)
181
379
  */
182
380
  waitForPayment(onPaymentReceived?: (txId: string) => void, checkIntervalSeconds?: number, abortSignal?: AbortSignal): Promise<boolean>;
381
+ /**
382
+ * Waits till the intermediary (LP) initiates the swap HTLC escrow on the destination smart chain side
383
+ *
384
+ * @param checkIntervalSeconds How often to check via a polling watchdog
385
+ * @param abortSignal Abort signal
386
+ *
387
+ * @internal
388
+ */
183
389
  protected waitTillCommited(checkIntervalSeconds?: number, abortSignal?: AbortSignal): Promise<void>;
184
390
  /**
185
- * Returns transactions required for claiming the HTLC and finishing the swap by revealing the HTLC secret
186
- * (hash preimage)
391
+ * @inheritDoc
187
392
  *
188
393
  * @param _signer Optional signer address to use for claiming the swap, can also be different from the initializer
189
- * @throws {Error} If in invalid state (must be CLAIM_COMMITED)
394
+ * @param secret A swap secret to use for the claim transaction, generally only needed if the swap
395
+ * was recovered from on-chain data, or the pre-image was generated outside the SDK
396
+ *
397
+ * @throws {Error} If in invalid state (must be {@link FromBTCLNAutoSwapState.CLAIM_COMMITED})
190
398
  */
191
- txsClaim(_signer?: T["Signer"] | T["NativeSigner"]): Promise<T["TX"][]>;
399
+ txsClaim(_signer?: T["Signer"] | T["NativeSigner"], secret?: string): Promise<T["TX"][]>;
192
400
  /**
193
- * Claims and finishes the swap
401
+ * @inheritDoc
194
402
  *
195
403
  * @param _signer Signer to sign the transactions with, can also be different to the initializer
196
404
  * @param abortSignal Abort signal to stop waiting for transaction confirmation
405
+ * @param onBeforeTxSent
406
+ * @param secret A swap secret to use for the claim transaction, generally only needed if the swap
407
+ * was recovered from on-chain data, or the pre-image was generated outside the SDK
197
408
  */
198
- claim(_signer: T["Signer"] | T["NativeSigner"], abortSignal?: AbortSignal): Promise<string>;
409
+ claim(_signer: T["Signer"] | T["NativeSigner"], abortSignal?: AbortSignal, onBeforeTxSent?: (txId: string) => void, secret?: string): Promise<string>;
199
410
  /**
200
- * Waits till the swap is successfully claimed
411
+ * Waits till the swap is successfully settled (claimed), should be called after sending the claim (settlement)
412
+ * transactions manually to wait till the SDK processes the settlement and updates the swap state accordingly.
201
413
  *
202
414
  * @param maxWaitTimeSeconds Maximum time in seconds to wait for the swap to be settled
203
415
  * @param abortSignal AbortSignal
204
- * @throws {Error} If swap is in invalid state (must be BTC_TX_CONFIRMED)
416
+ * @param secret A swap secret to broadcast to watchtowers, generally only needed if the swap
417
+ * was recovered from on-chain data, or the pre-image was generated outside the SDK
418
+ *
419
+ * @throws {Error} If swap is in invalid state (must be {@link FromBTCLNAutoSwapState.CLAIM_COMMITED})
205
420
  * @throws {Error} If the LP refunded sooner than we were able to claim
206
421
  * @returns {boolean} whether the swap was claimed in time or not
207
422
  */
208
- waitTillClaimed(maxWaitTimeSeconds?: number, abortSignal?: AbortSignal): Promise<boolean>;
423
+ waitTillClaimed(maxWaitTimeSeconds?: number, abortSignal?: AbortSignal, secret?: string): Promise<boolean>;
209
424
  /**
210
- * Is this an LNURL-withdraw swap?
425
+ * Whether this swap uses an LNURL-withdraw link
211
426
  */
212
427
  isLNURL(): boolean;
213
428
  /**
214
- * Gets the used LNURL or null if this is not an LNURL-withdraw swap
429
+ * Gets the used LNURL or `null` if this is not an LNURL-withdraw swap
215
430
  */
216
431
  getLNURL(): string | null;
217
432
  /**
218
- * Pay the generated lightning network invoice with LNURL-withdraw
433
+ * Pay the generated lightning network invoice with an LNURL-withdraw link, this
434
+ * is useful when you want to display a lightning payment QR code and also want to
435
+ * allow payments using LNURL-withdraw NFC cards.
436
+ *
437
+ * Note that the swap needs to be created **without** an LNURL to begin with for this function
438
+ * to work. If this swap is already using an LNURL-withdraw link, this function throws.
219
439
  */
220
440
  settleWithLNURLWithdraw(lnurl: string | LNURLWithdraw): Promise<void>;
441
+ /**
442
+ * @inheritDoc
443
+ */
221
444
  serialize(): any;
222
445
  /**
223
446
  * Checks the swap's state on-chain and compares it to its internal state, updates/changes it according to on-chain
@@ -226,11 +449,49 @@ export declare class FromBTCLNAutoSwap<T extends ChainType = ChainType> extends
226
449
  * @private
227
450
  */
228
451
  private syncStateFromChain;
229
- _shouldFetchCommitStatus(): boolean;
452
+ /**
453
+ * @inheritDoc
454
+ * @internal
455
+ */
456
+ _shouldFetchOnchainState(): boolean;
457
+ /**
458
+ * @inheritDoc
459
+ * @internal
460
+ */
230
461
  _shouldFetchExpiryStatus(): boolean;
462
+ /**
463
+ * @inheritDoc
464
+ * @internal
465
+ */
231
466
  _shouldCheckIntermediary(): boolean;
467
+ /**
468
+ * @inheritDoc
469
+ * @internal
470
+ */
232
471
  _sync(save?: boolean, quoteDefinitelyExpired?: boolean, commitStatus?: SwapCommitState, skipLpCheck?: boolean): Promise<boolean>;
233
- private broadcastTickCounter;
234
- _broadcastSecret(noCheckExpiry?: boolean): Promise<void>;
472
+ /**
473
+ * @inheritDoc
474
+ * @internal
475
+ */
476
+ _forciblySetOnchainState(commitStatus: SwapCommitState): Promise<boolean>;
477
+ /**
478
+ * Broadcasts the swap secret to the underlying data propagation layer (e.g. Nostr by default)
479
+ *
480
+ * @param noCheckExpiry Whether a swap expiration check should be skipped broadcasting
481
+ * @param secret An optional secret pre-image for the swap to broadcast
482
+ *
483
+ * @internal
484
+ */
485
+ _broadcastSecret(noCheckExpiry?: boolean, secret?: string): Promise<void>;
486
+ /**
487
+ * @inheritDoc
488
+ * @internal
489
+ */
235
490
  _tick(save?: boolean): Promise<boolean>;
491
+ /**
492
+ * Forcibly sets the swap secret pre-image from on-chain data
493
+ *
494
+ * @internal
495
+ */
496
+ _setSwapSecret(secret: string): void;
236
497
  }