@atomiqlabs/sdk 8.1.8 → 8.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. package/dist/bitcoin/coinselect2/utils.d.ts +6 -0
  2. package/dist/bitcoin/wallet/BitcoinWallet.d.ts +41 -5
  3. package/dist/bitcoin/wallet/BitcoinWallet.js +36 -1
  4. package/dist/bitcoin/wallet/IBitcoinWallet.d.ts +52 -2
  5. package/dist/bitcoin/wallet/IBitcoinWallet.js +2 -1
  6. package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.d.ts +42 -7
  7. package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.js +36 -1
  8. package/dist/enums/FeeType.d.ts +8 -1
  9. package/dist/enums/FeeType.js +8 -1
  10. package/dist/enums/SwapAmountType.d.ts +7 -0
  11. package/dist/enums/SwapAmountType.js +7 -0
  12. package/dist/enums/SwapDirection.d.ts +7 -0
  13. package/dist/enums/SwapDirection.js +7 -0
  14. package/dist/enums/SwapType.d.ts +62 -1
  15. package/dist/enums/SwapType.js +62 -1
  16. package/dist/errors/IntermediaryError.d.ts +4 -0
  17. package/dist/errors/IntermediaryError.js +1 -0
  18. package/dist/errors/RequestError.d.ts +15 -1
  19. package/dist/errors/RequestError.js +8 -0
  20. package/dist/errors/UserError.d.ts +1 -0
  21. package/dist/errors/UserError.js +1 -0
  22. package/dist/index.d.ts +5 -5
  23. package/dist/index.js +7 -6
  24. package/dist/intermediaries/Intermediary.d.ts +61 -14
  25. package/dist/intermediaries/Intermediary.js +38 -11
  26. package/dist/intermediaries/IntermediaryDiscovery.d.ts +62 -29
  27. package/dist/intermediaries/IntermediaryDiscovery.js +39 -24
  28. package/dist/prices/RedundantSwapPrice.d.ts +26 -5
  29. package/dist/prices/RedundantSwapPrice.js +22 -2
  30. package/dist/prices/SingleSwapPrice.d.ts +10 -7
  31. package/dist/prices/SingleSwapPrice.js +11 -8
  32. package/dist/prices/SwapPriceWithChain.d.ts +56 -19
  33. package/dist/prices/SwapPriceWithChain.js +62 -25
  34. package/dist/prices/abstract/IPriceProvider.d.ts +4 -4
  35. package/dist/prices/abstract/IPriceProvider.js +1 -1
  36. package/dist/prices/abstract/ISwapPrice.d.ts +95 -46
  37. package/dist/prices/abstract/ISwapPrice.js +104 -56
  38. package/dist/prices/providers/BinancePriceProvider.d.ts +8 -1
  39. package/dist/prices/providers/BinancePriceProvider.js +8 -1
  40. package/dist/prices/providers/CoinGeckoPriceProvider.d.ts +7 -1
  41. package/dist/prices/providers/CoinGeckoPriceProvider.js +7 -1
  42. package/dist/prices/providers/CoinPaprikaPriceProvider.d.ts +7 -1
  43. package/dist/prices/providers/CoinPaprikaPriceProvider.js +7 -1
  44. package/dist/prices/providers/CustomPriceProvider.d.ts +12 -1
  45. package/dist/prices/providers/CustomPriceProvider.js +12 -1
  46. package/dist/prices/providers/KrakenPriceProvider.d.ts +10 -1
  47. package/dist/prices/providers/KrakenPriceProvider.js +10 -1
  48. package/dist/prices/providers/OKXPriceProvider.d.ts +7 -1
  49. package/dist/prices/providers/OKXPriceProvider.js +7 -1
  50. package/dist/prices/providers/abstract/ExchangePriceProvider.d.ts +3 -0
  51. package/dist/prices/providers/abstract/ExchangePriceProvider.js +3 -0
  52. package/dist/storage/IUnifiedStorage.d.ts +19 -7
  53. package/dist/storage/UnifiedSwapStorage.d.ts +33 -3
  54. package/dist/storage/UnifiedSwapStorage.js +29 -1
  55. package/dist/storage-browser/IndexedDBUnifiedStorage.d.ts +31 -7
  56. package/dist/storage-browser/IndexedDBUnifiedStorage.js +29 -6
  57. package/dist/storage-browser/LocalStorageManager.d.ts +25 -1
  58. package/dist/storage-browser/LocalStorageManager.js +25 -1
  59. package/dist/swapper/Swapper.d.ts +380 -226
  60. package/dist/swapper/Swapper.js +383 -349
  61. package/dist/swapper/SwapperFactory.d.ts +66 -18
  62. package/dist/swapper/SwapperFactory.js +24 -3
  63. package/dist/swapper/SwapperUtils.d.ts +75 -28
  64. package/dist/swapper/SwapperUtils.js +107 -60
  65. package/dist/swapper/SwapperWithChain.d.ts +286 -91
  66. package/dist/swapper/SwapperWithChain.js +218 -64
  67. package/dist/swapper/SwapperWithSigner.d.ts +229 -80
  68. package/dist/swapper/SwapperWithSigner.js +190 -44
  69. package/dist/swaps/IAddressSwap.d.ts +12 -3
  70. package/dist/swaps/IAddressSwap.js +3 -2
  71. package/dist/swaps/IBTCWalletSwap.d.ts +26 -8
  72. package/dist/swaps/IBTCWalletSwap.js +3 -2
  73. package/dist/swaps/IClaimableSwap.d.ts +38 -6
  74. package/dist/swaps/IClaimableSwap.js +3 -2
  75. package/dist/swaps/IClaimableSwapWrapper.d.ts +11 -1
  76. package/dist/swaps/IRefundableSwap.d.ts +31 -5
  77. package/dist/swaps/IRefundableSwap.js +3 -2
  78. package/dist/swaps/ISwap.d.ts +162 -24
  79. package/dist/swaps/ISwap.js +92 -35
  80. package/dist/swaps/ISwapWithGasDrop.d.ts +8 -2
  81. package/dist/swaps/ISwapWithGasDrop.js +2 -1
  82. package/dist/swaps/ISwapWrapper.d.ts +161 -52
  83. package/dist/swaps/ISwapWrapper.js +131 -73
  84. package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.d.ts +51 -6
  85. package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.js +22 -12
  86. package/dist/swaps/escrow_swaps/IEscrowSwap.d.ts +65 -12
  87. package/dist/swaps/escrow_swaps/IEscrowSwap.js +38 -19
  88. package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.d.ts +39 -9
  89. package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.js +30 -21
  90. package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.d.ts +31 -15
  91. package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.js +33 -18
  92. package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.d.ts +97 -28
  93. package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.js +91 -27
  94. package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.d.ts +22 -9
  95. package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.js +24 -11
  96. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.d.ts +278 -60
  97. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.js +519 -241
  98. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.d.ts +77 -26
  99. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.js +132 -50
  100. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.d.ts +313 -52
  101. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.js +544 -194
  102. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.d.ts +87 -26
  103. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.js +147 -58
  104. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.d.ts +222 -55
  105. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.js +462 -244
  106. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.d.ts +77 -23
  107. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.js +116 -46
  108. package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.d.ts +195 -58
  109. package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.js +324 -191
  110. package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.d.ts +30 -5
  111. package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.js +44 -19
  112. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.d.ts +61 -20
  113. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.js +75 -32
  114. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.d.ts +76 -50
  115. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.js +106 -101
  116. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.d.ts +37 -14
  117. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.js +66 -20
  118. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.d.ts +46 -17
  119. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.js +82 -27
  120. package/dist/swaps/spv_swaps/SpvFromBTCSwap.d.ts +350 -88
  121. package/dist/swaps/spv_swaps/SpvFromBTCSwap.js +482 -215
  122. package/dist/swaps/spv_swaps/SpvFromBTCWrapper.d.ts +76 -24
  123. package/dist/swaps/spv_swaps/SpvFromBTCWrapper.js +247 -124
  124. package/dist/swaps/trusted/ln/LnForGasSwap.d.ts +148 -20
  125. package/dist/swaps/trusted/ln/LnForGasSwap.js +175 -45
  126. package/dist/swaps/trusted/ln/LnForGasWrapper.d.ts +29 -10
  127. package/dist/swaps/trusted/ln/LnForGasWrapper.js +30 -11
  128. package/dist/swaps/trusted/onchain/OnchainForGasSwap.d.ts +202 -49
  129. package/dist/swaps/trusted/onchain/OnchainForGasSwap.js +232 -80
  130. package/dist/swaps/trusted/onchain/OnchainForGasWrapper.d.ts +34 -12
  131. package/dist/swaps/trusted/onchain/OnchainForGasWrapper.js +33 -14
  132. package/dist/types/AmountData.d.ts +2 -1
  133. package/dist/types/CustomPriceFunction.d.ts +8 -2
  134. package/dist/types/PriceInfoType.d.ts +4 -4
  135. package/dist/types/PriceInfoType.js +3 -3
  136. package/dist/types/SwapExecutionAction.d.ts +85 -4
  137. package/dist/types/SwapWithSigner.d.ts +5 -2
  138. package/dist/types/SwapWithSigner.js +5 -2
  139. package/dist/types/Token.d.ts +11 -5
  140. package/dist/types/Token.js +6 -3
  141. package/dist/types/TokenAmount.d.ts +3 -0
  142. package/dist/types/TokenAmount.js +2 -0
  143. package/dist/types/fees/Fee.d.ts +3 -2
  144. package/dist/types/fees/FeeBreakdown.d.ts +3 -2
  145. package/dist/types/fees/PercentagePPM.d.ts +4 -2
  146. package/dist/types/fees/PercentagePPM.js +2 -1
  147. package/dist/types/lnurl/LNURLPay.d.ts +20 -12
  148. package/dist/types/lnurl/LNURLPay.js +8 -4
  149. package/dist/types/lnurl/LNURLWithdraw.d.ts +17 -10
  150. package/dist/types/lnurl/LNURLWithdraw.js +8 -4
  151. package/dist/types/wallets/LightningInvoiceCreateService.d.ts +24 -0
  152. package/dist/types/wallets/LightningInvoiceCreateService.js +15 -0
  153. package/dist/types/wallets/MinimalBitcoinWalletInterface.d.ts +3 -1
  154. package/dist/types/wallets/MinimalLightningNetworkWalletInterface.d.ts +4 -2
  155. package/dist/utils/BitcoinUtils.d.ts +1 -0
  156. package/dist/utils/BitcoinUtils.js +5 -1
  157. package/dist/utils/SwapUtils.d.ts +58 -1
  158. package/dist/utils/SwapUtils.js +55 -1
  159. package/dist/utils/TokenUtils.d.ts +10 -2
  160. package/dist/utils/TokenUtils.js +12 -4
  161. package/package.json +3 -3
  162. package/src/bitcoin/coinselect2/utils.ts +6 -0
  163. package/src/bitcoin/wallet/BitcoinWallet.ts +41 -5
  164. package/src/bitcoin/wallet/IBitcoinWallet.ts +57 -2
  165. package/src/bitcoin/wallet/SingleAddressBitcoinWallet.ts +42 -6
  166. package/src/enums/FeeType.ts +8 -1
  167. package/src/enums/SwapAmountType.ts +7 -0
  168. package/src/enums/SwapDirection.ts +7 -0
  169. package/src/enums/SwapType.ts +62 -2
  170. package/src/errors/IntermediaryError.ts +4 -0
  171. package/src/errors/RequestError.ts +15 -1
  172. package/src/errors/UserError.ts +1 -0
  173. package/src/index.ts +12 -5
  174. package/src/intermediaries/Intermediary.ts +61 -14
  175. package/src/intermediaries/IntermediaryDiscovery.ts +69 -34
  176. package/src/prices/RedundantSwapPrice.ts +26 -6
  177. package/src/prices/SingleSwapPrice.ts +11 -8
  178. package/src/prices/SwapPriceWithChain.ts +63 -26
  179. package/src/prices/abstract/IPriceProvider.ts +4 -4
  180. package/src/prices/abstract/ISwapPrice.ts +115 -66
  181. package/src/prices/providers/BinancePriceProvider.ts +8 -1
  182. package/src/prices/providers/CoinGeckoPriceProvider.ts +7 -1
  183. package/src/prices/providers/CoinPaprikaPriceProvider.ts +7 -1
  184. package/src/prices/providers/CustomPriceProvider.ts +12 -1
  185. package/src/prices/providers/KrakenPriceProvider.ts +10 -1
  186. package/src/prices/providers/OKXPriceProvider.ts +7 -1
  187. package/src/prices/providers/abstract/ExchangePriceProvider.ts +3 -0
  188. package/src/storage/IUnifiedStorage.ts +19 -7
  189. package/src/storage/UnifiedSwapStorage.ts +33 -3
  190. package/src/storage-browser/IndexedDBUnifiedStorage.ts +31 -8
  191. package/src/storage-browser/LocalStorageManager.ts +25 -1
  192. package/src/swapper/Swapper.ts +599 -390
  193. package/src/swapper/SwapperFactory.ts +73 -24
  194. package/src/swapper/SwapperUtils.ts +107 -60
  195. package/src/swapper/SwapperWithChain.ts +320 -81
  196. package/src/swapper/SwapperWithSigner.ts +263 -56
  197. package/src/swaps/IAddressSwap.ts +13 -3
  198. package/src/swaps/IBTCWalletSwap.ts +26 -10
  199. package/src/swaps/IClaimableSwap.ts +41 -6
  200. package/src/swaps/IClaimableSwapWrapper.ts +11 -2
  201. package/src/swaps/IRefundableSwap.ts +34 -5
  202. package/src/swaps/ISwap.ts +224 -85
  203. package/src/swaps/ISwapWithGasDrop.ts +8 -2
  204. package/src/swaps/ISwapWrapper.ts +216 -98
  205. package/src/swaps/escrow_swaps/IEscrowSelfInitSwap.ts +64 -18
  206. package/src/swaps/escrow_swaps/IEscrowSwap.ts +83 -37
  207. package/src/swaps/escrow_swaps/IEscrowSwapWrapper.ts +61 -30
  208. package/src/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.ts +37 -19
  209. package/src/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.ts +123 -50
  210. package/src/swaps/escrow_swaps/frombtc/IFromBTCWrapper.ts +24 -11
  211. package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.ts +562 -258
  212. package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.ts +156 -62
  213. package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.ts +592 -227
  214. package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.ts +177 -74
  215. package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.ts +483 -245
  216. package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.ts +141 -59
  217. package/src/swaps/escrow_swaps/tobtc/IToBTCSwap.ts +350 -195
  218. package/src/swaps/escrow_swaps/tobtc/IToBTCWrapper.ts +48 -23
  219. package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.ts +87 -40
  220. package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.ts +110 -110
  221. package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.ts +89 -34
  222. package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.ts +101 -31
  223. package/src/swaps/spv_swaps/SpvFromBTCSwap.ts +556 -259
  224. package/src/swaps/spv_swaps/SpvFromBTCWrapper.ts +292 -148
  225. package/src/swaps/trusted/ln/LnForGasSwap.ts +186 -47
  226. package/src/swaps/trusted/ln/LnForGasWrapper.ts +34 -15
  227. package/src/swaps/trusted/onchain/OnchainForGasSwap.ts +262 -88
  228. package/src/swaps/trusted/onchain/OnchainForGasWrapper.ts +41 -19
  229. package/src/types/AmountData.ts +2 -1
  230. package/src/types/CustomPriceFunction.ts +8 -2
  231. package/src/types/PriceInfoType.ts +4 -4
  232. package/src/types/SwapExecutionAction.ts +97 -5
  233. package/src/types/SwapWithSigner.ts +8 -4
  234. package/src/types/Token.ts +12 -5
  235. package/src/types/TokenAmount.ts +3 -0
  236. package/src/types/fees/Fee.ts +3 -2
  237. package/src/types/fees/FeeBreakdown.ts +3 -2
  238. package/src/types/fees/PercentagePPM.ts +4 -2
  239. package/src/types/lnurl/LNURLPay.ts +20 -12
  240. package/src/types/lnurl/LNURLWithdraw.ts +17 -10
  241. package/src/types/wallets/LightningInvoiceCreateService.ts +30 -0
  242. package/src/types/wallets/MinimalBitcoinWalletInterface.ts +3 -1
  243. package/src/types/wallets/MinimalLightningNetworkWalletInterface.ts +4 -2
  244. package/src/utils/BitcoinUtils.ts +5 -0
  245. package/src/utils/SwapUtils.ts +63 -1
  246. package/src/utils/TokenUtils.ts +12 -4
  247. package/dist/bitcoin/BitcoinRpcWithAddressIndex.d.ts +0 -68
  248. package/dist/bitcoin/BitcoinRpcWithAddressIndex.js +0 -2
  249. package/dist/bitcoin/LightningNetworkApi.d.ts +0 -12
  250. package/dist/bitcoin/LightningNetworkApi.js +0 -2
  251. package/dist/bitcoin/mempool/MempoolApi.d.ts +0 -350
  252. package/dist/bitcoin/mempool/MempoolApi.js +0 -311
  253. package/dist/bitcoin/mempool/MempoolBitcoinBlock.d.ts +0 -44
  254. package/dist/bitcoin/mempool/MempoolBitcoinBlock.js +0 -48
  255. package/dist/bitcoin/mempool/MempoolBitcoinRpc.d.ts +0 -119
  256. package/dist/bitcoin/mempool/MempoolBitcoinRpc.js +0 -361
  257. package/dist/bitcoin/mempool/synchronizer/MempoolBtcRelaySynchronizer.d.ts +0 -22
  258. package/dist/bitcoin/mempool/synchronizer/MempoolBtcRelaySynchronizer.js +0 -105
  259. package/dist/errors/PaymentAuthError.d.ts +0 -11
  260. package/dist/errors/PaymentAuthError.js +0 -23
  261. package/src/errors/PaymentAuthError.ts +0 -26
@@ -4,8 +4,9 @@ import { SwapType } from "../enums/SwapType";
4
4
  import { SwapContract } from "@atomiqlabs/base";
5
5
  import { EventEmitter } from "events";
6
6
  /**
7
- * Swap handler type enum for intermediary communication
8
- * @category Pricing and LPs
7
+ * Swap handler type mapping for intermediary communication
8
+ *
9
+ * @category LPs
9
10
  */
10
11
  export declare enum SwapHandlerType {
11
12
  TO_BTC = "TO_BTC",
@@ -19,7 +20,8 @@ export declare enum SwapHandlerType {
19
20
  }
20
21
  /**
21
22
  * Swap handler information type
22
- * @category Pricing and LPs
23
+ *
24
+ * @category LPs
23
25
  */
24
26
  export type SwapHandlerInfoType = {
25
27
  swapFeePPM: number;
@@ -34,7 +36,8 @@ export type SwapHandlerInfoType = {
34
36
  };
35
37
  /**
36
38
  * Token bounds (min/max) for swaps
37
- * @category Pricing and LPs
39
+ *
40
+ * @category LPs
38
41
  */
39
42
  export type TokenBounds = {
40
43
  [token: string]: {
@@ -43,41 +46,63 @@ export type TokenBounds = {
43
46
  };
44
47
  };
45
48
  /**
46
- * Multi-chain token bounds
47
- * @category Pricing and LPs
49
+ * Multi-chain token bounds (min/max) for swaps
50
+ *
51
+ * @category LPs
48
52
  */
49
53
  export type MultichainTokenBounds = {
50
54
  [chainId: string]: TokenBounds;
51
55
  };
52
56
  /**
53
- * Swap bounds by type
54
- * @category Pricing and LPs
57
+ * Swap bounds by swap protocol type
58
+ *
59
+ * @category LPs
55
60
  */
56
61
  export type SwapBounds = {
57
62
  [key in SwapType]?: TokenBounds;
58
63
  };
59
64
  /**
60
65
  * Multi-chain swap bounds
61
- * @category Pricing and LPs
66
+ *
67
+ * @category LPs
62
68
  */
63
69
  export type MultichainSwapBounds = {
64
70
  [key in SwapType]?: MultichainTokenBounds;
65
71
  };
66
72
  /**
67
- * Discovery service for available liquidity providers/intermediaries
68
- * @category Pricing and LPs
73
+ * Discovery service for available intermediaries (liquidity providers)
74
+ *
75
+ * @category LPs
69
76
  */
70
77
  export declare class IntermediaryDiscovery extends EventEmitter {
78
+ /**
79
+ * A current list of active intermediaries
80
+ */
71
81
  intermediaries: Intermediary[];
82
+ /**
83
+ * Swap contracts for checking intermediary signatures
84
+ */
72
85
  swapContracts: {
73
86
  [key: string]: SwapContract;
74
87
  };
88
+ /**
89
+ * Registry URL used as a source for the list of intermediaries, this should be a link to a
90
+ * github-hosted JSON file
91
+ */
75
92
  registryUrl: string;
93
+ /**
94
+ * Timeout for the HTTP handshake (/info) requests sent to the intermediaries
95
+ */
76
96
  httpRequestTimeout?: number;
77
97
  /**
78
- * Maximum time (in millis) to wait for other LP's responses after the first one was founds
98
+ * Maximum time (in millis) to wait for other intermediary's responses after the first one was founds
79
99
  */
80
100
  maxWaitForOthersTimeout?: number;
101
+ /**
102
+ * The intermediary URLs passed in the constructor, to be used instead of querying the registry
103
+ *
104
+ * @private
105
+ */
81
106
  private overrideNodeUrls?;
82
107
  constructor(swapContracts: {
83
108
  [key: string]: SwapContract;
@@ -107,14 +132,19 @@ export declare class IntermediaryDiscovery extends EventEmitter {
107
132
  */
108
133
  private loadIntermediary;
109
134
  /**
110
- * Returns the intermediary at the provided URL, either from the already fetched list of LPs or fetches the data on-demand
135
+ * Returns the intermediary at the provided URL, either from the already fetched list of LPs
136
+ * or fetches the data on-demand, by sending the handshake HTTP request (/info) to the LP.
111
137
  *
112
- * @param url
138
+ * Doesn't save the fetched intermediary to the list of intermediaries if it isn't already
139
+ * part of the known intermediaries
140
+ *
141
+ * @param url Base URL of the intermediary, which accepts HTTP requests
113
142
  * @param abortSignal
114
143
  */
115
144
  getIntermediary(url: string, abortSignal?: AbortSignal): Promise<Intermediary | null>;
116
145
  /**
117
146
  * Reloads the saves a list of intermediaries
147
+ *
118
148
  * @param abortSignal
119
149
  */
120
150
  reloadIntermediaries(abortSignal?: AbortSignal): Promise<void>;
@@ -124,39 +154,42 @@ export declare class IntermediaryDiscovery extends EventEmitter {
124
154
  * @param abortSignal
125
155
  */
126
156
  init(abortSignal?: AbortSignal): Promise<void>;
157
+ /**
158
+ * Returns known swap bounds (in satoshis - BTC) by aggregating values from all known intermediaries
159
+ */
127
160
  getMultichainSwapBounds(): MultichainSwapBounds;
128
161
  /**
129
- * Returns aggregate swap bounds (in sats - BTC) as indicated by the intermediaries
162
+ * Returns aggregate swap bounds (in satoshis - BTC) as indicated by the intermediaries
130
163
  */
131
164
  getSwapBounds(chainIdentifier: string): SwapBounds;
132
165
  /**
133
- * Returns the aggregate swap minimum (in sats - BTC) for a specific swap type & token
166
+ * Returns the aggregate swap minimum (in satoshis - BTC) for a specific swap type & token
134
167
  * as indicated by the intermediaries
135
168
  *
136
- * @param chainIdentifier
137
- * @param swapType
138
- * @param token
169
+ * @param chainIdentifier Chain identifier of the smart chain
170
+ * @param swapType Swap protocol type
171
+ * @param tokenAddress Token address
139
172
  */
140
- getSwapMinimum(chainIdentifier: string, swapType: SwapType, token: any): number | null;
173
+ getSwapMinimum(chainIdentifier: string, swapType: SwapType, tokenAddress: string): number | null;
141
174
  /**
142
- * Returns the aggregate swap maximum (in sats - BTC) for a specific swap type & token
175
+ * Returns the aggregate swap maximum (in satoshis - BTC) for a specific swap type & token
143
176
  * as indicated by the intermediaries
144
177
  *
145
- * @param chainIdentifier
146
- * @param swapType
147
- * @param token
178
+ * @param chainIdentifier Chain identifier of the smart chain
179
+ * @param swapType Swap protocol type
180
+ * @param tokenAddress Token address
148
181
  */
149
- getSwapMaximum(chainIdentifier: string, swapType: SwapType, token: any): number | null;
182
+ getSwapMaximum(chainIdentifier: string, swapType: SwapType, tokenAddress: string): number | null;
150
183
  /**
151
184
  * Returns swap candidates for a specific swap type & token address
152
185
  *
153
- * @param chainIdentifier
154
- * @param swapType
155
- * @param tokenAddress
186
+ * @param chainIdentifier Chain identifier of the smart chain
187
+ * @param swapType Swap protocol type
188
+ * @param tokenAddress Token address
156
189
  * @param amount Amount to be swapped in sats - BTC
157
190
  * @param count How many intermediaries to return at most
158
191
  */
159
- getSwapCandidates(chainIdentifier: string, swapType: SwapType, tokenAddress: any, amount?: bigint, count?: number): Intermediary[];
192
+ getSwapCandidates(chainIdentifier: string, swapType: SwapType, tokenAddress: string, amount?: bigint, count?: number): Intermediary[];
160
193
  /**
161
194
  * Removes a specific intermediary from the list of active intermediaries (used for blacklisting)
162
195
  *
@@ -11,8 +11,9 @@ const Logger_1 = require("../utils/Logger");
11
11
  const HttpUtils_1 = require("../http/HttpUtils");
12
12
  const RetryUtils_1 = require("../utils/RetryUtils");
13
13
  /**
14
- * Swap handler type enum for intermediary communication
15
- * @category Pricing and LPs
14
+ * Swap handler type mapping for intermediary communication
15
+ *
16
+ * @category LPs
16
17
  */
17
18
  var SwapHandlerType;
18
19
  (function (SwapHandlerType) {
@@ -27,7 +28,7 @@ var SwapHandlerType;
27
28
  })(SwapHandlerType = exports.SwapHandlerType || (exports.SwapHandlerType = {}));
28
29
  /**
29
30
  * Converts SwapHandlerType (represented as string & used in REST API communication with intermediaries) to regular
30
- * SwapType
31
+ * {@link SwapType}
31
32
  *
32
33
  * @param swapHandlerType
33
34
  */
@@ -49,10 +50,12 @@ function swapHandlerTypeToSwapType(swapHandlerType) {
49
50
  return SwapType_1.SwapType.SPV_VAULT_FROM_BTC;
50
51
  case SwapHandlerType.FROM_BTCLN_AUTO:
51
52
  return SwapType_1.SwapType.FROM_BTCLN_AUTO;
53
+ default:
54
+ return SwapType_1.SwapType.TRUSTED_FROM_BTCLN;
52
55
  }
53
56
  }
54
57
  /**
55
- * A default intermediary comparator, only takes to announced fee into consideration
58
+ * A default intermediary comparator, only takes the announced fee into consideration
56
59
  *
57
60
  * @param swapType
58
61
  * @param tokenAddress
@@ -86,12 +89,16 @@ const REGISTRY_URL = "https://api.github.com/repos/adambor/SolLightning-registry
86
89
  //To allow for legacy responses from not-yet updated LPs
87
90
  const DEFAULT_CHAIN = "SOLANA";
88
91
  /**
89
- * Discovery service for available liquidity providers/intermediaries
90
- * @category Pricing and LPs
92
+ * Discovery service for available intermediaries (liquidity providers)
93
+ *
94
+ * @category LPs
91
95
  */
92
96
  class IntermediaryDiscovery extends events_1.EventEmitter {
93
97
  constructor(swapContracts, registryUrl = REGISTRY_URL, nodeUrls, httpRequestTimeout, maxWaitForOthersTimeout) {
94
98
  super();
99
+ /**
100
+ * A current list of active intermediaries
101
+ */
95
102
  this.intermediaries = [];
96
103
  this.swapContracts = swapContracts;
97
104
  this.registryUrl = registryUrl;
@@ -189,9 +196,13 @@ class IntermediaryDiscovery extends events_1.EventEmitter {
189
196
  }
190
197
  }
191
198
  /**
192
- * Returns the intermediary at the provided URL, either from the already fetched list of LPs or fetches the data on-demand
199
+ * Returns the intermediary at the provided URL, either from the already fetched list of LPs
200
+ * or fetches the data on-demand, by sending the handshake HTTP request (/info) to the LP.
193
201
  *
194
- * @param url
202
+ * Doesn't save the fetched intermediary to the list of intermediaries if it isn't already
203
+ * part of the known intermediaries
204
+ *
205
+ * @param url Base URL of the intermediary, which accepts HTTP requests
195
206
  * @param abortSignal
196
207
  */
197
208
  getIntermediary(url, abortSignal) {
@@ -202,6 +213,7 @@ class IntermediaryDiscovery extends events_1.EventEmitter {
202
213
  }
203
214
  /**
204
215
  * Reloads the saves a list of intermediaries
216
+ *
205
217
  * @param abortSignal
206
218
  */
207
219
  async reloadIntermediaries(abortSignal) {
@@ -236,6 +248,9 @@ class IntermediaryDiscovery extends events_1.EventEmitter {
236
248
  logger.info("init(): Initializing with registryUrl: " + this.registryUrl + " intermediary array: " + (this.overrideNodeUrls || []).join());
237
249
  return this.reloadIntermediaries(abortSignal);
238
250
  }
251
+ /**
252
+ * Returns known swap bounds (in satoshis - BTC) by aggregating values from all known intermediaries
253
+ */
239
254
  getMultichainSwapBounds() {
240
255
  const bounds = {};
241
256
  this.intermediaries.forEach(intermediary => {
@@ -265,7 +280,7 @@ class IntermediaryDiscovery extends events_1.EventEmitter {
265
280
  return bounds;
266
281
  }
267
282
  /**
268
- * Returns aggregate swap bounds (in sats - BTC) as indicated by the intermediaries
283
+ * Returns aggregate swap bounds (in satoshis - BTC) as indicated by the intermediaries
269
284
  */
270
285
  getSwapBounds(chainIdentifier) {
271
286
  const bounds = {};
@@ -294,15 +309,15 @@ class IntermediaryDiscovery extends events_1.EventEmitter {
294
309
  return bounds;
295
310
  }
296
311
  /**
297
- * Returns the aggregate swap minimum (in sats - BTC) for a specific swap type & token
312
+ * Returns the aggregate swap minimum (in satoshis - BTC) for a specific swap type & token
298
313
  * as indicated by the intermediaries
299
314
  *
300
- * @param chainIdentifier
301
- * @param swapType
302
- * @param token
315
+ * @param chainIdentifier Chain identifier of the smart chain
316
+ * @param swapType Swap protocol type
317
+ * @param tokenAddress Token address
303
318
  */
304
- getSwapMinimum(chainIdentifier, swapType, token) {
305
- const tokenStr = token.toString();
319
+ getSwapMinimum(chainIdentifier, swapType, tokenAddress) {
320
+ const tokenStr = tokenAddress.toString();
306
321
  return this.intermediaries.reduce((prevMin, intermediary) => {
307
322
  const swapService = intermediary.services[swapType];
308
323
  if (swapService == null)
@@ -316,15 +331,15 @@ class IntermediaryDiscovery extends events_1.EventEmitter {
316
331
  }, null);
317
332
  }
318
333
  /**
319
- * Returns the aggregate swap maximum (in sats - BTC) for a specific swap type & token
334
+ * Returns the aggregate swap maximum (in satoshis - BTC) for a specific swap type & token
320
335
  * as indicated by the intermediaries
321
336
  *
322
- * @param chainIdentifier
323
- * @param swapType
324
- * @param token
337
+ * @param chainIdentifier Chain identifier of the smart chain
338
+ * @param swapType Swap protocol type
339
+ * @param tokenAddress Token address
325
340
  */
326
- getSwapMaximum(chainIdentifier, swapType, token) {
327
- const tokenStr = token.toString();
341
+ getSwapMaximum(chainIdentifier, swapType, tokenAddress) {
342
+ const tokenStr = tokenAddress.toString();
328
343
  return this.intermediaries.reduce((prevMax, intermediary) => {
329
344
  const swapService = intermediary.services[swapType];
330
345
  if (swapService == null)
@@ -340,9 +355,9 @@ class IntermediaryDiscovery extends events_1.EventEmitter {
340
355
  /**
341
356
  * Returns swap candidates for a specific swap type & token address
342
357
  *
343
- * @param chainIdentifier
344
- * @param swapType
345
- * @param tokenAddress
358
+ * @param chainIdentifier Chain identifier of the smart chain
359
+ * @param swapType Swap protocol type
360
+ * @param tokenAddress Token address
346
361
  * @param amount Amount to be swapped in sats - BTC
347
362
  * @param count How many intermediaries to return at most
348
363
  */
@@ -3,7 +3,8 @@ import { ICachedSwapPrice } from "./abstract/ICachedSwapPrice";
3
3
  import { ChainIds, MultiChain } from "../swapper/Swapper";
4
4
  /**
5
5
  * Asset configuration for redundant swap pricing
6
- * @category Pricing and LPs
6
+ *
7
+ * @category Pricing
7
8
  */
8
9
  export type RedundantSwapPriceAssets<T extends MultiChain> = {
9
10
  binancePair?: string;
@@ -34,12 +35,22 @@ type CoinDecimals<T extends MultiChain> = {
34
35
  /**
35
36
  * Swap price API using multiple price sources, handles errors on the APIs and automatically switches between them, such
36
37
  * that there always is a functional API
37
- * @category Pricing and LPs
38
+ *
39
+ * @category Pricing
38
40
  */
39
41
  export declare class RedundantSwapPrice<T extends MultiChain> extends ICachedSwapPrice<T> {
42
+ /**
43
+ * Creates a new {@link RedundantSwapPrice} instance from an asset list and other data, using all
44
+ * the available price providers: {@link BinancePriceProvider}, {@link OKXPriceProvider},
45
+ * {@link CoinGeckoPriceProvider}, {@link CoinPaprikaPriceProvider}, {@link KrakenPriceProvider}
46
+ *
47
+ * @param maxAllowedFeeDiffPPM Maximum allowed price difference between returned swap prices & market prices
48
+ * @param assets Specifications of the assets
49
+ * @param cacheTimeout Timeout of the internal cache holding prices
50
+ */
40
51
  static createFromTokenMap<T extends MultiChain>(maxAllowedFeeDiffPPM: bigint, assets: RedundantSwapPriceAssets<T>, cacheTimeout?: number): RedundantSwapPrice<T>;
41
- coinsDecimals: CoinDecimals<T>;
42
- priceApis: {
52
+ protected coinsDecimals: CoinDecimals<T>;
53
+ protected priceApis: {
43
54
  priceApi: IPriceProvider<T>;
44
55
  operational?: boolean;
45
56
  }[];
@@ -73,9 +84,12 @@ export declare class RedundantSwapPrice<T extends MultiChain> extends ICachedSwa
73
84
  * @param chainIdentifier
74
85
  * @param token
75
86
  * @param abortSignal
76
- * @private
87
+ * @protected
77
88
  */
78
89
  protected fetchPrice<C extends ChainIds<T>>(chainIdentifier: C, token: string, abortSignal?: AbortSignal): Promise<bigint>;
90
+ /**
91
+ * @inheritDoc
92
+ */
79
93
  protected getDecimals<C extends ChainIds<T>>(chainIdentifier: C, token: string): number | null;
80
94
  /**
81
95
  * Fetches BTC price in USD in parallel from multiple maybe operational price APIs
@@ -84,6 +98,13 @@ export declare class RedundantSwapPrice<T extends MultiChain> extends ICachedSwa
84
98
  * @private
85
99
  */
86
100
  private fetchUsdPriceFromMaybeOperationalPriceApis;
101
+ /**
102
+ * Fetches the USD prices, first tries to use the operational price API (if any) and if that fails it falls back
103
+ * to using maybe operational price APIs
104
+ *
105
+ * @param abortSignal
106
+ * @protected
107
+ */
87
108
  protected fetchUsdPrice(abortSignal?: AbortSignal): Promise<number>;
88
109
  }
89
110
  export {};
@@ -15,9 +15,19 @@ const logger = (0, Logger_1.getLogger)("RedundantSwapPrice: ");
15
15
  /**
16
16
  * Swap price API using multiple price sources, handles errors on the APIs and automatically switches between them, such
17
17
  * that there always is a functional API
18
- * @category Pricing and LPs
18
+ *
19
+ * @category Pricing
19
20
  */
20
21
  class RedundantSwapPrice extends ICachedSwapPrice_1.ICachedSwapPrice {
22
+ /**
23
+ * Creates a new {@link RedundantSwapPrice} instance from an asset list and other data, using all
24
+ * the available price providers: {@link BinancePriceProvider}, {@link OKXPriceProvider},
25
+ * {@link CoinGeckoPriceProvider}, {@link CoinPaprikaPriceProvider}, {@link KrakenPriceProvider}
26
+ *
27
+ * @param maxAllowedFeeDiffPPM Maximum allowed price difference between returned swap prices & market prices
28
+ * @param assets Specifications of the assets
29
+ * @param cacheTimeout Timeout of the internal cache holding prices
30
+ */
21
31
  static createFromTokenMap(maxAllowedFeeDiffPPM, assets, cacheTimeout) {
22
32
  const priceApis = [
23
33
  new BinancePriceProvider_1.BinancePriceProvider(assets.map(coinData => {
@@ -130,7 +140,7 @@ class RedundantSwapPrice extends ICachedSwapPrice_1.ICachedSwapPrice {
130
140
  * @param chainIdentifier
131
141
  * @param token
132
142
  * @param abortSignal
133
- * @private
143
+ * @protected
134
144
  */
135
145
  fetchPrice(chainIdentifier, token, abortSignal) {
136
146
  return (0, RetryUtils_1.tryWithRetries)(async () => {
@@ -149,6 +159,9 @@ class RedundantSwapPrice extends ICachedSwapPrice_1.ICachedSwapPrice {
149
159
  return await this.fetchPriceFromMaybeOperationalPriceApis(chainIdentifier, token, abortSignal);
150
160
  }, undefined, RequestError_1.RequestError, abortSignal);
151
161
  }
162
+ /**
163
+ * @inheritDoc
164
+ */
152
165
  getDecimals(chainIdentifier, token) {
153
166
  if (this.coinsDecimals[chainIdentifier] == null)
154
167
  return null;
@@ -184,6 +197,13 @@ class RedundantSwapPrice extends ICachedSwapPrice_1.ICachedSwapPrice {
184
197
  throw e.find(err => !(err instanceof RequestError_1.RequestError)) || e[0];
185
198
  }
186
199
  }
200
+ /**
201
+ * Fetches the USD prices, first tries to use the operational price API (if any) and if that fails it falls back
202
+ * to using maybe operational price APIs
203
+ *
204
+ * @param abortSignal
205
+ * @protected
206
+ */
187
207
  fetchUsdPrice(abortSignal) {
188
208
  return (0, RetryUtils_1.tryWithRetries)(() => {
189
209
  const operationalPriceApi = this.getOperationalPriceApi();
@@ -2,8 +2,9 @@ import { IPriceProvider } from "./abstract/IPriceProvider";
2
2
  import { ICachedSwapPrice } from "./abstract/ICachedSwapPrice";
3
3
  import { ChainIds, MultiChain } from "../swapper/Swapper";
4
4
  /**
5
- * Swap price API using single price source
6
- * @category Pricing and LPs
5
+ * Swap price API using a single price source
6
+ *
7
+ * @category Pricing
7
8
  */
8
9
  export declare class SingleSwapPrice<T extends MultiChain> extends ICachedSwapPrice<T> {
9
10
  priceProvider: IPriceProvider<T>;
@@ -19,13 +20,15 @@ export declare class SingleSwapPrice<T extends MultiChain> extends ICachedSwapPr
19
20
  */
20
21
  protected fetchPrice<C extends ChainIds<T>>(chainIdentifier: C, token: string, abortSignal?: AbortSignal): Promise<bigint>;
21
22
  /**
22
- * Returns the decimal places of the specified token, or -1 if token should be ignored, returns null if
23
- * token is not found
23
+ * @inheritDoc
24
+ */
25
+ protected getDecimals<C extends ChainIds<T>>(chainIdentifier: C, token: string): number | null;
26
+ /**
27
+ * Fetches BTC price in USD
24
28
  *
25
- * @param chainIdentifier
26
- * @param token
29
+ * @param abortSignal
27
30
  * @protected
31
+ * @returns token price in uSats (micro sats)
28
32
  */
29
- protected getDecimals<C extends ChainIds<T>>(chainIdentifier: C, token: string): number | null;
30
33
  protected fetchUsdPrice(abortSignal?: AbortSignal): Promise<number>;
31
34
  }
@@ -3,8 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SingleSwapPrice = void 0;
4
4
  const ICachedSwapPrice_1 = require("./abstract/ICachedSwapPrice");
5
5
  /**
6
- * Swap price API using single price source
7
- * @category Pricing and LPs
6
+ * Swap price API using a single price source
7
+ *
8
+ * @category Pricing
8
9
  */
9
10
  class SingleSwapPrice extends ICachedSwapPrice_1.ICachedSwapPrice {
10
11
  constructor(maxAllowedFeeDiffPPM, priceProvider, cacheTimeout) {
@@ -24,16 +25,18 @@ class SingleSwapPrice extends ICachedSwapPrice_1.ICachedSwapPrice {
24
25
  return this.priceProvider.getPrice(chainIdentifier, token, abortSignal);
25
26
  }
26
27
  /**
27
- * Returns the decimal places of the specified token, or -1 if token should be ignored, returns null if
28
- * token is not found
29
- *
30
- * @param chainIdentifier
31
- * @param token
32
- * @protected
28
+ * @inheritDoc
33
29
  */
34
30
  getDecimals(chainIdentifier, token) {
35
31
  return this.priceProvider.getDecimals(chainIdentifier, token.toString());
36
32
  }
33
+ /**
34
+ * Fetches BTC price in USD
35
+ *
36
+ * @param abortSignal
37
+ * @protected
38
+ * @returns token price in uSats (micro sats)
39
+ */
37
40
  fetchUsdPrice(abortSignal) {
38
41
  return this.priceProvider.getUsdPrice(abortSignal);
39
42
  }
@@ -4,7 +4,8 @@ import { Token } from "../types/Token";
4
4
  import { PriceInfoType } from "../types/PriceInfoType";
5
5
  /**
6
6
  * Chain-specific wrapper for swap pricing
7
- * @category Pricing and LPs
7
+ *
8
+ * @category Pricing
8
9
  */
9
10
  export declare class SwapPriceWithChain<T extends MultiChain, ChainIdentifier extends ChainIds<T>> {
10
11
  swapPrice: ISwapPrice<T>;
@@ -18,11 +19,11 @@ export declare class SwapPriceWithChain<T extends MultiChain, ChainIdentifier ex
18
19
  * @param satsBaseFee Base fee in sats (BTC) as reported by the intermediary
19
20
  * @param feePPM PPM fee rate as reported by the intermediary
20
21
  * @param paidToken Amount of token to be paid to the swap
21
- * @param token
22
- * @param abortSignal
23
- * @param preFetchedPrice Already pre-fetched price
22
+ * @param tokenAddress Token address to be paid
23
+ * @param abortSignal Abort signal
24
+ * @param preFetchedPrice An optional price pre-fetched with {@link preFetchPrice}
24
25
  */
25
- isValidAmountSend(amountSats: bigint, satsBaseFee: bigint, feePPM: bigint, paidToken: bigint, token: string, abortSignal?: AbortSignal, preFetchedPrice?: bigint): Promise<PriceInfoType>;
26
+ isValidAmountSend(amountSats: bigint, satsBaseFee: bigint, feePPM: bigint, paidToken: bigint, tokenAddress: string, abortSignal?: AbortSignal, preFetchedPrice?: bigint): Promise<PriceInfoType>;
26
27
  /**
27
28
  * Checks whether the swap amounts are valid given the current market rate for a given pair
28
29
  *
@@ -30,41 +31,77 @@ export declare class SwapPriceWithChain<T extends MultiChain, ChainIdentifier ex
30
31
  * @param satsBaseFee Base fee in sats (BTC) as reported by the intermediary
31
32
  * @param feePPM PPM fee rate as reported by the intermediary
32
33
  * @param receiveToken Amount of token to be received from the swap
33
- * @param token
34
+ * @param tokenAddress Token address to be received
35
+ * @param abortSignal Abort signal
36
+ * @param preFetchedPrice An optional price pre-fetched with {@link preFetchPrice}
37
+ */
38
+ isValidAmountReceive(amountSats: bigint, satsBaseFee: bigint, feePPM: bigint, receiveToken: bigint, tokenAddress: string, abortSignal?: AbortSignal, preFetchedPrice?: bigint): Promise<PriceInfoType>;
39
+ /**
40
+ * Pre-fetches the pricing data for a given token, such that further calls to {@link isValidAmountReceive} or
41
+ * {@link isValidAmountSend} are quicker and don't need to wait for the price fetch
42
+ *
43
+ * @param tokenAddress Token address
44
+ * @param abortSignal Abort signal
45
+ */
46
+ preFetchPrice(tokenAddress: string, abortSignal?: AbortSignal): Promise<bigint>;
47
+ /**
48
+ * Pre-fetches the Bitcoin USD price data, such that further calls to {@link getBtcUsdValue},
49
+ * {@link getTokenUsdValue} or {@link getUsdValue} are quicker and don't need to wait for the price fetch
50
+ *
34
51
  * @param abortSignal
35
- * @param preFetchedPrice Already pre-fetched price
36
52
  */
37
- isValidAmountReceive(amountSats: bigint, satsBaseFee: bigint, feePPM: bigint, receiveToken: bigint, token: string, abortSignal?: AbortSignal, preFetchedPrice?: bigint): Promise<PriceInfoType>;
38
- preFetchPrice(token: string, abortSignal?: AbortSignal): Promise<bigint>;
39
53
  preFetchUsdPrice(abortSignal?: AbortSignal): Promise<number>;
40
54
  /**
41
- * Returns amount of {toToken} that are equivalent to {fromAmount} satoshis
55
+ * Returns amount of `toToken` that is equivalent to `fromAmount` satoshis
42
56
  *
43
- * @param fromAmount Amount of satoshis
44
- * @param toToken Token
57
+ * @param fromAmount Amount of satoshis
58
+ * @param toToken Token address
45
59
  * @param abortSignal
46
- * @param preFetchedPrice
60
+ * @param preFetchedPrice An optional price pre-fetched with {@link preFetchPrice}
47
61
  * @throws {Error} when token is not found
48
62
  */
49
63
  getFromBtcSwapAmount(fromAmount: bigint, toToken: string, abortSignal?: AbortSignal, preFetchedPrice?: bigint): Promise<bigint>;
50
64
  /**
51
- * Returns amount of satoshis that are equivalent to {fromAmount} of {fromToken}
65
+ * Returns amount of satoshis that are equivalent to `fromAmount` of `fromToken`
52
66
  *
53
67
  * @param fromAmount Amount of the token
54
- * @param fromToken Token
68
+ * @param fromToken Token address
55
69
  * @param abortSignal
56
- * @param preFetchedPrice Pre-fetched swap price if available
70
+ * @param preFetchedPrice An optional price pre-fetched with {@link preFetchPrice}
57
71
  * @throws {Error} when token is not found
58
72
  */
59
73
  getToBtcSwapAmount(fromAmount: bigint, fromToken: string, abortSignal?: AbortSignal, preFetchedPrice?: bigint): Promise<bigint>;
60
74
  /**
61
75
  * Returns whether the token should be ignored and pricing for it not calculated
62
76
  *
63
- * @param tokenAddress
77
+ * @param tokenAddress Token address
64
78
  * @throws {Error} if token is not found
65
79
  */
66
80
  shouldIgnore(tokenAddress: string): boolean;
67
- getBtcUsdValue(btcSats: bigint, abortSignal?: AbortSignal, preFetchedPrice?: number): Promise<number>;
68
- getTokenUsdValue(tokenAmount: bigint, token: string, abortSignal?: AbortSignal, preFetchedPrice?: number): Promise<number>;
81
+ /**
82
+ * Returns the USD value of the bitcoin amount
83
+ *
84
+ * @param btcSats Bitcoin amount in satoshis
85
+ * @param abortSignal
86
+ * @param preFetchedUsdPrice An optional price pre-fetched with {@link preFetchUsdPrice}
87
+ */
88
+ getBtcUsdValue(btcSats: bigint, abortSignal?: AbortSignal, preFetchedUsdPrice?: number): Promise<number>;
89
+ /**
90
+ * Returns the USD value of the smart chain token amount
91
+ *
92
+ * @param tokenAmount Amount of the token in base units
93
+ * @param tokenAddress Token address
94
+ * @param abortSignal
95
+ * @param preFetchedUsdPrice An optional price pre-fetched with {@link preFetchUsdPrice}
96
+ */
97
+ getTokenUsdValue(tokenAmount: bigint, tokenAddress: string, abortSignal?: AbortSignal, preFetchedUsdPrice?: number): Promise<number>;
98
+ /**
99
+ * Returns the USD value of the token amount
100
+ *
101
+ * @param amount Amount in base units of the token
102
+ * @param token Token to fetch the usd price for
103
+ * @param abortSignal
104
+ * @param preFetchedUsdPrice An optional price pre-fetched with {@link preFetchUsdPrice}
105
+ */
69
106
  getUsdValue(amount: bigint, token: Token<ChainIdentifier>, abortSignal?: AbortSignal, preFetchedUsdPrice?: number): Promise<number>;
70
107
  }