@atomiqlabs/sdk 8.6.4 → 8.6.6

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 (239) hide show
  1. package/dist/SmartChainAssets.d.ts +181 -181
  2. package/dist/SmartChainAssets.js +181 -181
  3. package/dist/bitcoin/coinselect2/accumulative.d.ts +6 -6
  4. package/dist/bitcoin/coinselect2/accumulative.js +51 -52
  5. package/dist/bitcoin/coinselect2/blackjack.d.ts +6 -6
  6. package/dist/bitcoin/coinselect2/blackjack.js +37 -38
  7. package/dist/bitcoin/coinselect2/index.d.ts +17 -19
  8. package/dist/bitcoin/coinselect2/index.js +69 -69
  9. package/dist/bitcoin/coinselect2/utils.d.ts +75 -77
  10. package/dist/bitcoin/coinselect2/utils.js +123 -123
  11. package/dist/bitcoin/wallet/BitcoinWallet.d.ts +128 -130
  12. package/dist/bitcoin/wallet/BitcoinWallet.js +322 -322
  13. package/dist/bitcoin/wallet/IBitcoinWallet.d.ts +78 -78
  14. package/dist/bitcoin/wallet/IBitcoinWallet.js +20 -21
  15. package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.d.ts +99 -101
  16. package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.js +176 -176
  17. package/dist/enums/FeeType.d.ts +15 -15
  18. package/dist/enums/FeeType.js +19 -19
  19. package/dist/enums/SwapAmountType.d.ts +15 -15
  20. package/dist/enums/SwapAmountType.js +19 -19
  21. package/dist/enums/SwapDirection.d.ts +15 -15
  22. package/dist/enums/SwapDirection.js +19 -19
  23. package/dist/enums/SwapSide.d.ts +15 -15
  24. package/dist/enums/SwapSide.js +19 -19
  25. package/dist/enums/SwapType.d.ts +75 -75
  26. package/dist/enums/SwapType.js +79 -79
  27. package/dist/errors/IntermediaryError.d.ts +13 -13
  28. package/dist/errors/IntermediaryError.js +27 -27
  29. package/dist/errors/RequestError.d.ts +32 -32
  30. package/dist/errors/RequestError.js +54 -54
  31. package/dist/errors/UserError.d.ts +8 -8
  32. package/dist/errors/UserError.js +16 -16
  33. package/dist/events/UnifiedSwapEventListener.d.ts +23 -23
  34. package/dist/events/UnifiedSwapEventListener.js +130 -130
  35. package/dist/http/HttpUtils.d.ts +27 -27
  36. package/dist/http/HttpUtils.js +90 -91
  37. package/dist/http/paramcoders/IParamReader.d.ts +8 -8
  38. package/dist/http/paramcoders/IParamReader.js +2 -2
  39. package/dist/http/paramcoders/ParamDecoder.d.ts +42 -44
  40. package/dist/http/paramcoders/ParamDecoder.js +137 -137
  41. package/dist/http/paramcoders/ParamEncoder.d.ts +18 -20
  42. package/dist/http/paramcoders/ParamEncoder.js +36 -36
  43. package/dist/http/paramcoders/SchemaVerifier.d.ts +26 -26
  44. package/dist/http/paramcoders/SchemaVerifier.js +145 -145
  45. package/dist/http/paramcoders/client/ResponseParamDecoder.d.ts +11 -11
  46. package/dist/http/paramcoders/client/ResponseParamDecoder.js +57 -57
  47. package/dist/http/paramcoders/client/StreamParamEncoder.d.ts +11 -13
  48. package/dist/http/paramcoders/client/StreamParamEncoder.js +26 -26
  49. package/dist/http/paramcoders/client/StreamingFetchPromise.d.ts +16 -16
  50. package/dist/http/paramcoders/client/StreamingFetchPromise.js +173 -174
  51. package/dist/index.d.ts +85 -85
  52. package/dist/index.js +158 -158
  53. package/dist/intermediaries/Intermediary.d.ts +157 -157
  54. package/dist/intermediaries/Intermediary.js +142 -142
  55. package/dist/intermediaries/IntermediaryDiscovery.d.ts +198 -199
  56. package/dist/intermediaries/IntermediaryDiscovery.js +406 -406
  57. package/dist/intermediaries/apis/IntermediaryAPI.d.ts +437 -438
  58. package/dist/intermediaries/apis/IntermediaryAPI.js +603 -602
  59. package/dist/intermediaries/apis/TrustedIntermediaryAPI.d.ts +155 -155
  60. package/dist/intermediaries/apis/TrustedIntermediaryAPI.js +137 -137
  61. package/dist/lnurl/LNURL.d.ts +102 -102
  62. package/dist/lnurl/LNURL.js +321 -321
  63. package/dist/prices/RedundantSwapPrice.d.ts +110 -110
  64. package/dist/prices/RedundantSwapPrice.js +222 -222
  65. package/dist/prices/SingleSwapPrice.d.ts +34 -34
  66. package/dist/prices/SingleSwapPrice.js +44 -44
  67. package/dist/prices/SwapPriceWithChain.d.ts +107 -107
  68. package/dist/prices/SwapPriceWithChain.js +128 -128
  69. package/dist/prices/abstract/ICachedSwapPrice.d.ts +28 -28
  70. package/dist/prices/abstract/ICachedSwapPrice.js +62 -62
  71. package/dist/prices/abstract/IPriceProvider.d.ts +81 -81
  72. package/dist/prices/abstract/IPriceProvider.js +74 -74
  73. package/dist/prices/abstract/ISwapPrice.d.ts +168 -166
  74. package/dist/prices/abstract/ISwapPrice.js +279 -267
  75. package/dist/prices/providers/BinancePriceProvider.d.ts +23 -23
  76. package/dist/prices/providers/BinancePriceProvider.js +30 -30
  77. package/dist/prices/providers/CoinGeckoPriceProvider.d.ts +23 -23
  78. package/dist/prices/providers/CoinGeckoPriceProvider.js +29 -29
  79. package/dist/prices/providers/CoinPaprikaPriceProvider.d.ts +25 -25
  80. package/dist/prices/providers/CoinPaprikaPriceProvider.js +29 -29
  81. package/dist/prices/providers/CustomPriceProvider.d.ts +24 -24
  82. package/dist/prices/providers/CustomPriceProvider.js +35 -35
  83. package/dist/prices/providers/KrakenPriceProvider.d.ts +38 -38
  84. package/dist/prices/providers/KrakenPriceProvider.js +45 -45
  85. package/dist/prices/providers/OKXPriceProvider.d.ts +34 -34
  86. package/dist/prices/providers/OKXPriceProvider.js +29 -29
  87. package/dist/prices/providers/abstract/ExchangePriceProvider.d.ts +17 -17
  88. package/dist/prices/providers/abstract/ExchangePriceProvider.js +21 -21
  89. package/dist/prices/providers/abstract/HttpPriceProvider.d.ts +7 -7
  90. package/dist/prices/providers/abstract/HttpPriceProvider.js +12 -12
  91. package/dist/storage/IUnifiedStorage.d.ts +85 -85
  92. package/dist/storage/IUnifiedStorage.js +2 -2
  93. package/dist/storage/UnifiedSwapStorage.d.ts +114 -114
  94. package/dist/storage/UnifiedSwapStorage.js +116 -116
  95. package/dist/storage-browser/IndexedDBUnifiedStorage.d.ts +63 -63
  96. package/dist/storage-browser/IndexedDBUnifiedStorage.js +298 -298
  97. package/dist/storage-browser/LocalStorageManager.d.ts +49 -49
  98. package/dist/storage-browser/LocalStorageManager.js +93 -93
  99. package/dist/swapper/Swapper.d.ts +686 -687
  100. package/dist/swapper/Swapper.js +1603 -1603
  101. package/dist/swapper/SwapperFactory.d.ts +135 -135
  102. package/dist/swapper/SwapperFactory.js +162 -162
  103. package/dist/swapper/SwapperUtils.d.ts +200 -200
  104. package/dist/swapper/SwapperUtils.js +467 -467
  105. package/dist/swapper/SwapperWithChain.d.ts +404 -404
  106. package/dist/swapper/SwapperWithChain.js +469 -469
  107. package/dist/swapper/SwapperWithSigner.d.ts +322 -322
  108. package/dist/swapper/SwapperWithSigner.js +318 -318
  109. package/dist/swaps/IAddressSwap.d.ts +22 -22
  110. package/dist/swaps/IAddressSwap.js +13 -14
  111. package/dist/swaps/IBTCWalletSwap.d.ts +73 -73
  112. package/dist/swaps/IBTCWalletSwap.js +17 -18
  113. package/dist/swaps/IClaimableSwap.d.ts +49 -49
  114. package/dist/swaps/IClaimableSwap.js +14 -15
  115. package/dist/swaps/IClaimableSwapWrapper.d.ts +15 -15
  116. package/dist/swaps/IClaimableSwapWrapper.js +2 -2
  117. package/dist/swaps/IRefundableSwap.d.ts +43 -43
  118. package/dist/swaps/IRefundableSwap.js +13 -14
  119. package/dist/swaps/ISwap.d.ts +386 -387
  120. package/dist/swaps/ISwap.js +346 -341
  121. package/dist/swaps/ISwapWithGasDrop.d.ts +21 -21
  122. package/dist/swaps/ISwapWithGasDrop.js +11 -12
  123. package/dist/swaps/ISwapWrapper.d.ts +283 -284
  124. package/dist/swaps/ISwapWrapper.js +353 -353
  125. package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.d.ts +98 -98
  126. package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.js +126 -126
  127. package/dist/swaps/escrow_swaps/IEscrowSwap.d.ts +133 -135
  128. package/dist/swaps/escrow_swaps/IEscrowSwap.js +169 -169
  129. package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.d.ts +114 -115
  130. package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.js +134 -134
  131. package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.d.ts +98 -101
  132. package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.js +130 -130
  133. package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.d.ts +162 -162
  134. package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.js +190 -190
  135. package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.d.ts +58 -58
  136. package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.js +78 -78
  137. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.d.ts +529 -531
  138. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.js +1285 -1285
  139. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.d.ts +181 -184
  140. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.js +418 -417
  141. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.d.ts +581 -583
  142. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.js +1371 -1371
  143. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.d.ts +225 -228
  144. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.js +506 -506
  145. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.d.ts +458 -458
  146. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.js +1126 -1126
  147. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.d.ts +190 -191
  148. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.js +378 -377
  149. package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.d.ts +403 -403
  150. package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.js +924 -924
  151. package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.d.ts +62 -62
  152. package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.js +112 -112
  153. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.d.ts +125 -127
  154. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.js +256 -256
  155. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.d.ts +241 -242
  156. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.js +520 -520
  157. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.d.ts +73 -73
  158. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.js +155 -155
  159. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.d.ts +127 -128
  160. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.js +278 -278
  161. package/dist/swaps/spv_swaps/SpvFromBTCSwap.d.ts +630 -630
  162. package/dist/swaps/spv_swaps/SpvFromBTCSwap.js +1443 -1443
  163. package/dist/swaps/spv_swaps/SpvFromBTCWrapper.d.ts +213 -207
  164. package/dist/swaps/spv_swaps/SpvFromBTCWrapper.js +756 -755
  165. package/dist/swaps/trusted/ln/LnForGasSwap.d.ts +261 -261
  166. package/dist/swaps/trusted/ln/LnForGasSwap.js +511 -511
  167. package/dist/swaps/trusted/ln/LnForGasWrapper.d.ts +40 -40
  168. package/dist/swaps/trusted/ln/LnForGasWrapper.js +82 -82
  169. package/dist/swaps/trusted/onchain/OnchainForGasSwap.d.ts +342 -342
  170. package/dist/swaps/trusted/onchain/OnchainForGasSwap.js +715 -715
  171. package/dist/swaps/trusted/onchain/OnchainForGasWrapper.d.ts +68 -69
  172. package/dist/swaps/trusted/onchain/OnchainForGasWrapper.js +92 -92
  173. package/dist/types/AmountData.d.ts +10 -10
  174. package/dist/types/AmountData.js +2 -2
  175. package/dist/types/CustomPriceFunction.d.ts +11 -11
  176. package/dist/types/CustomPriceFunction.js +2 -2
  177. package/dist/types/PriceInfoType.d.ts +28 -28
  178. package/dist/types/PriceInfoType.js +56 -57
  179. package/dist/types/SwapExecutionAction.d.ts +88 -88
  180. package/dist/types/SwapExecutionAction.js +2 -2
  181. package/dist/types/SwapStateInfo.d.ts +5 -5
  182. package/dist/types/SwapStateInfo.js +2 -2
  183. package/dist/types/SwapWithSigner.d.ts +17 -17
  184. package/dist/types/SwapWithSigner.js +42 -43
  185. package/dist/types/Token.d.ts +99 -99
  186. package/dist/types/Token.js +76 -76
  187. package/dist/types/TokenAmount.d.ts +69 -69
  188. package/dist/types/TokenAmount.js +59 -60
  189. package/dist/types/fees/Fee.d.ts +50 -50
  190. package/dist/types/fees/Fee.js +2 -2
  191. package/dist/types/fees/FeeBreakdown.d.ts +11 -11
  192. package/dist/types/fees/FeeBreakdown.js +2 -2
  193. package/dist/types/fees/PercentagePPM.d.ts +17 -17
  194. package/dist/types/fees/PercentagePPM.js +17 -18
  195. package/dist/types/lnurl/LNURLPay.d.ts +61 -61
  196. package/dist/types/lnurl/LNURLPay.js +30 -31
  197. package/dist/types/lnurl/LNURLWithdraw.d.ts +48 -48
  198. package/dist/types/lnurl/LNURLWithdraw.js +26 -27
  199. package/dist/types/wallets/LightningInvoiceCreateService.d.ts +24 -24
  200. package/dist/types/wallets/LightningInvoiceCreateService.js +14 -15
  201. package/dist/types/wallets/MinimalBitcoinWalletInterface.d.ts +23 -23
  202. package/dist/types/wallets/MinimalBitcoinWalletInterface.js +2 -2
  203. package/dist/types/wallets/MinimalLightningNetworkWalletInterface.d.ts +9 -9
  204. package/dist/types/wallets/MinimalLightningNetworkWalletInterface.js +2 -2
  205. package/dist/utils/AutomaticClockDriftCorrection.d.ts +1 -1
  206. package/dist/utils/AutomaticClockDriftCorrection.js +69 -70
  207. package/dist/utils/BitcoinUtils.d.ts +12 -14
  208. package/dist/utils/BitcoinUtils.js +101 -102
  209. package/dist/utils/BitcoinWalletUtils.d.ts +7 -7
  210. package/dist/utils/BitcoinWalletUtils.js +13 -14
  211. package/dist/utils/Logger.d.ts +7 -7
  212. package/dist/utils/Logger.js +11 -12
  213. package/dist/utils/RetryUtils.d.ts +22 -22
  214. package/dist/utils/RetryUtils.js +66 -67
  215. package/dist/utils/SwapUtils.d.ts +88 -88
  216. package/dist/utils/SwapUtils.js +72 -72
  217. package/dist/utils/TimeoutUtils.d.ts +17 -17
  218. package/dist/utils/TimeoutUtils.js +54 -55
  219. package/dist/utils/TokenUtils.d.ts +19 -19
  220. package/dist/utils/TokenUtils.js +36 -37
  221. package/dist/utils/TypeUtils.d.ts +7 -7
  222. package/dist/utils/TypeUtils.js +2 -2
  223. package/dist/utils/Utils.d.ts +56 -58
  224. package/dist/utils/Utils.js +193 -194
  225. package/package.json +1 -1
  226. package/src/intermediaries/apis/IntermediaryAPI.ts +4 -2
  227. package/src/prices/abstract/ISwapPrice.ts +19 -6
  228. package/src/swaps/ISwap.ts +17 -6
  229. package/src/swaps/ISwapWrapper.ts +4 -3
  230. package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.ts +4 -2
  231. package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.ts +4 -1
  232. package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.ts +2 -2
  233. package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.ts +4 -2
  234. package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.ts +6 -6
  235. package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.ts +5 -5
  236. package/src/swaps/spv_swaps/SpvFromBTCSwap.ts +4 -1
  237. package/src/swaps/spv_swaps/SpvFromBTCWrapper.ts +10 -2
  238. package/src/swaps/trusted/ln/LnForGasWrapper.ts +1 -1
  239. package/src/swaps/trusted/onchain/OnchainForGasWrapper.ts +1 -1
@@ -1,404 +1,404 @@
1
- import { IntermediaryDiscovery } from "../intermediaries/IntermediaryDiscovery";
2
- import { SwapType } from "../enums/SwapType";
3
- import { LnForGasSwap } from "../swaps/trusted/ln/LnForGasSwap";
4
- import { ISwap } from "../swaps/ISwap";
5
- import { IToBTCSwap } from "../swaps/escrow_swaps/tobtc/IToBTCSwap";
6
- import { ChainIds, MultiChain, SupportsSwapType, Swapper } from "./Swapper";
7
- import { FromBTCLNSwap } from "../swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap";
8
- import { FromBTCSwap } from "../swaps/escrow_swaps/frombtc/onchain/FromBTCSwap";
9
- import { ToBTCLNSwap } from "../swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap";
10
- import { ToBTCSwap } from "../swaps/escrow_swaps/tobtc/onchain/ToBTCSwap";
11
- import { SwapPriceWithChain } from "../prices/SwapPriceWithChain";
12
- import { ToBTCOptions } from "../swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper";
13
- import { ToBTCLNOptions } from "../swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper";
14
- import { FromBTCOptions } from "../swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper";
15
- import { FromBTCLNOptions } from "../swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper";
16
- import { SwapperUtils } from "./SwapperUtils";
17
- import { SpvFromBTCOptions } from "../swaps/spv_swaps/SpvFromBTCWrapper";
18
- import { SpvFromBTCSwap } from "../swaps/spv_swaps/SpvFromBTCSwap";
19
- import { OnchainForGasSwap } from "../swaps/trusted/onchain/OnchainForGasSwap";
20
- import { SwapperWithSigner } from "./SwapperWithSigner";
21
- import { FromBTCLNAutoOptions } from "../swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper";
22
- import { FromBTCLNAutoSwap } from "../swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap";
23
- import { SwapAmountType } from "../enums/SwapAmountType";
24
- import { IClaimableSwap } from "../swaps/IClaimableSwap";
25
- import { TokenAmount } from "../types/TokenAmount";
26
- import { BtcToken, SCToken, Token } from "../types/Token";
27
- import { LNURLWithdraw } from "../types/lnurl/LNURLWithdraw";
28
- import { LNURLPay } from "../types/lnurl/LNURLPay";
29
- import { LightningInvoiceCreateService } from "../types/wallets/LightningInvoiceCreateService";
30
- import { Intermediary } from "../intermediaries/Intermediary";
31
- import { SwapTypeMapping } from "../utils/SwapUtils";
32
- import { SwapSide } from "../enums/SwapSide";
33
- /**
34
- * Chain-specific wrapper around Swapper for a particular blockchain
35
- *
36
- * @category Core
37
- */
38
- export declare class SwapperWithChain<T extends MultiChain, ChainIdentifier extends ChainIds<T>> {
39
- /**
40
- * Underlying multichain swapper instance
41
- */
42
- private readonly swapper;
43
- /**
44
- * Smart chain identifier of this swapper with chain
45
- */
46
- readonly chainIdentifier: ChainIdentifier;
47
- /**
48
- * Pricing API used by the SDK
49
- */
50
- readonly prices: SwapPriceWithChain<T, ChainIdentifier>;
51
- /**
52
- * Intermediary discovery instance
53
- */
54
- get intermediaryDiscovery(): IntermediaryDiscovery;
55
- /**
56
- * Miscellaneous utility functions
57
- */
58
- get Utils(): SwapperUtils<T>;
59
- /**
60
- * Helper information about various swap protocol and their features:
61
- * - `requiresInputWallet`: Whether a swap requires a connected wallet on the input chain able to sign
62
- * arbitrary transaction
63
- * - `requiresOutputWallet`: Whether a swap requires a connected wallet on the output chain able to sign
64
- * arbitrary transactions
65
- * - `supportsGasDrop`: Whether a swap supports the "gas drop" feature, allowing to user to receive a small
66
- * amount of native token as part of the swap when swapping to smart chains
67
- *
68
- * Uses a `Record` type here, use the {@link SwapProtocolInfo} import for a literal readonly type, with
69
- * pre-filled exact values in the type.
70
- */
71
- get SwapTypeInfo(): Record<SwapType, {
72
- requiresInputWallet: boolean;
73
- requiresOutputWallet: boolean;
74
- supportsGasDrop: boolean;
75
- }>;
76
- constructor(swapper: Swapper<T>, chainIdentifier: ChainIdentifier);
77
- /**
78
- * Creates Smart chain -> Bitcoin ({@link SwapType.TO_BTC}) swap
79
- *
80
- * @param signer Signer's address on the source chain
81
- * @param tokenAddress Token address to pay with
82
- * @param address Recipient's bitcoin address
83
- * @param amount Amount to send in token based units (if `exactIn=true`) or receive in satoshis (if `exactIn=false`)
84
- * @param exactIn Whether to use exact in instead of exact out
85
- * @param additionalParams Additional parameters sent to the LP when creating the swap
86
- * @param options Additional options for the swap
87
- */
88
- createToBTCSwap(signer: string, tokenAddress: string, address: string, amount: bigint, exactIn?: boolean, additionalParams?: Record<string, any>, options?: ToBTCOptions): Promise<ToBTCSwap<T[ChainIdentifier]>>;
89
- /**
90
- * Creates Smart chain -> Bitcoin Lightning ({@link SwapType.TO_BTCLN}) swap
91
- *
92
- * @param signer Signer's address on the source chain
93
- * @param tokenAddress Token address to pay with
94
- * @param paymentRequest BOLT11 lightning network invoice to be paid (needs to have a fixed amount), and the swap
95
- * amount is taken from this fixed amount, hence only exact output swaps are supported
96
- * @param additionalParams Additional parameters sent to the LP when creating the swap
97
- * @param options Additional options for the swap
98
- */
99
- createToBTCLNSwap(signer: string, tokenAddress: string, paymentRequest: string, additionalParams?: Record<string, any>, options?: ToBTCLNOptions & {
100
- comment?: string;
101
- }): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
102
- /**
103
- * Creates Smart chain -> Bitcoin Lightning ({@link SwapType.TO_BTCLN}) swap via LNURL-pay link
104
- *
105
- * @param signer Signer's address on the source chain
106
- * @param tokenAddress Token address to pay with
107
- * @param lnurlPay LNURL-pay link to use for the payment
108
- * @param amount Amount to send in token based units (if `exactIn=true`) or receive in satoshis (if `exactIn=false`)
109
- * @param exactIn Whether to do an exact in swap instead of exact out
110
- * @param additionalParams Additional parameters sent to the LP when creating the swap
111
- * @param options Additional options for the swap
112
- */
113
- createToBTCLNSwapViaLNURL(signer: string, tokenAddress: string, lnurlPay: string | LNURLPay, amount: bigint, exactIn?: boolean, additionalParams?: Record<string, any>, options?: ToBTCLNOptions): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
114
- /**
115
- * Creates Smart chain -> Bitcoin Lightning ({@link SwapType.TO_BTCLN}) swap via {@link LightningInvoiceCreateService}
116
- *
117
- * @param signer Signer's address on the source chain
118
- * @param tokenAddress Token address to pay with
119
- * @param service Invoice create service object which facilitates the creation of fixed amount LN invoices
120
- * @param amount Amount to send in token based units (if `exactIn=true`) or receive in satoshis (if `exactIn=false`)
121
- * @param exactIn Whether to do an exact in swap instead of exact out
122
- * @param additionalParams Additional parameters sent to the LP when creating the swap
123
- * @param options Additional options for the swap
124
- */
125
- createToBTCLNSwapViaInvoiceCreateService(signer: string, tokenAddress: string, service: LightningInvoiceCreateService, amount: bigint, exactIn?: boolean, additionalParams?: Record<string, any>, options?: ToBTCLNOptions): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
126
- /**
127
- * Creates Bitcoin -> Smart chain ({@link SwapType.SPV_VAULT_FROM_BTC}) swap
128
- *
129
- * @param recipient Recipient address on the destination chain
130
- * @param tokenAddress Token address to receive
131
- * @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
132
- * @param exactOut Whether to use a exact out instead of exact in
133
- * @param additionalParams Additional parameters sent to the LP when creating the swap
134
- * @param options Additional options for the swap
135
- */
136
- createFromBTCSwapNew(recipient: string, tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any>, options?: SpvFromBTCOptions): Promise<SpvFromBTCSwap<T[ChainIdentifier]>>;
137
- /**
138
- * Creates LEGACY Bitcoin -> Smart chain ({@link SwapType.FROM_BTC}) swap
139
- *
140
- * @param recipient Recipient address on the destination chain
141
- * @param tokenAddress Token address to receive
142
- * @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
143
- * @param exactOut Whether to use a exact out instead of exact in
144
- * @param additionalParams Additional parameters sent to the LP when creating the swap
145
- * @param options Additional options for the swap
146
- */
147
- createFromBTCSwap(recipient: string, tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any>, options?: FromBTCOptions): Promise<FromBTCSwap<T[ChainIdentifier]>>;
148
- /**
149
- * Creates LEGACY Bitcoin Lightning -> Smart chain ({@link SwapType.FROM_BTCLN}) swap
150
- *
151
- * @param recipient Recipient address on the destination chain
152
- * @param tokenAddress Token address to receive
153
- * @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
154
- * @param exactOut Whether to use a exact out instead of exact in
155
- * @param additionalParams Additional parameters sent to the LP when creating the swap
156
- * @param options Additional options for the swap
157
- */
158
- createFromBTCLNSwap(recipient: string, tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any>, options?: FromBTCLNOptions): Promise<FromBTCLNSwap<T[ChainIdentifier]>>;
159
- /**
160
- * Creates LEGACY Bitcoin Lightning -> Smart chain ({@link SwapType.FROM_BTCLN}) swap, withdrawing from
161
- * an LNURL-withdraw link
162
- *
163
- * @param recipient Recipient address on the destination chain
164
- * @param tokenAddress Token address to receive
165
- * @param lnurl LNURL-withdraw link to pull the funds from
166
- * @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
167
- * @param exactOut Whether to use a exact out instead of exact in
168
- * @param additionalParams Additional parameters sent to the LP when creating the swap
169
- */
170
- createFromBTCLNSwapViaLNURL(recipient: string, tokenAddress: string, lnurl: string | LNURLWithdraw, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any>): Promise<FromBTCLNSwap<T[ChainIdentifier]>>;
171
- /**
172
- * Creates Bitcoin Lightning -> Smart chain ({@link SwapType.FROM_BTCLN_AUTO}) swap
173
- *
174
- * @param recipient Recipient address on the destination chain
175
- * @param tokenAddress Token address to receive
176
- * @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
177
- * @param exactOut Whether to use a exact out instead of exact in
178
- * @param additionalParams Additional parameters sent to the LP when creating the swap
179
- * @param options Additional options for the swap
180
- */
181
- createFromBTCLNSwapNew(recipient: string, tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any>, options?: FromBTCLNAutoOptions): Promise<FromBTCLNAutoSwap<T[ChainIdentifier]>>;
182
- /**
183
- * Creates Bitcoin Lightning -> Smart chain ({@link SwapType.FROM_BTCLN_AUTO}) swap, withdrawing from
184
- * an LNURL-withdraw link
185
- *
186
- * @param recipient Recipient address on the destination chain
187
- * @param tokenAddress Token address to receive
188
- * @param lnurl LNURL-withdraw link to pull the funds from
189
- * @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
190
- * @param exactOut Whether to use a exact out instead of exact in
191
- * @param additionalParams Additional parameters sent to the LP when creating the swap
192
- * @param options Additional options for the swap
193
- */
194
- createFromBTCLNSwapNewViaLNURL(recipient: string, tokenAddress: string, lnurl: string | LNURLWithdraw, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any>, options?: FromBTCLNAutoOptions): Promise<FromBTCLNAutoSwap<T[ChainIdentifier]>>;
195
- /**
196
- * Creates a trusted Bitcoin Lightning -> Smart chain ({@link SwapType.TRUSTED_FROM_BTCLN}) gas swap
197
- *
198
- * @param recipient Recipient address on the destination chain
199
- * @param amount Amount of native token to receive, in base units
200
- * @param trustedIntermediaryOrUrl URL or Intermediary object of the trusted intermediary to use, otherwise uses default
201
- * @throws {Error} If no trusted intermediary specified
202
- */
203
- createTrustedLNForGasSwap(recipient: string, amount: bigint, trustedIntermediaryOrUrl?: Intermediary | string): Promise<LnForGasSwap<T[ChainIdentifier]>>;
204
- /**
205
- * Creates a trusted Bitcoin -> Smart chain ({@link SwapType.TRUSTED_FROM_BTC}) gas swap
206
- *
207
- * @param recipient Recipient address on the destination chain
208
- * @param amount Amount of native token to receive, in base units
209
- * @param refundAddress Bitcoin refund address, in case the swap fails the funds are refunded here
210
- * @param trustedIntermediaryOrUrl URL or Intermediary object of the trusted intermediary to use, otherwise uses default
211
- * @throws {Error} If no trusted intermediary specified
212
- */
213
- createTrustedOnchainForGasSwap(recipient: string, amount: bigint, refundAddress?: string, trustedIntermediaryOrUrl?: Intermediary | string): Promise<OnchainForGasSwap<T[ChainIdentifier]>>;
214
- /**
215
- * @internal
216
- */
217
- create(signer: string, srcToken: BtcToken<true>, dstToken: SCToken<ChainIdentifier>, amount: bigint, exactIn: boolean, lnurlWithdraw?: string | LNURLWithdraw): Promise<SupportsSwapType<T[ChainIdentifier], SwapType.FROM_BTCLN_AUTO> extends true ? FromBTCLNAutoSwap<T[ChainIdentifier]> : FromBTCLNSwap<T[ChainIdentifier]>>;
218
- /**
219
- * @internal
220
- */
221
- create(signer: string, srcToken: BtcToken<false>, dstToken: SCToken<ChainIdentifier>, amount: bigint, exactIn: boolean): Promise<(SupportsSwapType<T[ChainIdentifier], SwapType.SPV_VAULT_FROM_BTC> extends true ? SpvFromBTCSwap<T[ChainIdentifier]> : FromBTCSwap<T[ChainIdentifier]>)>;
222
- /**
223
- * @internal
224
- */
225
- create(signer: string, srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<false>, amount: bigint, exactIn: boolean, address: string): Promise<ToBTCSwap<T[ChainIdentifier]>>;
226
- /**
227
- * @internal
228
- */
229
- create(signer: string, srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<true>, amount: bigint, exactIn: boolean, lnurlPay: string | LNURLPay): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
230
- /**
231
- * Creates a swap from srcToken to dstToken, of a specific token amount, either specifying input amount (exactIn=true)
232
- * or output amount (exactIn=false), NOTE: For regular -> BTC-LN (lightning) swaps the passed amount is ignored and
233
- * invoice's pre-set amount is used instead.
234
- * @deprecated Use swap() instead
235
- *
236
- * @param signer Smartchain (Solana, Starknet, etc.) address of the user
237
- * @param srcToken Source token of the swap, user pays this token
238
- * @param dstToken Destination token of the swap, user receives this token
239
- * @param amount Amount of the swap
240
- * @param exactIn Whether the amount specified is an input amount (exactIn=true) or an output amount (exactIn=false)
241
- * @param addressLnurlLightningInvoice Bitcoin on-chain address, lightning invoice, LNURL-pay to pay or
242
- * LNURL-withdrawal to withdraw money from
243
- */
244
- create(signer: string, srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<true>, amount: undefined, exactIn: false, addressLnurlLightningInvoice: string): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
245
- /**
246
- * @internal
247
- */
248
- swap(srcToken: BtcToken<true> | "BTCLN" | "BTC-LN" | "LIGHTNING-BTC", dstToken: SCToken<ChainIdentifier>, amount: bigint | string, exactIn: boolean | SwapAmountType, src: undefined | string | LNURLWithdraw, dstSmartchainWallet: string, options?: (SupportsSwapType<T[ChainIdentifier], SwapType.FROM_BTCLN_AUTO> extends true ? FromBTCLNAutoOptions : FromBTCLNOptions)): Promise<SupportsSwapType<T[ChainIdentifier], SwapType.FROM_BTCLN_AUTO> extends true ? FromBTCLNAutoSwap<T[ChainIdentifier]> : FromBTCLNSwap<T[ChainIdentifier]>>;
249
- /**
250
- * @internal
251
- */
252
- swap(srcToken: BtcToken<false> | "BTC" | "BITCOIN-BTC", dstToken: SCToken<ChainIdentifier>, amount: bigint | string, exactIn: boolean | SwapAmountType, src: undefined | string, dstSmartchainWallet: string, options?: (SupportsSwapType<T[ChainIdentifier], SwapType.SPV_VAULT_FROM_BTC> extends true ? SpvFromBTCOptions : FromBTCOptions)): Promise<(SupportsSwapType<T[ChainIdentifier], SwapType.SPV_VAULT_FROM_BTC> extends true ? SpvFromBTCSwap<T[ChainIdentifier]> : FromBTCSwap<T[ChainIdentifier]>)>;
253
- /**
254
- * @internal
255
- */
256
- swap(srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<false> | "BTC" | "BITCOIN-BTC", amount: bigint | string, exactIn: boolean | SwapAmountType, src: string, dstAddress: string, options?: ToBTCOptions): Promise<ToBTCSwap<T[ChainIdentifier]>>;
257
- /**
258
- * @internal
259
- */
260
- swap(srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<true> | "BTCLN" | "BTC-LN" | "LIGHTNING-BTC", amount: bigint | string, exactIn: boolean | SwapAmountType, src: string, dstLnurlPayOrInvoiceCreateService: string | LNURLPay | LightningInvoiceCreateService, options?: ToBTCLNOptions & {
261
- comment?: string;
262
- }): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
263
- /**
264
- * @internal
265
- */
266
- swap(srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<true> | "BTCLN" | "BTC-LN" | "LIGHTNING-BTC", amount: undefined, exactIn: false | SwapAmountType.EXACT_OUT, src: string, dstLightningInvoice: string, options?: ToBTCLNOptions): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
267
- /**
268
- * Creates a swap from srcToken to dstToken, of a specific token amount, either specifying input amount (exactIn=true)
269
- * or output amount (exactIn=false), NOTE: For regular SmartChain -> BTC-LN (lightning) swaps the passed amount is ignored and
270
- * invoice's pre-set amount is used instead, use LNURL-pay for dynamic amounts
271
- *
272
- * @param srcToken Source token of the swap, user pays this token
273
- * @param dstToken Destination token of the swap, user receives this token
274
- * @param amount Amount of the swap
275
- * @param exactIn Whether the amount specified is an input amount (exactIn=true) or an output amount (exactIn=false)
276
- * @param src Source wallet/lnurl-withdraw of the swap
277
- * @param dst Destination smart chain address, bitcoin on-chain address, lightning invoice, LNURL-pay
278
- * @param options Options for the swap
279
- */
280
- swap(srcToken: Token<ChainIdentifier> | string, dstToken: Token<ChainIdentifier> | string, amount: bigint | string | undefined, exactIn: boolean | SwapAmountType, src: undefined | string | LNURLWithdraw, dst: string | LNURLPay | LightningInvoiceCreateService, options?: FromBTCLNOptions | SpvFromBTCOptions | FromBTCOptions | ToBTCOptions | (ToBTCLNOptions & {
281
- comment?: string;
282
- }) | FromBTCLNAutoOptions): Promise<ISwap<T[ChainIdentifier]>>;
283
- /**
284
- * Returns swaps that are in-progress and are claimable for the specific chain, optionally also for a specific signer's address
285
- */
286
- getAllSwaps(signer?: string): Promise<ISwap<T[ChainIdentifier]>[]>;
287
- /**
288
- * Returns swaps that are in-progress and are claimable for the specific chain, optionally also for a specific signer's address
289
- */
290
- getActionableSwaps(signer?: string): Promise<ISwap<T[ChainIdentifier]>[]>;
291
- /**
292
- * Returns swaps that are refundable for the specific chain, optionally also for a specific signer's address
293
- */
294
- getRefundableSwaps(signer?: string): Promise<IToBTCSwap<T[ChainIdentifier]>[]>;
295
- /**
296
- * Returns swaps that are due to be claimed/settled manually for the specific chain,
297
- * optionally also for a specific signer's address
298
- */
299
- getClaimableSwaps(signer?: string): Promise<IClaimableSwap<T[ChainIdentifier]>[]>;
300
- /**
301
- * Returns swap with a specific id (identifier) on a specific chain and optionally with a signer
302
- */
303
- getSwapById(id: string, signer?: string): Promise<ISwap<T[ChainIdentifier]>>;
304
- /**
305
- * Returns the swap with a proper return type, or `undefined` if not found or has wrong type
306
- *
307
- * @param id An ID of the swap ({@link ISwap.getId})
308
- * @param swapType Type of the swap
309
- * @param signer An optional required smart chain signer address to fetch the swap for
310
- */
311
- getTypedSwapById<S extends SwapType>(id: string, swapType: S, signer?: string): Promise<SwapTypeMapping<T[ChainIdentifier]>[S] | undefined>;
312
- /**
313
- * Synchronizes swaps from on-chain, this is ran automatically when SDK is initialized, hence
314
- * should only be ran manually when `dontCheckPastSwaps=true` is passed in the swapper options,
315
- * also deletes expired quotes
316
- *
317
- * @param signer Optional signer to only run swap sync for swaps initiated by this signer
318
- */
319
- _syncSwaps(signer?: string): Promise<void>;
320
- /**
321
- * Recovers swaps from on-chain historical data.
322
- *
323
- * Please note that the recovered swaps might not be complete (i.e. missing amounts or addresses), as some
324
- * of the swap data is purely off-chain and can never be recovered purely from on-chain data. This
325
- * functions tries to recover as much swap data as possible.
326
- *
327
- * @param signer Signer address to recover the swaps for
328
- * @param startBlockheight Optional starting blockheight for swap data recovery, will only check swaps
329
- * initiated after this blockheight
330
- */
331
- recoverSwaps(signer: string, startBlockheight?: number): Promise<ISwap<T[ChainIdentifier]>[]>;
332
- getToken(ticker: "BTC" | "BITCOIN-BTC"): BtcToken<false>;
333
- getToken(ticker: "BTCLN" | "BTC-LN" | "LIGHTNING-BTC"): BtcToken<true>;
334
- getToken(ticker: `${ChainIdentifier}-${string}`): SCToken<ChainIdentifier>;
335
- getToken(tickerOrAddress: string): Token<ChainIdentifier>;
336
- /**
337
- * Returns whether the SDK supports a given swap type on this chain based on currently known LPs
338
- *
339
- * @param swapType Swap protocol type
340
- */
341
- supportsSwapType<Type extends SwapType>(swapType: Type): SupportsSwapType<T[ChainIdentifier], Type>;
342
- /**
343
- * @internal
344
- */
345
- getSwapType(srcToken: BtcToken<true>, dstToken: SCToken<ChainIdentifier>): (SupportsSwapType<T[ChainIdentifier], SwapType.FROM_BTCLN_AUTO> extends true ? SwapType.FROM_BTCLN_AUTO : SwapType.FROM_BTCLN);
346
- /**
347
- * @internal
348
- */
349
- getSwapType(srcToken: BtcToken<false>, dstToken: SCToken<ChainIdentifier>): (SupportsSwapType<T[ChainIdentifier], SwapType.SPV_VAULT_FROM_BTC> extends true ? SwapType.SPV_VAULT_FROM_BTC : SwapType.FROM_BTC);
350
- /**
351
- * @internal
352
- */
353
- getSwapType(srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<false>): SwapType.TO_BTC;
354
- /**
355
- * @internal
356
- */
357
- getSwapType(srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<true>): SwapType.TO_BTCLN;
358
- /**
359
- * Returns type of the swap based on input and output tokens specified
360
- *
361
- * @param srcToken Source token
362
- * @param dstToken Destination token
363
- */
364
- getSwapType(srcToken: Token<ChainIdentifier>, dstToken: Token<ChainIdentifier>): SwapType.FROM_BTCLN_AUTO | SwapType.FROM_BTCLN | SwapType.SPV_VAULT_FROM_BTC | SwapType.FROM_BTC | SwapType.TO_BTC | SwapType.TO_BTCLN;
365
- /**
366
- * Returns minimum/maximum limits for inputs and outputs for a swap between given tokens
367
- *
368
- * @param srcToken Source token
369
- * @param dstToken Destination token
370
- */
371
- getSwapLimits<A extends Token<ChainIdentifier>, B extends Token<ChainIdentifier>>(srcToken: A, dstToken: B): {
372
- input: {
373
- min: TokenAmount<A>;
374
- max?: TokenAmount<A>;
375
- };
376
- output: {
377
- min: TokenAmount<B>;
378
- max?: TokenAmount<B>;
379
- };
380
- };
381
- /**
382
- * Returns a set of supported tokens by all the intermediaries offering a specific swap service
383
- *
384
- * @param _swapType Swap service type to check supported tokens for
385
- */
386
- private getSupportedTokens;
387
- /**
388
- * Returns the set of supported tokens by all the intermediaries we know of offering a specific swapType service
389
- *
390
- * @param swapType Specific swap type for which to obtain supported tokens
391
- */
392
- private getSupportedTokenAddresses;
393
- /**
394
- * Returns tokens that you can swap to (if input=true) from a given token,
395
- * or tokens that you can swap from (if input=false) to a given token
396
- */
397
- getSwapCounterTokens(token: Token, input: SwapSide | boolean): Token<ChainIdentifier>[];
398
- /**
399
- * Creates a child swapper instance with a signer
400
- *
401
- * @param signer Signer to use for the new swapper instance
402
- */
403
- withSigner(signer: T[ChainIdentifier]["Signer"]): SwapperWithSigner<T, ChainIdentifier>;
404
- }
1
+ import { IntermediaryDiscovery } from "../intermediaries/IntermediaryDiscovery";
2
+ import { SwapType } from "../enums/SwapType";
3
+ import { LnForGasSwap } from "../swaps/trusted/ln/LnForGasSwap";
4
+ import { ISwap } from "../swaps/ISwap";
5
+ import { IToBTCSwap } from "../swaps/escrow_swaps/tobtc/IToBTCSwap";
6
+ import { ChainIds, MultiChain, SupportsSwapType, Swapper } from "./Swapper";
7
+ import { FromBTCLNSwap } from "../swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap";
8
+ import { FromBTCSwap } from "../swaps/escrow_swaps/frombtc/onchain/FromBTCSwap";
9
+ import { ToBTCLNSwap } from "../swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap";
10
+ import { ToBTCSwap } from "../swaps/escrow_swaps/tobtc/onchain/ToBTCSwap";
11
+ import { SwapPriceWithChain } from "../prices/SwapPriceWithChain";
12
+ import { ToBTCOptions } from "../swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper";
13
+ import { ToBTCLNOptions } from "../swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper";
14
+ import { FromBTCOptions } from "../swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper";
15
+ import { FromBTCLNOptions } from "../swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper";
16
+ import { SwapperUtils } from "./SwapperUtils";
17
+ import { SpvFromBTCOptions } from "../swaps/spv_swaps/SpvFromBTCWrapper";
18
+ import { SpvFromBTCSwap } from "../swaps/spv_swaps/SpvFromBTCSwap";
19
+ import { OnchainForGasSwap } from "../swaps/trusted/onchain/OnchainForGasSwap";
20
+ import { SwapperWithSigner } from "./SwapperWithSigner";
21
+ import { FromBTCLNAutoOptions } from "../swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper";
22
+ import { FromBTCLNAutoSwap } from "../swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap";
23
+ import { SwapAmountType } from "../enums/SwapAmountType";
24
+ import { IClaimableSwap } from "../swaps/IClaimableSwap";
25
+ import { TokenAmount } from "../types/TokenAmount";
26
+ import { BtcToken, SCToken, Token } from "../types/Token";
27
+ import { LNURLWithdraw } from "../types/lnurl/LNURLWithdraw";
28
+ import { LNURLPay } from "../types/lnurl/LNURLPay";
29
+ import { LightningInvoiceCreateService } from "../types/wallets/LightningInvoiceCreateService";
30
+ import { Intermediary } from "../intermediaries/Intermediary";
31
+ import { SwapTypeMapping } from "../utils/SwapUtils";
32
+ import { SwapSide } from "../enums/SwapSide";
33
+ /**
34
+ * Chain-specific wrapper around Swapper for a particular blockchain
35
+ *
36
+ * @category Core
37
+ */
38
+ export declare class SwapperWithChain<T extends MultiChain, ChainIdentifier extends ChainIds<T>> {
39
+ /**
40
+ * Underlying multichain swapper instance
41
+ */
42
+ private readonly swapper;
43
+ /**
44
+ * Smart chain identifier of this swapper with chain
45
+ */
46
+ readonly chainIdentifier: ChainIdentifier;
47
+ /**
48
+ * Pricing API used by the SDK
49
+ */
50
+ readonly prices: SwapPriceWithChain<T, ChainIdentifier>;
51
+ /**
52
+ * Intermediary discovery instance
53
+ */
54
+ get intermediaryDiscovery(): IntermediaryDiscovery;
55
+ /**
56
+ * Miscellaneous utility functions
57
+ */
58
+ get Utils(): SwapperUtils<T>;
59
+ /**
60
+ * Helper information about various swap protocol and their features:
61
+ * - `requiresInputWallet`: Whether a swap requires a connected wallet on the input chain able to sign
62
+ * arbitrary transaction
63
+ * - `requiresOutputWallet`: Whether a swap requires a connected wallet on the output chain able to sign
64
+ * arbitrary transactions
65
+ * - `supportsGasDrop`: Whether a swap supports the "gas drop" feature, allowing to user to receive a small
66
+ * amount of native token as part of the swap when swapping to smart chains
67
+ *
68
+ * Uses a `Record` type here, use the {@link SwapProtocolInfo} import for a literal readonly type, with
69
+ * pre-filled exact values in the type.
70
+ */
71
+ get SwapTypeInfo(): Record<SwapType, {
72
+ requiresInputWallet: boolean;
73
+ requiresOutputWallet: boolean;
74
+ supportsGasDrop: boolean;
75
+ }>;
76
+ constructor(swapper: Swapper<T>, chainIdentifier: ChainIdentifier);
77
+ /**
78
+ * Creates Smart chain -> Bitcoin ({@link SwapType.TO_BTC}) swap
79
+ *
80
+ * @param signer Signer's address on the source chain
81
+ * @param tokenAddress Token address to pay with
82
+ * @param address Recipient's bitcoin address
83
+ * @param amount Amount to send in token based units (if `exactIn=true`) or receive in satoshis (if `exactIn=false`)
84
+ * @param exactIn Whether to use exact in instead of exact out
85
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
86
+ * @param options Additional options for the swap
87
+ */
88
+ createToBTCSwap(signer: string, tokenAddress: string, address: string, amount: bigint, exactIn?: boolean, additionalParams?: Record<string, any>, options?: ToBTCOptions): Promise<ToBTCSwap<T[ChainIdentifier]>>;
89
+ /**
90
+ * Creates Smart chain -> Bitcoin Lightning ({@link SwapType.TO_BTCLN}) swap
91
+ *
92
+ * @param signer Signer's address on the source chain
93
+ * @param tokenAddress Token address to pay with
94
+ * @param paymentRequest BOLT11 lightning network invoice to be paid (needs to have a fixed amount), and the swap
95
+ * amount is taken from this fixed amount, hence only exact output swaps are supported
96
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
97
+ * @param options Additional options for the swap
98
+ */
99
+ createToBTCLNSwap(signer: string, tokenAddress: string, paymentRequest: string, additionalParams?: Record<string, any>, options?: ToBTCLNOptions & {
100
+ comment?: string;
101
+ }): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
102
+ /**
103
+ * Creates Smart chain -> Bitcoin Lightning ({@link SwapType.TO_BTCLN}) swap via LNURL-pay link
104
+ *
105
+ * @param signer Signer's address on the source chain
106
+ * @param tokenAddress Token address to pay with
107
+ * @param lnurlPay LNURL-pay link to use for the payment
108
+ * @param amount Amount to send in token based units (if `exactIn=true`) or receive in satoshis (if `exactIn=false`)
109
+ * @param exactIn Whether to do an exact in swap instead of exact out
110
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
111
+ * @param options Additional options for the swap
112
+ */
113
+ createToBTCLNSwapViaLNURL(signer: string, tokenAddress: string, lnurlPay: string | LNURLPay, amount: bigint, exactIn?: boolean, additionalParams?: Record<string, any>, options?: ToBTCLNOptions): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
114
+ /**
115
+ * Creates Smart chain -> Bitcoin Lightning ({@link SwapType.TO_BTCLN}) swap via {@link LightningInvoiceCreateService}
116
+ *
117
+ * @param signer Signer's address on the source chain
118
+ * @param tokenAddress Token address to pay with
119
+ * @param service Invoice create service object which facilitates the creation of fixed amount LN invoices
120
+ * @param amount Amount to send in token based units (if `exactIn=true`) or receive in satoshis (if `exactIn=false`)
121
+ * @param exactIn Whether to do an exact in swap instead of exact out
122
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
123
+ * @param options Additional options for the swap
124
+ */
125
+ createToBTCLNSwapViaInvoiceCreateService(signer: string, tokenAddress: string, service: LightningInvoiceCreateService, amount: bigint, exactIn?: boolean, additionalParams?: Record<string, any>, options?: ToBTCLNOptions): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
126
+ /**
127
+ * Creates Bitcoin -> Smart chain ({@link SwapType.SPV_VAULT_FROM_BTC}) swap
128
+ *
129
+ * @param recipient Recipient address on the destination chain
130
+ * @param tokenAddress Token address to receive
131
+ * @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
132
+ * @param exactOut Whether to use a exact out instead of exact in
133
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
134
+ * @param options Additional options for the swap
135
+ */
136
+ createFromBTCSwapNew(recipient: string, tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any>, options?: SpvFromBTCOptions): Promise<SpvFromBTCSwap<T[ChainIdentifier]>>;
137
+ /**
138
+ * Creates LEGACY Bitcoin -> Smart chain ({@link SwapType.FROM_BTC}) swap
139
+ *
140
+ * @param recipient Recipient address on the destination chain
141
+ * @param tokenAddress Token address to receive
142
+ * @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
143
+ * @param exactOut Whether to use a exact out instead of exact in
144
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
145
+ * @param options Additional options for the swap
146
+ */
147
+ createFromBTCSwap(recipient: string, tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any>, options?: FromBTCOptions): Promise<FromBTCSwap<T[ChainIdentifier]>>;
148
+ /**
149
+ * Creates LEGACY Bitcoin Lightning -> Smart chain ({@link SwapType.FROM_BTCLN}) swap
150
+ *
151
+ * @param recipient Recipient address on the destination chain
152
+ * @param tokenAddress Token address to receive
153
+ * @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
154
+ * @param exactOut Whether to use a exact out instead of exact in
155
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
156
+ * @param options Additional options for the swap
157
+ */
158
+ createFromBTCLNSwap(recipient: string, tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any>, options?: FromBTCLNOptions): Promise<FromBTCLNSwap<T[ChainIdentifier]>>;
159
+ /**
160
+ * Creates LEGACY Bitcoin Lightning -> Smart chain ({@link SwapType.FROM_BTCLN}) swap, withdrawing from
161
+ * an LNURL-withdraw link
162
+ *
163
+ * @param recipient Recipient address on the destination chain
164
+ * @param tokenAddress Token address to receive
165
+ * @param lnurl LNURL-withdraw link to pull the funds from
166
+ * @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
167
+ * @param exactOut Whether to use a exact out instead of exact in
168
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
169
+ */
170
+ createFromBTCLNSwapViaLNURL(recipient: string, tokenAddress: string, lnurl: string | LNURLWithdraw, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any>): Promise<FromBTCLNSwap<T[ChainIdentifier]>>;
171
+ /**
172
+ * Creates Bitcoin Lightning -> Smart chain ({@link SwapType.FROM_BTCLN_AUTO}) swap
173
+ *
174
+ * @param recipient Recipient address on the destination chain
175
+ * @param tokenAddress Token address to receive
176
+ * @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
177
+ * @param exactOut Whether to use a exact out instead of exact in
178
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
179
+ * @param options Additional options for the swap
180
+ */
181
+ createFromBTCLNSwapNew(recipient: string, tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any>, options?: FromBTCLNAutoOptions): Promise<FromBTCLNAutoSwap<T[ChainIdentifier]>>;
182
+ /**
183
+ * Creates Bitcoin Lightning -> Smart chain ({@link SwapType.FROM_BTCLN_AUTO}) swap, withdrawing from
184
+ * an LNURL-withdraw link
185
+ *
186
+ * @param recipient Recipient address on the destination chain
187
+ * @param tokenAddress Token address to receive
188
+ * @param lnurl LNURL-withdraw link to pull the funds from
189
+ * @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
190
+ * @param exactOut Whether to use a exact out instead of exact in
191
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
192
+ * @param options Additional options for the swap
193
+ */
194
+ createFromBTCLNSwapNewViaLNURL(recipient: string, tokenAddress: string, lnurl: string | LNURLWithdraw, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any>, options?: FromBTCLNAutoOptions): Promise<FromBTCLNAutoSwap<T[ChainIdentifier]>>;
195
+ /**
196
+ * Creates a trusted Bitcoin Lightning -> Smart chain ({@link SwapType.TRUSTED_FROM_BTCLN}) gas swap
197
+ *
198
+ * @param recipient Recipient address on the destination chain
199
+ * @param amount Amount of native token to receive, in base units
200
+ * @param trustedIntermediaryOrUrl URL or Intermediary object of the trusted intermediary to use, otherwise uses default
201
+ * @throws {Error} If no trusted intermediary specified
202
+ */
203
+ createTrustedLNForGasSwap(recipient: string, amount: bigint, trustedIntermediaryOrUrl?: Intermediary | string): Promise<LnForGasSwap<T[ChainIdentifier]>>;
204
+ /**
205
+ * Creates a trusted Bitcoin -> Smart chain ({@link SwapType.TRUSTED_FROM_BTC}) gas swap
206
+ *
207
+ * @param recipient Recipient address on the destination chain
208
+ * @param amount Amount of native token to receive, in base units
209
+ * @param refundAddress Bitcoin refund address, in case the swap fails the funds are refunded here
210
+ * @param trustedIntermediaryOrUrl URL or Intermediary object of the trusted intermediary to use, otherwise uses default
211
+ * @throws {Error} If no trusted intermediary specified
212
+ */
213
+ createTrustedOnchainForGasSwap(recipient: string, amount: bigint, refundAddress?: string, trustedIntermediaryOrUrl?: Intermediary | string): Promise<OnchainForGasSwap<T[ChainIdentifier]>>;
214
+ /**
215
+ * @internal
216
+ */
217
+ create(signer: string, srcToken: BtcToken<true>, dstToken: SCToken<ChainIdentifier>, amount: bigint, exactIn: boolean, lnurlWithdraw?: string | LNURLWithdraw): Promise<SupportsSwapType<T[ChainIdentifier], SwapType.FROM_BTCLN_AUTO> extends true ? FromBTCLNAutoSwap<T[ChainIdentifier]> : FromBTCLNSwap<T[ChainIdentifier]>>;
218
+ /**
219
+ * @internal
220
+ */
221
+ create(signer: string, srcToken: BtcToken<false>, dstToken: SCToken<ChainIdentifier>, amount: bigint, exactIn: boolean): Promise<(SupportsSwapType<T[ChainIdentifier], SwapType.SPV_VAULT_FROM_BTC> extends true ? SpvFromBTCSwap<T[ChainIdentifier]> : FromBTCSwap<T[ChainIdentifier]>)>;
222
+ /**
223
+ * @internal
224
+ */
225
+ create(signer: string, srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<false>, amount: bigint, exactIn: boolean, address: string): Promise<ToBTCSwap<T[ChainIdentifier]>>;
226
+ /**
227
+ * @internal
228
+ */
229
+ create(signer: string, srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<true>, amount: bigint, exactIn: boolean, lnurlPay: string | LNURLPay): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
230
+ /**
231
+ * Creates a swap from srcToken to dstToken, of a specific token amount, either specifying input amount (exactIn=true)
232
+ * or output amount (exactIn=false), NOTE: For regular -> BTC-LN (lightning) swaps the passed amount is ignored and
233
+ * invoice's pre-set amount is used instead.
234
+ * @deprecated Use swap() instead
235
+ *
236
+ * @param signer Smartchain (Solana, Starknet, etc.) address of the user
237
+ * @param srcToken Source token of the swap, user pays this token
238
+ * @param dstToken Destination token of the swap, user receives this token
239
+ * @param amount Amount of the swap
240
+ * @param exactIn Whether the amount specified is an input amount (exactIn=true) or an output amount (exactIn=false)
241
+ * @param addressLnurlLightningInvoice Bitcoin on-chain address, lightning invoice, LNURL-pay to pay or
242
+ * LNURL-withdrawal to withdraw money from
243
+ */
244
+ create(signer: string, srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<true>, amount: undefined, exactIn: false, addressLnurlLightningInvoice: string): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
245
+ /**
246
+ * @internal
247
+ */
248
+ swap(srcToken: BtcToken<true> | "BTCLN" | "BTC-LN" | "LIGHTNING-BTC", dstToken: SCToken<ChainIdentifier>, amount: bigint | string, exactIn: boolean | SwapAmountType, src: undefined | string | LNURLWithdraw, dstSmartchainWallet: string, options?: (SupportsSwapType<T[ChainIdentifier], SwapType.FROM_BTCLN_AUTO> extends true ? FromBTCLNAutoOptions : FromBTCLNOptions)): Promise<SupportsSwapType<T[ChainIdentifier], SwapType.FROM_BTCLN_AUTO> extends true ? FromBTCLNAutoSwap<T[ChainIdentifier]> : FromBTCLNSwap<T[ChainIdentifier]>>;
249
+ /**
250
+ * @internal
251
+ */
252
+ swap(srcToken: BtcToken<false> | "BTC" | "BITCOIN-BTC", dstToken: SCToken<ChainIdentifier>, amount: bigint | string, exactIn: boolean | SwapAmountType, src: undefined | string, dstSmartchainWallet: string, options?: (SupportsSwapType<T[ChainIdentifier], SwapType.SPV_VAULT_FROM_BTC> extends true ? SpvFromBTCOptions : FromBTCOptions)): Promise<(SupportsSwapType<T[ChainIdentifier], SwapType.SPV_VAULT_FROM_BTC> extends true ? SpvFromBTCSwap<T[ChainIdentifier]> : FromBTCSwap<T[ChainIdentifier]>)>;
253
+ /**
254
+ * @internal
255
+ */
256
+ swap(srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<false> | "BTC" | "BITCOIN-BTC", amount: bigint | string, exactIn: boolean | SwapAmountType, src: string, dstAddress: string, options?: ToBTCOptions): Promise<ToBTCSwap<T[ChainIdentifier]>>;
257
+ /**
258
+ * @internal
259
+ */
260
+ swap(srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<true> | "BTCLN" | "BTC-LN" | "LIGHTNING-BTC", amount: bigint | string, exactIn: boolean | SwapAmountType, src: string, dstLnurlPayOrInvoiceCreateService: string | LNURLPay | LightningInvoiceCreateService, options?: ToBTCLNOptions & {
261
+ comment?: string;
262
+ }): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
263
+ /**
264
+ * @internal
265
+ */
266
+ swap(srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<true> | "BTCLN" | "BTC-LN" | "LIGHTNING-BTC", amount: undefined, exactIn: false | SwapAmountType.EXACT_OUT, src: string, dstLightningInvoice: string, options?: ToBTCLNOptions): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
267
+ /**
268
+ * Creates a swap from srcToken to dstToken, of a specific token amount, either specifying input amount (exactIn=true)
269
+ * or output amount (exactIn=false), NOTE: For regular SmartChain -> BTC-LN (lightning) swaps the passed amount is ignored and
270
+ * invoice's pre-set amount is used instead, use LNURL-pay for dynamic amounts
271
+ *
272
+ * @param srcToken Source token of the swap, user pays this token
273
+ * @param dstToken Destination token of the swap, user receives this token
274
+ * @param amount Amount of the swap
275
+ * @param exactIn Whether the amount specified is an input amount (exactIn=true) or an output amount (exactIn=false)
276
+ * @param src Source wallet/lnurl-withdraw of the swap
277
+ * @param dst Destination smart chain address, bitcoin on-chain address, lightning invoice, LNURL-pay
278
+ * @param options Options for the swap
279
+ */
280
+ swap(srcToken: Token<ChainIdentifier> | string, dstToken: Token<ChainIdentifier> | string, amount: bigint | string | undefined, exactIn: boolean | SwapAmountType, src: undefined | string | LNURLWithdraw, dst: string | LNURLPay | LightningInvoiceCreateService, options?: FromBTCLNOptions | SpvFromBTCOptions | FromBTCOptions | ToBTCOptions | (ToBTCLNOptions & {
281
+ comment?: string;
282
+ }) | FromBTCLNAutoOptions): Promise<ISwap<T[ChainIdentifier]>>;
283
+ /**
284
+ * Returns swaps that are in-progress and are claimable for the specific chain, optionally also for a specific signer's address
285
+ */
286
+ getAllSwaps(signer?: string): Promise<ISwap<T[ChainIdentifier]>[]>;
287
+ /**
288
+ * Returns swaps that are in-progress and are claimable for the specific chain, optionally also for a specific signer's address
289
+ */
290
+ getActionableSwaps(signer?: string): Promise<ISwap<T[ChainIdentifier]>[]>;
291
+ /**
292
+ * Returns swaps that are refundable for the specific chain, optionally also for a specific signer's address
293
+ */
294
+ getRefundableSwaps(signer?: string): Promise<IToBTCSwap<T[ChainIdentifier]>[]>;
295
+ /**
296
+ * Returns swaps that are due to be claimed/settled manually for the specific chain,
297
+ * optionally also for a specific signer's address
298
+ */
299
+ getClaimableSwaps(signer?: string): Promise<IClaimableSwap<T[ChainIdentifier]>[]>;
300
+ /**
301
+ * Returns swap with a specific id (identifier) on a specific chain and optionally with a signer
302
+ */
303
+ getSwapById(id: string, signer?: string): Promise<ISwap<T[ChainIdentifier]>>;
304
+ /**
305
+ * Returns the swap with a proper return type, or `undefined` if not found or has wrong type
306
+ *
307
+ * @param id An ID of the swap ({@link ISwap.getId})
308
+ * @param swapType Type of the swap
309
+ * @param signer An optional required smart chain signer address to fetch the swap for
310
+ */
311
+ getTypedSwapById<S extends SwapType>(id: string, swapType: S, signer?: string): Promise<SwapTypeMapping<T[ChainIdentifier]>[S] | undefined>;
312
+ /**
313
+ * Synchronizes swaps from on-chain, this is ran automatically when SDK is initialized, hence
314
+ * should only be ran manually when `dontCheckPastSwaps=true` is passed in the swapper options,
315
+ * also deletes expired quotes
316
+ *
317
+ * @param signer Optional signer to only run swap sync for swaps initiated by this signer
318
+ */
319
+ _syncSwaps(signer?: string): Promise<void>;
320
+ /**
321
+ * Recovers swaps from on-chain historical data.
322
+ *
323
+ * Please note that the recovered swaps might not be complete (i.e. missing amounts or addresses), as some
324
+ * of the swap data is purely off-chain and can never be recovered purely from on-chain data. This
325
+ * functions tries to recover as much swap data as possible.
326
+ *
327
+ * @param signer Signer address to recover the swaps for
328
+ * @param startBlockheight Optional starting blockheight for swap data recovery, will only check swaps
329
+ * initiated after this blockheight
330
+ */
331
+ recoverSwaps(signer: string, startBlockheight?: number): Promise<ISwap<T[ChainIdentifier]>[]>;
332
+ getToken(ticker: "BTC" | "BITCOIN-BTC"): BtcToken<false>;
333
+ getToken(ticker: "BTCLN" | "BTC-LN" | "LIGHTNING-BTC"): BtcToken<true>;
334
+ getToken(ticker: `${ChainIdentifier}-${string}`): SCToken<ChainIdentifier>;
335
+ getToken(tickerOrAddress: string): Token<ChainIdentifier>;
336
+ /**
337
+ * Returns whether the SDK supports a given swap type on this chain based on currently known LPs
338
+ *
339
+ * @param swapType Swap protocol type
340
+ */
341
+ supportsSwapType<Type extends SwapType>(swapType: Type): SupportsSwapType<T[ChainIdentifier], Type>;
342
+ /**
343
+ * @internal
344
+ */
345
+ getSwapType(srcToken: BtcToken<true>, dstToken: SCToken<ChainIdentifier>): (SupportsSwapType<T[ChainIdentifier], SwapType.FROM_BTCLN_AUTO> extends true ? SwapType.FROM_BTCLN_AUTO : SwapType.FROM_BTCLN);
346
+ /**
347
+ * @internal
348
+ */
349
+ getSwapType(srcToken: BtcToken<false>, dstToken: SCToken<ChainIdentifier>): (SupportsSwapType<T[ChainIdentifier], SwapType.SPV_VAULT_FROM_BTC> extends true ? SwapType.SPV_VAULT_FROM_BTC : SwapType.FROM_BTC);
350
+ /**
351
+ * @internal
352
+ */
353
+ getSwapType(srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<false>): SwapType.TO_BTC;
354
+ /**
355
+ * @internal
356
+ */
357
+ getSwapType(srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<true>): SwapType.TO_BTCLN;
358
+ /**
359
+ * Returns type of the swap based on input and output tokens specified
360
+ *
361
+ * @param srcToken Source token
362
+ * @param dstToken Destination token
363
+ */
364
+ getSwapType(srcToken: Token<ChainIdentifier>, dstToken: Token<ChainIdentifier>): SwapType.FROM_BTCLN_AUTO | SwapType.FROM_BTCLN | SwapType.SPV_VAULT_FROM_BTC | SwapType.FROM_BTC | SwapType.TO_BTC | SwapType.TO_BTCLN;
365
+ /**
366
+ * Returns minimum/maximum limits for inputs and outputs for a swap between given tokens
367
+ *
368
+ * @param srcToken Source token
369
+ * @param dstToken Destination token
370
+ */
371
+ getSwapLimits<A extends Token<ChainIdentifier>, B extends Token<ChainIdentifier>>(srcToken: A, dstToken: B): {
372
+ input: {
373
+ min: TokenAmount<A>;
374
+ max?: TokenAmount<A>;
375
+ };
376
+ output: {
377
+ min: TokenAmount<B>;
378
+ max?: TokenAmount<B>;
379
+ };
380
+ };
381
+ /**
382
+ * Returns a set of supported tokens by all the intermediaries offering a specific swap service
383
+ *
384
+ * @param _swapType Swap service type to check supported tokens for
385
+ */
386
+ private getSupportedTokens;
387
+ /**
388
+ * Returns the set of supported tokens by all the intermediaries we know of offering a specific swapType service
389
+ *
390
+ * @param swapType Specific swap type for which to obtain supported tokens
391
+ */
392
+ private getSupportedTokenAddresses;
393
+ /**
394
+ * Returns tokens that you can swap to (if input=true) from a given token,
395
+ * or tokens that you can swap from (if input=false) to a given token
396
+ */
397
+ getSwapCounterTokens(token: Token, input: SwapSide | boolean): Token<ChainIdentifier>[];
398
+ /**
399
+ * Creates a child swapper instance with a signer
400
+ *
401
+ * @param signer Signer to use for the new swapper instance
402
+ */
403
+ withSigner(signer: T[ChainIdentifier]["Signer"]): SwapperWithSigner<T, ChainIdentifier>;
404
+ }