@atomiqlabs/sdk 8.1.7 → 8.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (253) hide show
  1. package/dist/bitcoin/wallet/BitcoinWallet.d.ts +41 -5
  2. package/dist/bitcoin/wallet/BitcoinWallet.js +36 -1
  3. package/dist/bitcoin/wallet/IBitcoinWallet.d.ts +52 -2
  4. package/dist/bitcoin/wallet/IBitcoinWallet.js +2 -1
  5. package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.d.ts +42 -7
  6. package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.js +36 -1
  7. package/dist/enums/FeeType.d.ts +7 -0
  8. package/dist/enums/FeeType.js +7 -0
  9. package/dist/enums/SwapAmountType.d.ts +7 -0
  10. package/dist/enums/SwapAmountType.js +7 -0
  11. package/dist/enums/SwapDirection.d.ts +7 -0
  12. package/dist/enums/SwapDirection.js +7 -0
  13. package/dist/enums/SwapType.d.ts +62 -1
  14. package/dist/enums/SwapType.js +62 -1
  15. package/dist/errors/IntermediaryError.d.ts +4 -0
  16. package/dist/errors/IntermediaryError.js +1 -0
  17. package/dist/errors/RequestError.d.ts +15 -1
  18. package/dist/errors/RequestError.js +8 -0
  19. package/dist/errors/UserError.d.ts +1 -0
  20. package/dist/errors/UserError.js +1 -0
  21. package/dist/index.d.ts +4 -5
  22. package/dist/index.js +3 -4
  23. package/dist/intermediaries/Intermediary.d.ts +57 -10
  24. package/dist/intermediaries/Intermediary.js +37 -10
  25. package/dist/intermediaries/IntermediaryDiscovery.d.ts +55 -22
  26. package/dist/intermediaries/IntermediaryDiscovery.js +35 -22
  27. package/dist/prices/RedundantSwapPrice.d.ts +24 -3
  28. package/dist/prices/RedundantSwapPrice.js +21 -1
  29. package/dist/prices/SingleSwapPrice.d.ts +9 -6
  30. package/dist/prices/SingleSwapPrice.js +10 -7
  31. package/dist/prices/SwapPriceWithChain.d.ts +54 -16
  32. package/dist/prices/SwapPriceWithChain.js +58 -20
  33. package/dist/prices/abstract/ISwapPrice.d.ts +94 -45
  34. package/dist/prices/abstract/ISwapPrice.js +103 -55
  35. package/dist/prices/providers/BinancePriceProvider.d.ts +7 -0
  36. package/dist/prices/providers/BinancePriceProvider.js +7 -0
  37. package/dist/prices/providers/CoinGeckoPriceProvider.d.ts +6 -0
  38. package/dist/prices/providers/CoinGeckoPriceProvider.js +6 -0
  39. package/dist/prices/providers/CoinPaprikaPriceProvider.d.ts +6 -0
  40. package/dist/prices/providers/CoinPaprikaPriceProvider.js +6 -0
  41. package/dist/prices/providers/CustomPriceProvider.d.ts +11 -0
  42. package/dist/prices/providers/CustomPriceProvider.js +11 -0
  43. package/dist/prices/providers/KrakenPriceProvider.d.ts +9 -0
  44. package/dist/prices/providers/KrakenPriceProvider.js +9 -0
  45. package/dist/prices/providers/OKXPriceProvider.d.ts +6 -0
  46. package/dist/prices/providers/OKXPriceProvider.js +6 -0
  47. package/dist/prices/providers/abstract/ExchangePriceProvider.d.ts +3 -0
  48. package/dist/prices/providers/abstract/ExchangePriceProvider.js +3 -0
  49. package/dist/storage/IUnifiedStorage.d.ts +19 -7
  50. package/dist/storage/UnifiedSwapStorage.d.ts +33 -3
  51. package/dist/storage/UnifiedSwapStorage.js +29 -1
  52. package/dist/storage-browser/IndexedDBUnifiedStorage.d.ts +31 -7
  53. package/dist/storage-browser/IndexedDBUnifiedStorage.js +29 -6
  54. package/dist/storage-browser/LocalStorageManager.d.ts +25 -1
  55. package/dist/storage-browser/LocalStorageManager.js +25 -1
  56. package/dist/swapper/Swapper.d.ts +303 -222
  57. package/dist/swapper/Swapper.js +376 -344
  58. package/dist/swapper/SwapperFactory.d.ts +41 -17
  59. package/dist/swapper/SwapperFactory.js +23 -2
  60. package/dist/swapper/SwapperUtils.d.ts +75 -28
  61. package/dist/swapper/SwapperUtils.js +107 -60
  62. package/dist/swapper/SwapperWithChain.d.ts +286 -91
  63. package/dist/swapper/SwapperWithChain.js +218 -64
  64. package/dist/swapper/SwapperWithSigner.d.ts +229 -80
  65. package/dist/swapper/SwapperWithSigner.js +190 -44
  66. package/dist/swaps/IAddressSwap.d.ts +10 -1
  67. package/dist/swaps/IAddressSwap.js +2 -1
  68. package/dist/swaps/IBTCWalletSwap.d.ts +24 -6
  69. package/dist/swaps/IBTCWalletSwap.js +2 -1
  70. package/dist/swaps/IClaimableSwap.d.ts +36 -4
  71. package/dist/swaps/IClaimableSwap.js +2 -1
  72. package/dist/swaps/IClaimableSwapWrapper.d.ts +11 -1
  73. package/dist/swaps/IRefundableSwap.d.ts +29 -3
  74. package/dist/swaps/IRefundableSwap.js +2 -1
  75. package/dist/swaps/ISwap.d.ts +159 -21
  76. package/dist/swaps/ISwap.js +90 -33
  77. package/dist/swaps/ISwapWithGasDrop.d.ts +6 -0
  78. package/dist/swaps/ISwapWithGasDrop.js +1 -0
  79. package/dist/swaps/ISwapWrapper.d.ts +157 -48
  80. package/dist/swaps/ISwapWrapper.js +130 -72
  81. package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.d.ts +49 -6
  82. package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.js +22 -12
  83. package/dist/swaps/escrow_swaps/IEscrowSwap.d.ts +65 -12
  84. package/dist/swaps/escrow_swaps/IEscrowSwap.js +38 -19
  85. package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.d.ts +39 -9
  86. package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.js +30 -21
  87. package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.d.ts +31 -15
  88. package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.js +33 -18
  89. package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.d.ts +94 -29
  90. package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.js +90 -27
  91. package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.d.ts +22 -9
  92. package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.js +24 -11
  93. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.d.ts +275 -58
  94. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.js +516 -239
  95. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.d.ts +76 -25
  96. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.js +131 -49
  97. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.d.ts +311 -51
  98. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.js +542 -193
  99. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.d.ts +87 -26
  100. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.js +147 -58
  101. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.d.ts +209 -53
  102. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.js +449 -242
  103. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.d.ts +77 -23
  104. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.js +116 -46
  105. package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.d.ts +197 -56
  106. package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.js +326 -189
  107. package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.d.ts +30 -5
  108. package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.js +44 -19
  109. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.d.ts +60 -19
  110. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.js +74 -31
  111. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.d.ts +76 -50
  112. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.js +106 -101
  113. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.d.ts +36 -13
  114. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.js +65 -19
  115. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.d.ts +46 -17
  116. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.js +82 -27
  117. package/dist/swaps/spv_swaps/SpvFromBTCSwap.d.ts +328 -92
  118. package/dist/swaps/spv_swaps/SpvFromBTCSwap.js +460 -219
  119. package/dist/swaps/spv_swaps/SpvFromBTCWrapper.d.ts +76 -24
  120. package/dist/swaps/spv_swaps/SpvFromBTCWrapper.js +244 -124
  121. package/dist/swaps/trusted/ln/LnForGasSwap.d.ts +146 -18
  122. package/dist/swaps/trusted/ln/LnForGasSwap.js +173 -43
  123. package/dist/swaps/trusted/ln/LnForGasWrapper.d.ts +29 -10
  124. package/dist/swaps/trusted/ln/LnForGasWrapper.js +30 -11
  125. package/dist/swaps/trusted/onchain/OnchainForGasSwap.d.ts +200 -47
  126. package/dist/swaps/trusted/onchain/OnchainForGasSwap.js +230 -78
  127. package/dist/swaps/trusted/onchain/OnchainForGasWrapper.d.ts +34 -12
  128. package/dist/swaps/trusted/onchain/OnchainForGasWrapper.js +33 -14
  129. package/dist/types/AmountData.d.ts +2 -1
  130. package/dist/types/CustomPriceFunction.d.ts +7 -1
  131. package/dist/types/SwapExecutionAction.d.ts +74 -4
  132. package/dist/types/SwapWithSigner.d.ts +4 -1
  133. package/dist/types/SwapWithSigner.js +5 -2
  134. package/dist/types/Token.d.ts +11 -5
  135. package/dist/types/Token.js +6 -3
  136. package/dist/types/TokenAmount.d.ts +3 -0
  137. package/dist/types/TokenAmount.js +2 -0
  138. package/dist/types/fees/Fee.d.ts +2 -1
  139. package/dist/types/fees/FeeBreakdown.d.ts +2 -1
  140. package/dist/types/fees/PercentagePPM.d.ts +2 -0
  141. package/dist/types/fees/PercentagePPM.js +1 -0
  142. package/dist/types/lnurl/LNURLPay.d.ts +14 -6
  143. package/dist/types/lnurl/LNURLPay.js +6 -2
  144. package/dist/types/lnurl/LNURLWithdraw.d.ts +12 -5
  145. package/dist/types/lnurl/LNURLWithdraw.js +6 -2
  146. package/dist/types/wallets/LightningInvoiceCreateService.d.ts +20 -0
  147. package/dist/types/wallets/LightningInvoiceCreateService.js +15 -0
  148. package/dist/types/wallets/MinimalBitcoinWalletInterface.d.ts +3 -1
  149. package/dist/types/wallets/MinimalLightningNetworkWalletInterface.d.ts +3 -1
  150. package/dist/utils/BitcoinUtils.d.ts +1 -0
  151. package/dist/utils/BitcoinUtils.js +5 -1
  152. package/dist/utils/SwapUtils.d.ts +56 -1
  153. package/dist/utils/SwapUtils.js +53 -1
  154. package/dist/utils/TokenUtils.d.ts +10 -2
  155. package/dist/utils/TokenUtils.js +12 -4
  156. package/package.json +3 -3
  157. package/src/bitcoin/wallet/BitcoinWallet.ts +41 -5
  158. package/src/bitcoin/wallet/IBitcoinWallet.ts +57 -2
  159. package/src/bitcoin/wallet/SingleAddressBitcoinWallet.ts +42 -6
  160. package/src/enums/FeeType.ts +7 -0
  161. package/src/enums/SwapAmountType.ts +7 -0
  162. package/src/enums/SwapDirection.ts +7 -0
  163. package/src/enums/SwapType.ts +62 -2
  164. package/src/errors/IntermediaryError.ts +4 -0
  165. package/src/errors/RequestError.ts +15 -1
  166. package/src/errors/UserError.ts +1 -0
  167. package/src/index.ts +6 -5
  168. package/src/intermediaries/Intermediary.ts +57 -10
  169. package/src/intermediaries/IntermediaryDiscovery.ts +60 -27
  170. package/src/prices/RedundantSwapPrice.ts +24 -4
  171. package/src/prices/SingleSwapPrice.ts +10 -7
  172. package/src/prices/SwapPriceWithChain.ts +59 -21
  173. package/src/prices/abstract/ISwapPrice.ts +114 -65
  174. package/src/prices/providers/BinancePriceProvider.ts +7 -0
  175. package/src/prices/providers/CoinGeckoPriceProvider.ts +6 -0
  176. package/src/prices/providers/CoinPaprikaPriceProvider.ts +6 -0
  177. package/src/prices/providers/CustomPriceProvider.ts +11 -0
  178. package/src/prices/providers/KrakenPriceProvider.ts +9 -0
  179. package/src/prices/providers/OKXPriceProvider.ts +6 -0
  180. package/src/prices/providers/abstract/ExchangePriceProvider.ts +3 -0
  181. package/src/storage/IUnifiedStorage.ts +19 -7
  182. package/src/storage/UnifiedSwapStorage.ts +33 -3
  183. package/src/storage-browser/IndexedDBUnifiedStorage.ts +31 -8
  184. package/src/storage-browser/LocalStorageManager.ts +25 -1
  185. package/src/swapper/Swapper.ts +513 -379
  186. package/src/swapper/SwapperFactory.ts +44 -21
  187. package/src/swapper/SwapperUtils.ts +107 -60
  188. package/src/swapper/SwapperWithChain.ts +320 -81
  189. package/src/swapper/SwapperWithSigner.ts +263 -56
  190. package/src/swaps/IAddressSwap.ts +11 -1
  191. package/src/swaps/IBTCWalletSwap.ts +24 -8
  192. package/src/swaps/IClaimableSwap.ts +39 -4
  193. package/src/swaps/IClaimableSwapWrapper.ts +11 -2
  194. package/src/swaps/IRefundableSwap.ts +32 -3
  195. package/src/swaps/ISwap.ts +221 -82
  196. package/src/swaps/ISwapWithGasDrop.ts +6 -0
  197. package/src/swaps/ISwapWrapper.ts +212 -94
  198. package/src/swaps/escrow_swaps/IEscrowSelfInitSwap.ts +62 -18
  199. package/src/swaps/escrow_swaps/IEscrowSwap.ts +83 -37
  200. package/src/swaps/escrow_swaps/IEscrowSwapWrapper.ts +61 -30
  201. package/src/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.ts +37 -19
  202. package/src/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.ts +120 -51
  203. package/src/swaps/escrow_swaps/frombtc/IFromBTCWrapper.ts +24 -11
  204. package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.ts +559 -256
  205. package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.ts +155 -61
  206. package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.ts +590 -226
  207. package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.ts +177 -74
  208. package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.ts +470 -243
  209. package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.ts +141 -59
  210. package/src/swaps/escrow_swaps/tobtc/IToBTCSwap.ts +352 -193
  211. package/src/swaps/escrow_swaps/tobtc/IToBTCWrapper.ts +48 -23
  212. package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.ts +86 -39
  213. package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.ts +110 -110
  214. package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.ts +88 -33
  215. package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.ts +101 -31
  216. package/src/swaps/spv_swaps/SpvFromBTCSwap.ts +534 -263
  217. package/src/swaps/spv_swaps/SpvFromBTCWrapper.ts +289 -148
  218. package/src/swaps/trusted/ln/LnForGasSwap.ts +184 -45
  219. package/src/swaps/trusted/ln/LnForGasWrapper.ts +34 -15
  220. package/src/swaps/trusted/onchain/OnchainForGasSwap.ts +260 -86
  221. package/src/swaps/trusted/onchain/OnchainForGasWrapper.ts +41 -19
  222. package/src/types/AmountData.ts +2 -1
  223. package/src/types/CustomPriceFunction.ts +7 -1
  224. package/src/types/SwapExecutionAction.ts +84 -5
  225. package/src/types/SwapWithSigner.ts +7 -3
  226. package/src/types/Token.ts +12 -5
  227. package/src/types/TokenAmount.ts +3 -0
  228. package/src/types/fees/Fee.ts +2 -1
  229. package/src/types/fees/FeeBreakdown.ts +2 -1
  230. package/src/types/fees/PercentagePPM.ts +2 -0
  231. package/src/types/lnurl/LNURLPay.ts +14 -6
  232. package/src/types/lnurl/LNURLWithdraw.ts +12 -5
  233. package/src/types/wallets/LightningInvoiceCreateService.ts +26 -0
  234. package/src/types/wallets/MinimalBitcoinWalletInterface.ts +3 -1
  235. package/src/types/wallets/MinimalLightningNetworkWalletInterface.ts +3 -1
  236. package/src/utils/BitcoinUtils.ts +5 -0
  237. package/src/utils/SwapUtils.ts +61 -1
  238. package/src/utils/TokenUtils.ts +12 -4
  239. package/dist/bitcoin/BitcoinRpcWithAddressIndex.d.ts +0 -68
  240. package/dist/bitcoin/BitcoinRpcWithAddressIndex.js +0 -2
  241. package/dist/bitcoin/LightningNetworkApi.d.ts +0 -12
  242. package/dist/bitcoin/LightningNetworkApi.js +0 -2
  243. package/dist/bitcoin/mempool/MempoolApi.d.ts +0 -350
  244. package/dist/bitcoin/mempool/MempoolApi.js +0 -311
  245. package/dist/bitcoin/mempool/MempoolBitcoinBlock.d.ts +0 -44
  246. package/dist/bitcoin/mempool/MempoolBitcoinBlock.js +0 -48
  247. package/dist/bitcoin/mempool/MempoolBitcoinRpc.d.ts +0 -119
  248. package/dist/bitcoin/mempool/MempoolBitcoinRpc.js +0 -361
  249. package/dist/bitcoin/mempool/synchronizer/MempoolBtcRelaySynchronizer.d.ts +0 -22
  250. package/dist/bitcoin/mempool/synchronizer/MempoolBtcRelaySynchronizer.js +0 -105
  251. package/dist/errors/PaymentAuthError.d.ts +0 -11
  252. package/dist/errors/PaymentAuthError.js +0 -23
  253. package/src/errors/PaymentAuthError.ts +0 -26
@@ -1,11 +1,11 @@
1
1
  /// <reference types="node" />
2
2
  import { ISwapPrice } from "../prices/abstract/ISwapPrice";
3
3
  import { BitcoinNetwork, BtcRelay, ChainData, ChainType, Messenger, RelaySynchronizer } from "@atomiqlabs/base";
4
- import { InvoiceCreateService, ToBTCLNOptions, ToBTCLNWrapper } from "../swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper";
4
+ import { ToBTCLNOptions, ToBTCLNWrapper } from "../swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper";
5
5
  import { ToBTCOptions, ToBTCWrapper } from "../swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper";
6
6
  import { FromBTCLNOptions, FromBTCLNWrapper } from "../swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper";
7
7
  import { FromBTCOptions, FromBTCWrapper } from "../swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper";
8
- import { IntermediaryDiscovery, MultichainSwapBounds, SwapBounds } from "../intermediaries/IntermediaryDiscovery";
8
+ import { IntermediaryDiscovery } from "../intermediaries/IntermediaryDiscovery";
9
9
  import { ISwap } from "../swaps/ISwap";
10
10
  import { SwapType } from "../enums/SwapType";
11
11
  import { FromBTCLNSwap } from "../swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap";
@@ -38,7 +38,8 @@ import { BtcToken, SCToken, Token } from "../types/Token";
38
38
  import { LNURLWithdraw } from "../types/lnurl/LNURLWithdraw";
39
39
  import { LNURLPay } from "../types/lnurl/LNURLPay";
40
40
  import { NotNever } from "../utils/TypeUtils";
41
- import { MempoolApi, MempoolBitcoinBlock, MempoolBitcoinRpc } from "@atomiqlabs/btc-mempool";
41
+ import { MempoolBitcoinBlock, MempoolBitcoinRpc } from "@atomiqlabs/btc-mempool";
42
+ import { LightningInvoiceCreateService } from "../types/wallets/LightningInvoiceCreateService";
42
43
  /**
43
44
  * Configuration options for the Swapper
44
45
  * @category Core
@@ -108,7 +109,8 @@ export type ChainIds<T extends MultiChain> = keyof T & string;
108
109
  */
109
110
  export type SupportsSwapType<C extends ChainType, Type extends SwapType> = Type extends SwapType.SPV_VAULT_FROM_BTC ? NotNever<C["SpvVaultContract"]> : Type extends (SwapType.TRUSTED_FROM_BTCLN | SwapType.TRUSTED_FROM_BTC) ? true : Type extends SwapType.FROM_BTCLN_AUTO ? (C["Contract"]["supportsInitWithoutClaimer"] extends true ? true : false) : NotNever<C["Contract"]>;
110
111
  /**
111
- * Core orchestrator for all swap operations with multi-chain support
112
+ * Core orchestrator for all atomiq swap operations
113
+ *
112
114
  * @category Core
113
115
  */
114
116
  export declare class Swapper<T extends MultiChain> extends EventEmitter<{
@@ -117,29 +119,60 @@ export declare class Swapper<T extends MultiChain> extends EventEmitter<{
117
119
  swapState: [ISwap];
118
120
  swapLimitsChanged: [];
119
121
  }> {
120
- protected readonly logger: import("../utils/Logger").LoggerType;
121
- protected readonly swapStateListener: (swap: ISwap) => void;
122
+ private readonly logger;
123
+ private readonly swapStateListener;
122
124
  private defaultTrustedIntermediary?;
123
- private readonly _bitcoinNetwork;
125
+ private readonly bitcoinNetwork;
124
126
  private readonly options;
125
- readonly chains: MultiChainData<T>;
126
- readonly prices: ISwapPrice<T>;
127
- readonly intermediaryDiscovery: IntermediaryDiscovery;
128
- readonly mempoolApi: MempoolApi;
129
- readonly bitcoinRpc: MempoolBitcoinRpc;
130
- readonly bitcoinNetwork: BTC_NETWORK;
131
- readonly messenger: Messenger;
132
- readonly Utils: SwapperUtils<T>;
133
- readonly tokens: {
127
+ /**
128
+ * Data propagation layer used for broadcasting messages to watchtowers
129
+ */
130
+ private readonly messenger;
131
+ /**
132
+ * A dictionary of smart chains used by the SDK
133
+ * @internal
134
+ */
135
+ readonly _chains: MultiChainData<T>;
136
+ /**
137
+ * Bitcoin RPC for fetching bitcoin chain data
138
+ * @internal
139
+ */
140
+ readonly _bitcoinRpc: MempoolBitcoinRpc;
141
+ /**
142
+ * Bitcoin network specification
143
+ * @internal
144
+ */
145
+ readonly _btcNetwork: BTC_NETWORK;
146
+ /**
147
+ * Token data indexed by chain identifier and token addresses
148
+ * @internal
149
+ */
150
+ readonly _tokens: {
134
151
  [chainId: string]: {
135
152
  [tokenAddress: string]: SCToken;
136
153
  };
137
154
  };
138
- readonly tokensByTicker: {
155
+ /**
156
+ * Token data indexed by chain identifier and token tickers
157
+ * @internal
158
+ */
159
+ readonly _tokensByTicker: {
139
160
  [chainId: string]: {
140
161
  [tokenTicker: string]: SCToken;
141
162
  };
142
163
  };
164
+ /**
165
+ * Pricing API used by the SDK
166
+ */
167
+ readonly prices: ISwapPrice<T>;
168
+ /**
169
+ * Intermediary discovery instance
170
+ */
171
+ readonly intermediaryDiscovery: IntermediaryDiscovery;
172
+ /**
173
+ * Miscellaneous utility functions
174
+ */
175
+ readonly Utils: SwapperUtils<T>;
143
176
  constructor(bitcoinRpc: MempoolBitcoinRpc, chainsData: CtorMultiChainData<T>, pricing: ISwapPrice<T>, tokens: WrapperCtorTokens<T>, messenger: Messenger, options?: SwapperOptions);
144
177
  private _init;
145
178
  private initPromise?;
@@ -166,165 +199,225 @@ export declare class Swapper<T extends MultiChain> extends EventEmitter<{
166
199
  */
167
200
  private createSwap;
168
201
  /**
169
- * Creates To BTC swap
202
+ * Creates Smart chain -> Bitcoin ({@link SwapType.TO_BTC}) swap
170
203
  *
171
- * @param chainIdentifier
172
- * @param signer
173
- * @param tokenAddress Token address to pay with
174
- * @param address Recipient's bitcoin address
175
- * @param amount Amount to send in satoshis (bitcoin's smallest denomination)
176
- * @param exactIn Whether to use exact in instead of exact out
177
- * @param additionalParams Additional parameters sent to the LP when creating the swap
178
- * @param options
204
+ * @param chainIdentifier Chain identifier string of the source smart chain
205
+ * @param signer Signer's address on the source chain
206
+ * @param tokenAddress Token address to pay with
207
+ * @param address Recipient's bitcoin address
208
+ * @param amount Amount to send in token based units (if `exactIn=true`) or receive in satoshis (if `exactIn=false`)
209
+ * @param exactIn Whether to use exact in instead of exact out
210
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
211
+ * @param options Additional options for the swap
179
212
  */
180
213
  createToBTCSwap<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, signer: string, tokenAddress: string, address: string, amount: bigint, exactIn?: boolean, additionalParams?: Record<string, any> | undefined, options?: ToBTCOptions): Promise<ToBTCSwap<T[ChainIdentifier]>>;
181
214
  /**
182
- * Creates To BTCLN swap
215
+ * Creates Smart chain -> Bitcoin Lightning ({@link SwapType.TO_BTCLN}) swap
183
216
  *
184
- * @param chainIdentifier
185
- * @param signer
186
- * @param tokenAddress Token address to pay with
187
- * @param paymentRequest BOLT11 lightning network invoice to be paid (needs to have a fixed amount)
188
- * @param additionalParams Additional parameters sent to the LP when creating the swap
189
- * @param options
217
+ * @param chainIdentifier Chain identifier string of the source smart chain
218
+ * @param signer Signer's address on the source chain
219
+ * @param tokenAddress Token address to pay with
220
+ * @param paymentRequest BOLT11 lightning network invoice to be paid (needs to have a fixed amount), and the swap
221
+ * amount is taken from this fixed amount, hence only exact output swaps are supported
222
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
223
+ * @param options Additional options for the swap
190
224
  */
191
225
  createToBTCLNSwap<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, signer: string, tokenAddress: string, paymentRequest: string, additionalParams?: Record<string, any> | undefined, options?: ToBTCLNOptions): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
192
226
  /**
193
- * Creates To BTCLN swap via LNURL-pay
227
+ * Creates Smart chain -> Bitcoin Lightning ({@link SwapType.TO_BTCLN}) swap via LNURL-pay link
194
228
  *
195
- * @param chainIdentifier
196
- * @param signer
197
- * @param tokenAddress Token address to pay with
198
- * @param lnurlPay LNURL-pay link to use for the payment
199
- * @param amount Amount to be paid in sats
200
- * @param exactIn Whether to do an exact in swap instead of exact out
201
- * @param additionalParams Additional parameters sent to the LP when creating the swap
202
- * @param options
229
+ * @param chainIdentifier Chain identifier string of the source smart chain
230
+ * @param signer Signer's address on the source chain
231
+ * @param tokenAddress Token address to pay with
232
+ * @param lnurlPay LNURL-pay link to use for the payment
233
+ * @param amount Amount to send in token based units (if `exactIn=true`) or receive in satoshis (if `exactIn=false`)
234
+ * @param exactIn Whether to do an exact in swap instead of exact out
235
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
236
+ * @param options Additional options for the swap
203
237
  */
204
238
  createToBTCLNSwapViaLNURL<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, signer: string, tokenAddress: string, lnurlPay: string | LNURLPay, amount: bigint, exactIn?: boolean, additionalParams?: Record<string, any> | undefined, options?: ToBTCLNOptions & {
205
239
  comment?: string;
206
240
  }): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
207
241
  /**
208
- * Creates To BTCLN swap via InvoiceCreationService
242
+ * Creates Smart chain -> Bitcoin Lightning ({@link SwapType.TO_BTCLN}) swap via {@link LightningInvoiceCreateService}
209
243
  *
210
- * @param chainIdentifier
211
- * @param signer
212
- * @param tokenAddress Token address to pay with
213
- * @param service Invoice create service object which facilitates the creation of fixed amount LN invoices
214
- * @param amount Amount to be paid in sats
215
- * @param exactIn Whether to do an exact in swap instead of exact out
216
- * @param additionalParams Additional parameters sent to the LP when creating the swap
217
- * @param options
218
- */
219
- createToBTCLNSwapViaInvoiceCreateService<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, signer: string, tokenAddress: string, service: InvoiceCreateService, amount: bigint, exactIn?: boolean, additionalParams?: Record<string, any> | undefined, options?: ToBTCLNOptions): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
220
- /**
221
- * Creates From BTC swap
244
+ * @param chainIdentifier Chain identifier string of the source smart chain
245
+ * @param signer Signer's address on the source chain
246
+ * @param tokenAddress Token address to pay with
247
+ * @param service Invoice create service object which facilitates the creation of fixed amount LN invoices
248
+ * @param amount Amount to send in token based units (if `exactIn=true`) or receive in satoshis (if `exactIn=false`)
249
+ * @param exactIn Whether to do an exact in swap instead of exact out
250
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
251
+ * @param options Additional options for the swap
252
+ */
253
+ createToBTCLNSwapViaInvoiceCreateService<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, signer: string, tokenAddress: string, service: LightningInvoiceCreateService, amount: bigint, exactIn?: boolean, additionalParams?: Record<string, any> | undefined, options?: ToBTCLNOptions): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
254
+ /**
255
+ * Creates Bitcoin -> Smart chain ({@link SwapType.SPV_VAULT_FROM_BTC}) swap
222
256
  *
223
- * @param chainIdentifier
224
- * @param signer
225
- * @param tokenAddress Token address to receive
226
- * @param amount Amount to receive, in satoshis (bitcoin's smallest denomination)
227
- * @param exactOut Whether to use a exact out instead of exact in
228
- * @param additionalParams Additional parameters sent to the LP when creating the swap
229
- * @param options
257
+ * @param chainIdentifier Chain identifier string of the destination smart chain
258
+ * @param recipient Recipient address on the destination chain
259
+ * @param tokenAddress Token address to receive
260
+ * @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
261
+ * @param exactOut Whether to use a exact out instead of exact in
262
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
263
+ * @param options Additional options for the swap
230
264
  */
231
- createFromBTCSwapNew<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, signer: string, tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any> | undefined, options?: SpvFromBTCOptions): Promise<SpvFromBTCSwap<T[ChainIdentifier]>>;
265
+ createFromBTCSwapNew<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, recipient: string, tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any> | undefined, options?: SpvFromBTCOptions): Promise<SpvFromBTCSwap<T[ChainIdentifier]>>;
232
266
  /**
233
- * Creates From BTC swap
267
+ * Creates LEGACY Bitcoin -> Smart chain ({@link SwapType.FROM_BTC}) swap
234
268
  *
235
- * @param chainIdentifier
236
- * @param signer
237
- * @param tokenAddress Token address to receive
238
- * @param amount Amount to receive, in satoshis (bitcoin's smallest denomination)
239
- * @param exactOut Whether to use a exact out instead of exact in
240
- * @param additionalParams Additional parameters sent to the LP when creating the swap
241
- * @param options
269
+ * @param chainIdentifier Chain identifier string of the destination smart chain
270
+ * @param recipient Recipient address on the destination chain
271
+ * @param tokenAddress Token address to receive
272
+ * @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
273
+ * @param exactOut Whether to use a exact out instead of exact in
274
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
275
+ * @param options Additional options for the swap
242
276
  */
243
- createFromBTCSwap<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, signer: string, tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any> | undefined, options?: FromBTCOptions): Promise<FromBTCSwap<T[ChainIdentifier]>>;
277
+ createFromBTCSwap<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, recipient: string, tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any> | undefined, options?: FromBTCOptions): Promise<FromBTCSwap<T[ChainIdentifier]>>;
244
278
  /**
245
- * Creates From BTCLN swap
279
+ * Creates LEGACY Bitcoin Lightning -> Smart chain ({@link SwapType.FROM_BTCLN}) swap
246
280
  *
247
- * @param chainIdentifier
248
- * @param signer
249
- * @param tokenAddress Token address to receive
250
- * @param amount Amount to receive, in satoshis (bitcoin's smallest denomination)
251
- * @param exactOut Whether to use exact out instead of exact in
252
- * @param additionalParams Additional parameters sent to the LP when creating the swap
253
- * @param options
254
- */
255
- createFromBTCLNSwap<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, signer: string, tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any> | undefined, options?: FromBTCLNOptions): Promise<FromBTCLNSwap<T[ChainIdentifier]>>;
256
- /**
257
- * Creates From BTCLN swap, withdrawing from LNURL-withdraw
281
+ * @param chainIdentifier Chain identifier string of the destination smart chain
282
+ * @param recipient Recipient address on the destination chain
283
+ * @param tokenAddress Token address to receive
284
+ * @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
285
+ * @param exactOut Whether to use a exact out instead of exact in
286
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
287
+ * @param options Additional options for the swap
288
+ */
289
+ createFromBTCLNSwap<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, recipient: string, tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any> | undefined, options?: FromBTCLNOptions): Promise<FromBTCLNSwap<T[ChainIdentifier]>>;
290
+ /**
291
+ * Creates LEGACY Bitcoin Lightning -> Smart chain ({@link SwapType.FROM_BTCLN}) swap, withdrawing from
292
+ * an LNURL-withdraw link
258
293
  *
259
- * @param chainIdentifier
260
- * @param signer
261
- * @param tokenAddress Token address to receive
262
- * @param lnurl LNURL-withdraw to pull the funds from
263
- * @param amount Amount to receive, in satoshis (bitcoin's smallest denomination)
264
- * @param exactOut Whether to use exact out instead of exact in
265
- * @param additionalParams Additional parameters sent to the LP when creating the swap
294
+ * @param chainIdentifier Chain identifier string of the destination smart chain
295
+ * @param recipient Recipient address on the destination chain
296
+ * @param tokenAddress Token address to receive
297
+ * @param lnurl LNURL-withdraw link to pull the funds from
298
+ * @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
299
+ * @param exactOut Whether to use a exact out instead of exact in
300
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
266
301
  */
267
- createFromBTCLNSwapViaLNURL<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, signer: string, tokenAddress: string, lnurl: string | LNURLWithdraw, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any> | undefined): Promise<FromBTCLNSwap<T[ChainIdentifier]>>;
302
+ createFromBTCLNSwapViaLNURL<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, recipient: string, tokenAddress: string, lnurl: string | LNURLWithdraw, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any> | undefined): Promise<FromBTCLNSwap<T[ChainIdentifier]>>;
268
303
  /**
269
- * Creates From BTCLN swap using new protocol
304
+ * Creates Bitcoin Lightning -> Smart chain ({@link SwapType.FROM_BTCLN_AUTO}) swap
270
305
  *
271
- * @param chainIdentifier
272
- * @param signer
273
- * @param tokenAddress Token address to receive
274
- * @param amount Amount to receive, in satoshis (bitcoin's smallest denomination)
275
- * @param exactOut Whether to use exact out instead of exact in
276
- * @param additionalParams Additional parameters sent to the LP when creating the swap
277
- * @param options
278
- */
279
- createFromBTCLNSwapNew<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, signer: string, tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any> | undefined, options?: FromBTCLNAutoOptions): Promise<FromBTCLNAutoSwap<T[ChainIdentifier]>>;
280
- /**
281
- * Creates From BTCLN swap using new protocol, withdrawing from LNURL-withdraw
306
+ * @param chainIdentifier Chain identifier string of the destination smart chain
307
+ * @param recipient Recipient address on the destination chain
308
+ * @param tokenAddress Token address to receive
309
+ * @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
310
+ * @param exactOut Whether to use a exact out instead of exact in
311
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
312
+ * @param options Additional options for the swap
313
+ */
314
+ createFromBTCLNSwapNew<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, recipient: string, tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any> | undefined, options?: FromBTCLNAutoOptions): Promise<FromBTCLNAutoSwap<T[ChainIdentifier]>>;
315
+ /**
316
+ * Creates Bitcoin Lightning -> Smart chain ({@link SwapType.FROM_BTCLN_AUTO}) swap, withdrawing from
317
+ * an LNURL-withdraw link
282
318
  *
283
- * @param chainIdentifier
284
- * @param signer
285
- * @param tokenAddress Token address to receive
286
- * @param lnurl LNURL-withdraw to pull the funds from
287
- * @param amount Amount to receive, in satoshis (bitcoin's smallest denomination)
288
- * @param exactOut Whether to use exact out instead of exact in
289
- * @param additionalParams Additional parameters sent to the LP when creating the swap
290
- * @param options
291
- */
292
- createFromBTCLNSwapNewViaLNURL<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, signer: string, tokenAddress: string, lnurl: string | LNURLWithdraw, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any> | undefined, options?: FromBTCLNAutoOptions): Promise<FromBTCLNAutoSwap<T[ChainIdentifier]>>;
293
- /**
294
- * Creates trusted LN for Gas swap
319
+ * @param chainIdentifier Chain identifier string of the destination smart chain
320
+ * @param recipient Recipient address on the destination chain
321
+ * @param tokenAddress Token address to receive
322
+ * @param lnurl LNURL-withdraw link to pull the funds from
323
+ * @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
324
+ * @param exactOut Whether to use a exact out instead of exact in
325
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
326
+ * @param options Additional options for the swap
327
+ */
328
+ createFromBTCLNSwapNewViaLNURL<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, recipient: string, tokenAddress: string, lnurl: string | LNURLWithdraw, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any> | undefined, options?: FromBTCLNAutoOptions): Promise<FromBTCLNAutoSwap<T[ChainIdentifier]>>;
329
+ /**
330
+ * Creates a trusted Bitcoin Lightning -> Smart chain ({@link SwapType.TRUSTED_FROM_BTCLN}) gas swap
295
331
  *
296
- * @param chainId
297
- * @param signer
298
- * @param amount Amount of native token to receive, in base units
332
+ * @param chainIdentifier Chain identifier string of the destination smart chain
333
+ * @param recipient Recipient address on the destination chain
334
+ * @param amount Amount of native token to receive, in base units
299
335
  * @param trustedIntermediaryOrUrl URL or Intermediary object of the trusted intermediary to use, otherwise uses default
300
- * @throws {Error} If no trusted intermediary specified
336
+ * @throws {Error} If no trusted intermediary specified
301
337
  */
302
- createTrustedLNForGasSwap<C extends ChainIds<T>>(chainId: C, signer: string, amount: bigint, trustedIntermediaryOrUrl?: Intermediary | string): Promise<LnForGasSwap<T[C]>>;
338
+ createTrustedLNForGasSwap<C extends ChainIds<T>>(chainIdentifier: C, recipient: string, amount: bigint, trustedIntermediaryOrUrl?: Intermediary | string): Promise<LnForGasSwap<T[C]>>;
303
339
  /**
304
- * Creates trusted BTC on-chain for Gas swap
340
+ * Creates a trusted Bitcoin -> Smart chain ({@link SwapType.TRUSTED_FROM_BTC}) gas swap
305
341
  *
306
- * @param chainId
307
- * @param signer
308
- * @param amount Amount of native token to receive, in base units
309
- * @param refundAddress Bitcoin refund address, in case the swap fails
310
- * @param trustedIntermediaryOrUrl URL or Intermediary object of the trusted intermediary to use, otherwise uses default
311
- * @throws {Error} If no trusted intermediary specified
342
+ * @param chainIdentifier Chain identifier string of the destination smart chain
343
+ * @param recipient Recipient address on the destination chain
344
+ * @param amount Amount of native token to receive, in base units
345
+ * @param refundAddress Bitcoin refund address, in case the swap fails the funds are refunded here
346
+ * @param trustedIntermediaryOrUrl URL or Intermediary object of the trusted intermediary to use, otherwise uses default
347
+ * @throws {Error} If no trusted intermediary specified
348
+ */
349
+ createTrustedOnchainForGasSwap<C extends ChainIds<T>>(chainIdentifier: C, recipient: string, amount: bigint, refundAddress?: string, trustedIntermediaryOrUrl?: Intermediary | string): Promise<OnchainForGasSwap<T[C]>>;
350
+ /**
351
+ * @internal
312
352
  */
313
- createTrustedOnchainForGasSwap<C extends ChainIds<T>>(chainId: C, signer: string, amount: bigint, refundAddress?: string, trustedIntermediaryOrUrl?: Intermediary | string): Promise<OnchainForGasSwap<T[C]>>;
314
353
  create<C extends ChainIds<T>>(signer: string, srcToken: BtcToken<true>, dstToken: SCToken<C>, amount: bigint, exactIn: boolean, lnurlWithdraw?: string | LNURLWithdraw): Promise<(SupportsSwapType<T[C], SwapType.FROM_BTCLN_AUTO> extends true ? FromBTCLNAutoSwap<T[C]> : FromBTCLNSwap<T[C]>)>;
354
+ /**
355
+ * @internal
356
+ */
315
357
  create<C extends ChainIds<T>>(signer: string, srcToken: BtcToken<false>, dstToken: SCToken<C>, amount: bigint, exactIn: boolean): Promise<(SupportsSwapType<T[C], SwapType.SPV_VAULT_FROM_BTC> extends true ? SpvFromBTCSwap<T[C]> : FromBTCSwap<T[C]>)>;
358
+ /**
359
+ * @internal
360
+ */
316
361
  create<C extends ChainIds<T>>(signer: string, srcToken: SCToken<C>, dstToken: BtcToken<false>, amount: bigint, exactIn: boolean, address: string): Promise<ToBTCSwap<T[C]>>;
362
+ /**
363
+ * @internal
364
+ */
317
365
  create<C extends ChainIds<T>>(signer: string, srcToken: SCToken<C>, dstToken: BtcToken<true>, amount: bigint, exactIn: boolean, lnurlPay: string | LNURLPay): Promise<ToBTCLNSwap<T[C]>>;
366
+ /**
367
+ * @internal
368
+ */
318
369
  create<C extends ChainIds<T>>(signer: string, srcToken: SCToken<C>, dstToken: BtcToken<true>, amount: undefined, exactIn: false, lightningInvoice: string): Promise<ToBTCLNSwap<T[C]>>;
370
+ /**
371
+ * Creates a swap from srcToken to dstToken, of a specific token amount, either specifying input amount (exactIn=true)
372
+ * or output amount (exactIn=false), NOTE: For regular -> BTC-LN (lightning) swaps the passed amount is ignored and
373
+ * invoice's pre-set amount is used instead.
374
+ * @deprecated Use {@link swap} instead
375
+ *
376
+ * @param signer Smartchain (Solana, Starknet, etc.) address of the user
377
+ * @param srcToken Source token of the swap, user pays this token
378
+ * @param dstToken Destination token of the swap, user receives this token
379
+ * @param amount Amount of the swap
380
+ * @param exactIn Whether the amount specified is an input amount (exactIn=true) or an output amount (exactIn=false)
381
+ * @param addressLnurlLightningInvoice Bitcoin on-chain address, lightning invoice, LNURL-pay to pay or
382
+ * LNURL-withdrawal to withdraw money from
383
+ */
319
384
  create<C extends ChainIds<T>>(signer: string, srcToken: Token<C>, dstToken: Token<C>, amount: bigint | undefined, exactIn: boolean, addressLnurlLightningInvoice?: string | LNURLWithdraw | LNURLPay): Promise<ISwap<T[C]>>;
385
+ /**
386
+ * @internal
387
+ */
320
388
  swap<C extends ChainIds<T>>(srcToken: BtcToken<true>, dstToken: SCToken<C>, amount: bigint | string, exactIn: boolean | SwapAmountType, src: undefined | string | LNURLWithdraw, dstSmartchainWallet: string, options?: (SupportsSwapType<T[C], SwapType.FROM_BTCLN_AUTO> extends true ? FromBTCLNAutoOptions : FromBTCLNOptions)): Promise<(SupportsSwapType<T[C], SwapType.FROM_BTCLN_AUTO> extends true ? FromBTCLNAutoSwap<T[C]> : FromBTCLNSwap<T[C]>)>;
389
+ /**
390
+ * @internal
391
+ */
321
392
  swap<C extends ChainIds<T>>(srcToken: BtcToken<false>, dstToken: SCToken<C>, amount: bigint | string, exactIn: boolean | SwapAmountType, src: undefined | string, dstSmartchainWallet: string, options?: (SupportsSwapType<T[C], SwapType.SPV_VAULT_FROM_BTC> extends true ? SpvFromBTCOptions : FromBTCOptions)): Promise<(SupportsSwapType<T[C], SwapType.SPV_VAULT_FROM_BTC> extends true ? SpvFromBTCSwap<T[C]> : FromBTCSwap<T[C]>)>;
393
+ /**
394
+ * @internal
395
+ */
322
396
  swap<C extends ChainIds<T>>(srcToken: SCToken<C>, dstToken: BtcToken<false>, amount: bigint | string, exactIn: boolean | SwapAmountType, src: string, dstAddress: string, options?: ToBTCOptions): Promise<ToBTCSwap<T[C]>>;
323
- swap<C extends ChainIds<T>>(srcToken: SCToken<C>, dstToken: BtcToken<true>, amount: bigint | string, exactIn: boolean | SwapAmountType, src: string, dstLnurlPayOrInvoiceCreateService: string | LNURLPay | InvoiceCreateService, options?: ToBTCLNOptions & {
397
+ /**
398
+ * @internal
399
+ */
400
+ swap<C extends ChainIds<T>>(srcToken: SCToken<C>, dstToken: BtcToken<true>, amount: bigint | string, exactIn: boolean | SwapAmountType, src: string, dstLnurlPayOrInvoiceCreateService: string | LNURLPay | LightningInvoiceCreateService, options?: ToBTCLNOptions & {
324
401
  comment?: string;
325
402
  }): Promise<ToBTCLNSwap<T[C]>>;
403
+ /**
404
+ * @internal
405
+ */
326
406
  swap<C extends ChainIds<T>>(srcToken: SCToken<C>, dstToken: BtcToken<true>, amount: undefined, exactIn: false | SwapAmountType.EXACT_OUT, src: string, dstLightningInvoice: string, options?: ToBTCLNOptions): Promise<ToBTCLNSwap<T[C]>>;
327
- swap<C extends ChainIds<T>>(srcToken: Token<C> | string, dstToken: Token<C> | string, amount: bigint | string | undefined, exactIn: boolean | SwapAmountType, src: undefined | string | LNURLWithdraw, dst: string | LNURLPay | InvoiceCreateService, options?: FromBTCLNOptions | SpvFromBTCOptions | FromBTCOptions | ToBTCOptions | (ToBTCLNOptions & {
407
+ /**
408
+ * Creates a swap from srcToken to dstToken, of a specific token amount, either specifying input amount (if `exactIn=true`)
409
+ * or output amount (if `exactIn=false`), NOTE: For regular Smart chain -> BTC-LN (lightning) swaps the passed amount is ignored and
410
+ * invoice's pre-set amount is used instead, use LNURL-pay links for dynamic amounts
411
+ *
412
+ * @param srcToken Source token of the swap, user pays this token
413
+ * @param dstToken Destination token of the swap, user receives this token
414
+ * @param amount Amount of the swap either in base units as {bigint} or in human readable format (with decimals) as {string}
415
+ * @param exactIn Whether the amount specified is an input amount (exactIn=true) or an output amount (exactIn=false)
416
+ * @param src Source wallet/lnurl-withdraw of the swap
417
+ * @param dst Destination smart chain address, bitcoin on-chain address, lightning invoice, LNURL-pay
418
+ * @param options Options for the swap
419
+ */
420
+ swap<C extends ChainIds<T>>(srcToken: Token<C> | string, dstToken: Token<C> | string, amount: bigint | string | undefined, exactIn: boolean | SwapAmountType, src: undefined | string | LNURLWithdraw, dst: string | LNURLPay | LightningInvoiceCreateService, options?: FromBTCLNOptions | SpvFromBTCOptions | FromBTCOptions | ToBTCOptions | (ToBTCLNOptions & {
328
421
  comment?: string;
329
422
  }) | FromBTCLNAutoOptions): Promise<ISwap<T[C]>>;
330
423
  /**
@@ -368,106 +461,118 @@ export declare class Swapper<T extends MultiChain> extends EventEmitter<{
368
461
  */
369
462
  getSwapById<C extends ChainIds<T>>(id: string, chainId: C, signer?: string): Promise<ISwap<T[C]>>;
370
463
  /**
371
- * Returns the swap with a proper return type, or undefined, if not found, or has wrong type
464
+ * Returns the swap with a proper return type, or `undefined` if not found or has wrong type
372
465
  *
373
- * @param id
374
- * @param chainId
375
- * @param swapType
376
- * @param signer
466
+ * @param id An ID of the swap ({@link ISwap.getId})
467
+ * @param chainId Chain identifier of the smart chain where the swap was initiated
468
+ * @param swapType Type of the swap
469
+ * @param signer An optional required smart chain signer address to fetch the swap for
377
470
  */
378
471
  getTypedSwapById<C extends ChainIds<T>, S extends SwapType>(id: string, chainId: C, swapType: S, signer?: string): Promise<SwapTypeMapping<T[C]>[S] | undefined>;
379
472
  private syncSwapsForChain;
380
473
  /**
381
- * Synchronizes swaps from chain, this is usually ran when SDK is initialized, deletes expired quotes
474
+ * Deletes the swaps from the persistent storage backend. Note that some data (like lightning network
475
+ * amounts and bolt11 invoices) are purely off-chain and can never be recovered later just from
476
+ * on-chain data!
477
+ *
478
+ * @param chainId Optional, to only delete swaps for this smart chain
479
+ * @param signer Optional, to only delete swaps for this smart chain signer (`chainId` param must be
480
+ * set to delete only signer's swaps)
481
+ */
482
+ wipeStorage<C extends ChainIds<T>>(chainId?: C, signer?: string): Promise<void>;
483
+ /**
484
+ * Synchronizes swaps from on-chain, this is ran automatically when SDK is initialized, hence
485
+ * should only be ran manually when `dontCheckPastSwaps=true` is passed in the swapper options,
486
+ * also deletes expired quotes
382
487
  *
383
- * @param chainId
384
- * @param signer
488
+ * @param chainId Optional chain identifier to only run swap sync for a single smart chain
489
+ * @param signer Optional signer to only run swap sync for swaps initiated by this signer
385
490
  */
386
491
  _syncSwaps<C extends ChainIds<T>>(chainId?: C, signer?: string): Promise<void>;
387
492
  /**
388
- * Attempts to recover partial swap data from on-chain historical data
493
+ * Recovers swaps from on-chain historical data.
494
+ *
495
+ * Please note that the recovered swaps might not be complete (i.e. missing amounts or addresses), as some
496
+ * of the swap data is purely off-chain and can never be recovered purely from on-chain data. This
497
+ * functions tries to recover as much swap data as possible.
389
498
  *
390
- * @param chainId
391
- * @param signer
392
- * @param startBlockheight
499
+ * @param chainId Smart chain identifier string to recover the swaps from
500
+ * @param signer Signer address to recover the swaps for
501
+ * @param startBlockheight Optional starting blockheight for swap data recovery, will only check swaps
502
+ * initiated after this blockheight
393
503
  */
394
504
  recoverSwaps<C extends ChainIds<T>>(chainId: C, signer: string, startBlockheight?: number): Promise<ISwap<T[C]>[]>;
395
- getToken(tickerOrAddress: string): Token;
505
+ /**
506
+ * Returns the {@link Token} object for a given token
507
+ *
508
+ * @param tickerOrAddress Token to return the object for, can use multiple formats:
509
+ * - a) token ticker, such as `"BTC"`, `"SOL"`, etc.
510
+ * - b) token ticker prefixed with smart chain identifier, such as `"SOLANA-SOL"`, `"SOLANA-USDC"`, etc.
511
+ * - c) token address
512
+ */
513
+ getToken(tickerOrAddress: string): Token<ChainIds<T>>;
396
514
  /**
397
515
  * Creates a child swapper instance with a given smart chain
398
516
  *
399
- * @param chainIdentifier
517
+ * @param chainIdentifier Smart chain identifier for the created child swapper instance
400
518
  */
401
519
  withChain<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier): SwapperWithChain<T, ChainIdentifier>;
402
520
  /**
403
- * Returns supported smart chains
521
+ * Returns an array of all the supported smart chains
404
522
  */
405
523
  getSmartChains(): ChainIds<T>[];
406
524
  /**
407
525
  * Returns whether the SDK supports a given swap type on a given chain based on currently known LPs
408
526
  *
409
- * @param chainId
410
- * @param swapType
527
+ * @param chainId Smart chain identifier string
528
+ * @param swapType Swap protocol type
411
529
  */
412
530
  supportsSwapType<ChainIdentifier extends ChainIds<T>, Type extends SwapType>(chainId: ChainIdentifier, swapType: Type): SupportsSwapType<T[ChainIdentifier], Type>;
413
531
  /**
414
- * Returns type of the swap based on input and output tokens specified
415
- *
416
- * @param srcToken
417
- * @param dstToken
532
+ * @internal
418
533
  */
419
534
  getSwapType<C extends ChainIds<T>>(srcToken: BtcToken<true>, dstToken: SCToken<C>): (SupportsSwapType<T[C], SwapType.FROM_BTCLN_AUTO> extends true ? SwapType.FROM_BTCLN_AUTO : SwapType.FROM_BTCLN);
535
+ /**
536
+ * @internal
537
+ */
420
538
  getSwapType<C extends ChainIds<T>>(srcToken: BtcToken<false>, dstToken: SCToken<C>): (SupportsSwapType<T[C], SwapType.SPV_VAULT_FROM_BTC> extends true ? SwapType.SPV_VAULT_FROM_BTC : SwapType.FROM_BTC);
539
+ /**
540
+ * @internal
541
+ */
421
542
  getSwapType<C extends ChainIds<T>>(srcToken: SCToken<C>, dstToken: BtcToken<false>): SwapType.TO_BTC;
543
+ /**
544
+ * @internal
545
+ */
422
546
  getSwapType<C extends ChainIds<T>>(srcToken: SCToken<C>, dstToken: BtcToken<true>): SwapType.TO_BTCLN;
547
+ /**
548
+ * Returns type of the swap based on input and output tokens specified
549
+ *
550
+ * @param srcToken Source token
551
+ * @param dstToken Destination token
552
+ */
423
553
  getSwapType<C extends ChainIds<T>>(srcToken: Token<C>, dstToken: Token<C>): SwapType.FROM_BTCLN_AUTO | SwapType.FROM_BTCLN | SwapType.SPV_VAULT_FROM_BTC | SwapType.FROM_BTC | SwapType.TO_BTC | SwapType.TO_BTCLN;
424
- readonly SwapTypeInfo: {
425
- readonly 2: {
426
- readonly requiresInputWallet: true;
427
- readonly requiresOutputWallet: false;
428
- readonly supportsGasDrop: false;
429
- };
430
- readonly 3: {
431
- readonly requiresInputWallet: true;
432
- readonly requiresOutputWallet: false;
433
- readonly supportsGasDrop: false;
434
- };
435
- readonly 0: {
436
- readonly requiresInputWallet: false;
437
- readonly requiresOutputWallet: true;
438
- readonly supportsGasDrop: false;
439
- };
440
- readonly 1: {
441
- readonly requiresInputWallet: false;
442
- readonly requiresOutputWallet: true;
443
- readonly supportsGasDrop: false;
444
- };
445
- readonly 6: {
446
- readonly requiresInputWallet: true;
447
- readonly requiresOutputWallet: false;
448
- readonly supportsGasDrop: true;
449
- };
450
- readonly 7: {
451
- readonly requiresInputWallet: false;
452
- readonly requiresOutputWallet: false;
453
- readonly supportsGasDrop: true;
454
- };
455
- readonly 4: {
456
- readonly requiresInputWallet: false;
457
- readonly requiresOutputWallet: false;
458
- readonly supportsGasDrop: false;
459
- };
460
- readonly 5: {
461
- readonly requiresInputWallet: false;
462
- readonly requiresOutputWallet: false;
463
- readonly supportsGasDrop: false;
464
- };
465
- };
554
+ /**
555
+ * Helper information about various swap protocol and their features:
556
+ * - `requiresInputWallet`: Whether a swap requires a connected wallet on the input chain able to sign
557
+ * arbitrary transaction
558
+ * - `requiresOutputWallet`: Whether a swap requires a connected wallet on the output chain able to sign
559
+ * arbitrary transactions
560
+ * - `supportsGasDrop`: Whether a swap supports the "gas drop" feature, allowing to user to receive a small
561
+ * amount of native token as part of the swap when swapping to smart chains
562
+ *
563
+ * Uses a `Record` type here, use the {@link SwapProtocolInfo} import for a literal readonly type, with
564
+ * pre-filled exact values in the type.
565
+ */
566
+ readonly SwapTypeInfo: Record<SwapType, {
567
+ requiresInputWallet: boolean;
568
+ requiresOutputWallet: boolean;
569
+ supportsGasDrop: boolean;
570
+ }>;
466
571
  /**
467
572
  * Returns minimum/maximum limits for inputs and outputs for a swap between given tokens
468
573
  *
469
- * @param srcToken
470
- * @param dstToken
574
+ * @param srcToken Source token
575
+ * @param dstToken Destination token
471
576
  */
472
577
  getSwapLimits<C extends ChainIds<T>, A extends Token<C>, B extends Token<C>>(srcToken: A, dstToken: B): {
473
578
  input: {
@@ -480,7 +585,7 @@ export declare class Swapper<T extends MultiChain> extends EventEmitter<{
480
585
  };
481
586
  };
482
587
  /**
483
- * Returns supported tokens for a given direction
588
+ * Returns an array of supported tokens either on the input or on the output of a swap
484
589
  *
485
590
  * @param input Whether to return input tokens or output tokens
486
591
  */
@@ -494,7 +599,7 @@ export declare class Swapper<T extends MultiChain> extends EventEmitter<{
494
599
  /**
495
600
  * Returns the set of supported token addresses by all the intermediaries we know of offering a specific swapType service
496
601
  *
497
- * @param chainIdentifier
602
+ * @param chainIdentifier Chain identifier string
498
603
  * @param swapType Specific swap type for which to obtain supported tokens
499
604
  */
500
605
  private getSupportedTokenAddresses;
@@ -503,29 +608,5 @@ export declare class Swapper<T extends MultiChain> extends EventEmitter<{
503
608
  * or tokens that you can swap from (if input=false) to a given token
504
609
  */
505
610
  getSwapCounterTokens(token: Token, input: boolean): Token[];
506
- /**
507
- * Returns swap bounds (minimums & maximums) for different swap types & tokens
508
- * @deprecated Use getSwapLimits() instead!
509
- */
510
- getSwapBounds<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier): SwapBounds;
511
- getSwapBounds(): MultichainSwapBounds;
512
- /**
513
- * Returns maximum possible swap amount
514
- * @deprecated Use getSwapLimits() instead!
515
- *
516
- * @param chainIdentifier
517
- * @param type Type of the swap
518
- * @param token Token of the swap
519
- */
520
- getMaximum<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, type: SwapType, token: string): bigint;
521
- /**
522
- * Returns minimum possible swap amount
523
- * @deprecated Use getSwapLimits() instead!
524
- *
525
- * @param chainIdentifier
526
- * @param type Type of swap
527
- * @param token Token of the swap
528
- */
529
- getMinimum<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, type: SwapType, token: string): bigint;
530
611
  }
531
612
  export {};