@atomiqlabs/sdk 8.1.7 → 8.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (253) hide show
  1. package/dist/bitcoin/wallet/BitcoinWallet.d.ts +41 -5
  2. package/dist/bitcoin/wallet/BitcoinWallet.js +36 -1
  3. package/dist/bitcoin/wallet/IBitcoinWallet.d.ts +52 -2
  4. package/dist/bitcoin/wallet/IBitcoinWallet.js +2 -1
  5. package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.d.ts +42 -7
  6. package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.js +36 -1
  7. package/dist/enums/FeeType.d.ts +7 -0
  8. package/dist/enums/FeeType.js +7 -0
  9. package/dist/enums/SwapAmountType.d.ts +7 -0
  10. package/dist/enums/SwapAmountType.js +7 -0
  11. package/dist/enums/SwapDirection.d.ts +7 -0
  12. package/dist/enums/SwapDirection.js +7 -0
  13. package/dist/enums/SwapType.d.ts +62 -1
  14. package/dist/enums/SwapType.js +62 -1
  15. package/dist/errors/IntermediaryError.d.ts +4 -0
  16. package/dist/errors/IntermediaryError.js +1 -0
  17. package/dist/errors/RequestError.d.ts +15 -1
  18. package/dist/errors/RequestError.js +8 -0
  19. package/dist/errors/UserError.d.ts +1 -0
  20. package/dist/errors/UserError.js +1 -0
  21. package/dist/index.d.ts +4 -5
  22. package/dist/index.js +3 -4
  23. package/dist/intermediaries/Intermediary.d.ts +57 -10
  24. package/dist/intermediaries/Intermediary.js +37 -10
  25. package/dist/intermediaries/IntermediaryDiscovery.d.ts +55 -22
  26. package/dist/intermediaries/IntermediaryDiscovery.js +35 -22
  27. package/dist/prices/RedundantSwapPrice.d.ts +24 -3
  28. package/dist/prices/RedundantSwapPrice.js +21 -1
  29. package/dist/prices/SingleSwapPrice.d.ts +9 -6
  30. package/dist/prices/SingleSwapPrice.js +10 -7
  31. package/dist/prices/SwapPriceWithChain.d.ts +54 -16
  32. package/dist/prices/SwapPriceWithChain.js +58 -20
  33. package/dist/prices/abstract/ISwapPrice.d.ts +94 -45
  34. package/dist/prices/abstract/ISwapPrice.js +103 -55
  35. package/dist/prices/providers/BinancePriceProvider.d.ts +7 -0
  36. package/dist/prices/providers/BinancePriceProvider.js +7 -0
  37. package/dist/prices/providers/CoinGeckoPriceProvider.d.ts +6 -0
  38. package/dist/prices/providers/CoinGeckoPriceProvider.js +6 -0
  39. package/dist/prices/providers/CoinPaprikaPriceProvider.d.ts +6 -0
  40. package/dist/prices/providers/CoinPaprikaPriceProvider.js +6 -0
  41. package/dist/prices/providers/CustomPriceProvider.d.ts +11 -0
  42. package/dist/prices/providers/CustomPriceProvider.js +11 -0
  43. package/dist/prices/providers/KrakenPriceProvider.d.ts +9 -0
  44. package/dist/prices/providers/KrakenPriceProvider.js +9 -0
  45. package/dist/prices/providers/OKXPriceProvider.d.ts +6 -0
  46. package/dist/prices/providers/OKXPriceProvider.js +6 -0
  47. package/dist/prices/providers/abstract/ExchangePriceProvider.d.ts +3 -0
  48. package/dist/prices/providers/abstract/ExchangePriceProvider.js +3 -0
  49. package/dist/storage/IUnifiedStorage.d.ts +19 -7
  50. package/dist/storage/UnifiedSwapStorage.d.ts +33 -3
  51. package/dist/storage/UnifiedSwapStorage.js +29 -1
  52. package/dist/storage-browser/IndexedDBUnifiedStorage.d.ts +31 -7
  53. package/dist/storage-browser/IndexedDBUnifiedStorage.js +29 -6
  54. package/dist/storage-browser/LocalStorageManager.d.ts +25 -1
  55. package/dist/storage-browser/LocalStorageManager.js +25 -1
  56. package/dist/swapper/Swapper.d.ts +303 -222
  57. package/dist/swapper/Swapper.js +376 -344
  58. package/dist/swapper/SwapperFactory.d.ts +41 -17
  59. package/dist/swapper/SwapperFactory.js +23 -2
  60. package/dist/swapper/SwapperUtils.d.ts +75 -28
  61. package/dist/swapper/SwapperUtils.js +107 -60
  62. package/dist/swapper/SwapperWithChain.d.ts +286 -91
  63. package/dist/swapper/SwapperWithChain.js +218 -64
  64. package/dist/swapper/SwapperWithSigner.d.ts +229 -80
  65. package/dist/swapper/SwapperWithSigner.js +190 -44
  66. package/dist/swaps/IAddressSwap.d.ts +10 -1
  67. package/dist/swaps/IAddressSwap.js +2 -1
  68. package/dist/swaps/IBTCWalletSwap.d.ts +24 -6
  69. package/dist/swaps/IBTCWalletSwap.js +2 -1
  70. package/dist/swaps/IClaimableSwap.d.ts +36 -4
  71. package/dist/swaps/IClaimableSwap.js +2 -1
  72. package/dist/swaps/IClaimableSwapWrapper.d.ts +11 -1
  73. package/dist/swaps/IRefundableSwap.d.ts +29 -3
  74. package/dist/swaps/IRefundableSwap.js +2 -1
  75. package/dist/swaps/ISwap.d.ts +159 -21
  76. package/dist/swaps/ISwap.js +90 -33
  77. package/dist/swaps/ISwapWithGasDrop.d.ts +6 -0
  78. package/dist/swaps/ISwapWithGasDrop.js +1 -0
  79. package/dist/swaps/ISwapWrapper.d.ts +157 -48
  80. package/dist/swaps/ISwapWrapper.js +130 -72
  81. package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.d.ts +49 -6
  82. package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.js +22 -12
  83. package/dist/swaps/escrow_swaps/IEscrowSwap.d.ts +65 -12
  84. package/dist/swaps/escrow_swaps/IEscrowSwap.js +38 -19
  85. package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.d.ts +39 -9
  86. package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.js +30 -21
  87. package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.d.ts +31 -15
  88. package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.js +33 -18
  89. package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.d.ts +94 -29
  90. package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.js +90 -27
  91. package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.d.ts +22 -9
  92. package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.js +24 -11
  93. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.d.ts +275 -58
  94. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.js +516 -239
  95. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.d.ts +76 -25
  96. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.js +131 -49
  97. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.d.ts +311 -51
  98. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.js +542 -193
  99. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.d.ts +87 -26
  100. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.js +147 -58
  101. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.d.ts +209 -53
  102. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.js +449 -242
  103. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.d.ts +77 -23
  104. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.js +116 -46
  105. package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.d.ts +197 -56
  106. package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.js +326 -189
  107. package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.d.ts +30 -5
  108. package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.js +44 -19
  109. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.d.ts +60 -19
  110. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.js +74 -31
  111. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.d.ts +76 -50
  112. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.js +106 -101
  113. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.d.ts +36 -13
  114. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.js +65 -19
  115. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.d.ts +46 -17
  116. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.js +82 -27
  117. package/dist/swaps/spv_swaps/SpvFromBTCSwap.d.ts +328 -92
  118. package/dist/swaps/spv_swaps/SpvFromBTCSwap.js +460 -219
  119. package/dist/swaps/spv_swaps/SpvFromBTCWrapper.d.ts +76 -24
  120. package/dist/swaps/spv_swaps/SpvFromBTCWrapper.js +244 -124
  121. package/dist/swaps/trusted/ln/LnForGasSwap.d.ts +146 -18
  122. package/dist/swaps/trusted/ln/LnForGasSwap.js +173 -43
  123. package/dist/swaps/trusted/ln/LnForGasWrapper.d.ts +29 -10
  124. package/dist/swaps/trusted/ln/LnForGasWrapper.js +30 -11
  125. package/dist/swaps/trusted/onchain/OnchainForGasSwap.d.ts +200 -47
  126. package/dist/swaps/trusted/onchain/OnchainForGasSwap.js +230 -78
  127. package/dist/swaps/trusted/onchain/OnchainForGasWrapper.d.ts +34 -12
  128. package/dist/swaps/trusted/onchain/OnchainForGasWrapper.js +33 -14
  129. package/dist/types/AmountData.d.ts +2 -1
  130. package/dist/types/CustomPriceFunction.d.ts +7 -1
  131. package/dist/types/SwapExecutionAction.d.ts +74 -4
  132. package/dist/types/SwapWithSigner.d.ts +4 -1
  133. package/dist/types/SwapWithSigner.js +5 -2
  134. package/dist/types/Token.d.ts +11 -5
  135. package/dist/types/Token.js +6 -3
  136. package/dist/types/TokenAmount.d.ts +3 -0
  137. package/dist/types/TokenAmount.js +2 -0
  138. package/dist/types/fees/Fee.d.ts +2 -1
  139. package/dist/types/fees/FeeBreakdown.d.ts +2 -1
  140. package/dist/types/fees/PercentagePPM.d.ts +2 -0
  141. package/dist/types/fees/PercentagePPM.js +1 -0
  142. package/dist/types/lnurl/LNURLPay.d.ts +14 -6
  143. package/dist/types/lnurl/LNURLPay.js +6 -2
  144. package/dist/types/lnurl/LNURLWithdraw.d.ts +12 -5
  145. package/dist/types/lnurl/LNURLWithdraw.js +6 -2
  146. package/dist/types/wallets/LightningInvoiceCreateService.d.ts +20 -0
  147. package/dist/types/wallets/LightningInvoiceCreateService.js +15 -0
  148. package/dist/types/wallets/MinimalBitcoinWalletInterface.d.ts +3 -1
  149. package/dist/types/wallets/MinimalLightningNetworkWalletInterface.d.ts +3 -1
  150. package/dist/utils/BitcoinUtils.d.ts +1 -0
  151. package/dist/utils/BitcoinUtils.js +5 -1
  152. package/dist/utils/SwapUtils.d.ts +56 -1
  153. package/dist/utils/SwapUtils.js +53 -1
  154. package/dist/utils/TokenUtils.d.ts +10 -2
  155. package/dist/utils/TokenUtils.js +12 -4
  156. package/package.json +3 -3
  157. package/src/bitcoin/wallet/BitcoinWallet.ts +41 -5
  158. package/src/bitcoin/wallet/IBitcoinWallet.ts +57 -2
  159. package/src/bitcoin/wallet/SingleAddressBitcoinWallet.ts +42 -6
  160. package/src/enums/FeeType.ts +7 -0
  161. package/src/enums/SwapAmountType.ts +7 -0
  162. package/src/enums/SwapDirection.ts +7 -0
  163. package/src/enums/SwapType.ts +62 -2
  164. package/src/errors/IntermediaryError.ts +4 -0
  165. package/src/errors/RequestError.ts +15 -1
  166. package/src/errors/UserError.ts +1 -0
  167. package/src/index.ts +6 -5
  168. package/src/intermediaries/Intermediary.ts +57 -10
  169. package/src/intermediaries/IntermediaryDiscovery.ts +60 -27
  170. package/src/prices/RedundantSwapPrice.ts +24 -4
  171. package/src/prices/SingleSwapPrice.ts +10 -7
  172. package/src/prices/SwapPriceWithChain.ts +59 -21
  173. package/src/prices/abstract/ISwapPrice.ts +114 -65
  174. package/src/prices/providers/BinancePriceProvider.ts +7 -0
  175. package/src/prices/providers/CoinGeckoPriceProvider.ts +6 -0
  176. package/src/prices/providers/CoinPaprikaPriceProvider.ts +6 -0
  177. package/src/prices/providers/CustomPriceProvider.ts +11 -0
  178. package/src/prices/providers/KrakenPriceProvider.ts +9 -0
  179. package/src/prices/providers/OKXPriceProvider.ts +6 -0
  180. package/src/prices/providers/abstract/ExchangePriceProvider.ts +3 -0
  181. package/src/storage/IUnifiedStorage.ts +19 -7
  182. package/src/storage/UnifiedSwapStorage.ts +33 -3
  183. package/src/storage-browser/IndexedDBUnifiedStorage.ts +31 -8
  184. package/src/storage-browser/LocalStorageManager.ts +25 -1
  185. package/src/swapper/Swapper.ts +513 -379
  186. package/src/swapper/SwapperFactory.ts +44 -21
  187. package/src/swapper/SwapperUtils.ts +107 -60
  188. package/src/swapper/SwapperWithChain.ts +320 -81
  189. package/src/swapper/SwapperWithSigner.ts +263 -56
  190. package/src/swaps/IAddressSwap.ts +11 -1
  191. package/src/swaps/IBTCWalletSwap.ts +24 -8
  192. package/src/swaps/IClaimableSwap.ts +39 -4
  193. package/src/swaps/IClaimableSwapWrapper.ts +11 -2
  194. package/src/swaps/IRefundableSwap.ts +32 -3
  195. package/src/swaps/ISwap.ts +221 -82
  196. package/src/swaps/ISwapWithGasDrop.ts +6 -0
  197. package/src/swaps/ISwapWrapper.ts +212 -94
  198. package/src/swaps/escrow_swaps/IEscrowSelfInitSwap.ts +62 -18
  199. package/src/swaps/escrow_swaps/IEscrowSwap.ts +83 -37
  200. package/src/swaps/escrow_swaps/IEscrowSwapWrapper.ts +61 -30
  201. package/src/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.ts +37 -19
  202. package/src/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.ts +120 -51
  203. package/src/swaps/escrow_swaps/frombtc/IFromBTCWrapper.ts +24 -11
  204. package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.ts +559 -256
  205. package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.ts +155 -61
  206. package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.ts +590 -226
  207. package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.ts +177 -74
  208. package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.ts +470 -243
  209. package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.ts +141 -59
  210. package/src/swaps/escrow_swaps/tobtc/IToBTCSwap.ts +352 -193
  211. package/src/swaps/escrow_swaps/tobtc/IToBTCWrapper.ts +48 -23
  212. package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.ts +86 -39
  213. package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.ts +110 -110
  214. package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.ts +88 -33
  215. package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.ts +101 -31
  216. package/src/swaps/spv_swaps/SpvFromBTCSwap.ts +534 -263
  217. package/src/swaps/spv_swaps/SpvFromBTCWrapper.ts +289 -148
  218. package/src/swaps/trusted/ln/LnForGasSwap.ts +184 -45
  219. package/src/swaps/trusted/ln/LnForGasWrapper.ts +34 -15
  220. package/src/swaps/trusted/onchain/OnchainForGasSwap.ts +260 -86
  221. package/src/swaps/trusted/onchain/OnchainForGasWrapper.ts +41 -19
  222. package/src/types/AmountData.ts +2 -1
  223. package/src/types/CustomPriceFunction.ts +7 -1
  224. package/src/types/SwapExecutionAction.ts +84 -5
  225. package/src/types/SwapWithSigner.ts +7 -3
  226. package/src/types/Token.ts +12 -5
  227. package/src/types/TokenAmount.ts +3 -0
  228. package/src/types/fees/Fee.ts +2 -1
  229. package/src/types/fees/FeeBreakdown.ts +2 -1
  230. package/src/types/fees/PercentagePPM.ts +2 -0
  231. package/src/types/lnurl/LNURLPay.ts +14 -6
  232. package/src/types/lnurl/LNURLWithdraw.ts +12 -5
  233. package/src/types/wallets/LightningInvoiceCreateService.ts +26 -0
  234. package/src/types/wallets/MinimalBitcoinWalletInterface.ts +3 -1
  235. package/src/types/wallets/MinimalLightningNetworkWalletInterface.ts +3 -1
  236. package/src/utils/BitcoinUtils.ts +5 -0
  237. package/src/utils/SwapUtils.ts +61 -1
  238. package/src/utils/TokenUtils.ts +12 -4
  239. package/dist/bitcoin/BitcoinRpcWithAddressIndex.d.ts +0 -68
  240. package/dist/bitcoin/BitcoinRpcWithAddressIndex.js +0 -2
  241. package/dist/bitcoin/LightningNetworkApi.d.ts +0 -12
  242. package/dist/bitcoin/LightningNetworkApi.js +0 -2
  243. package/dist/bitcoin/mempool/MempoolApi.d.ts +0 -350
  244. package/dist/bitcoin/mempool/MempoolApi.js +0 -311
  245. package/dist/bitcoin/mempool/MempoolBitcoinBlock.d.ts +0 -44
  246. package/dist/bitcoin/mempool/MempoolBitcoinBlock.js +0 -48
  247. package/dist/bitcoin/mempool/MempoolBitcoinRpc.d.ts +0 -119
  248. package/dist/bitcoin/mempool/MempoolBitcoinRpc.js +0 -361
  249. package/dist/bitcoin/mempool/synchronizer/MempoolBtcRelaySynchronizer.d.ts +0 -22
  250. package/dist/bitcoin/mempool/synchronizer/MempoolBtcRelaySynchronizer.js +0 -105
  251. package/dist/errors/PaymentAuthError.d.ts +0 -11
  252. package/dist/errors/PaymentAuthError.js +0 -23
  253. package/src/errors/PaymentAuthError.ts +0 -26
@@ -5,6 +5,18 @@ import { SwapType } from "../enums/SwapType";
5
5
  import { SwapTypeMapping } from "../utils/SwapUtils";
6
6
  import { CustomPriceFunction } from "../types/CustomPriceFunction";
7
7
  import { MempoolApi, MempoolBitcoinRpc } from "@atomiqlabs/btc-mempool";
8
+ /**
9
+ * Token definitions for a specific chain
10
+ */
11
+ type TypedChainTokens<T extends ChainInitializer<any, any, any>> = {
12
+ [val in keyof T["tokens"]]: SCToken<T["chainId"]>;
13
+ };
14
+ /**
15
+ * Token resolver for a specific chain
16
+ */
17
+ type TypedChainTokenResolver<T extends ChainInitializer<any, any, any>> = {
18
+ getToken: (address: string) => SCToken<T["chainId"]>;
19
+ };
8
20
  type ChainTypeDict<T extends ChainInitializer<any, any, any>> = {
9
21
  [K in T["chainId"]]: T["chainType"];
10
22
  };
@@ -21,7 +33,8 @@ type OptionsDict<T extends ChainInitializer<any, any, any>> = {
21
33
  };
22
34
  type GetAllOptions<T extends readonly ChainInitializer<any, any, any>[]> = (T extends readonly [infer First extends ChainInitializer<any, any, any>, ...infer Rest extends ChainInitializer<any, any, any>[]] ? OptionsDict<First> & GetAllOptions<Rest> : unknown);
23
35
  /**
24
- * Configuration options for creating a typed Swapper instance
36
+ * Configuration options for creating a Swapper instance
37
+ *
25
38
  * @category Core
26
39
  */
27
40
  export type TypedSwapperOptions<T extends readonly ChainInitializer<any, any, any>[]> = {
@@ -33,26 +46,14 @@ export type TypedSwapperOptions<T extends readonly ChainInitializer<any, any, an
33
46
  messenger?: Messenger;
34
47
  } & SwapperOptions;
35
48
  /**
36
- * Token resolver for a specific chain
37
- * @category Core
38
- */
39
- export type TypedChainTokenResolver<T extends ChainInitializer<any, any, any>> = {
40
- getToken: (address: string) => SCToken<T["chainId"]>;
41
- };
42
- /**
43
- * Token resolvers for all chains
49
+ * Token resolvers for all chains, resolve tokens based on their address
50
+ *
44
51
  * @category Core
45
52
  */
46
53
  export type TypedTokenResolvers<T extends readonly ChainInitializer<any, any, any>[]> = (T extends readonly [infer First extends ChainInitializer<any, any, any>, ...infer Rest extends ChainInitializer<any, any, any>[]] ? TokenResolverDict<First> & TypedTokenResolvers<Rest> : unknown);
47
- /**
48
- * Token definitions for a specific chain
49
- * @category Core
50
- */
51
- export type TypedChainTokens<T extends ChainInitializer<any, any, any>> = {
52
- [val in keyof T["tokens"]]: SCToken<T["chainId"]>;
53
- };
54
54
  /**
55
55
  * All tokens including Bitcoin tokens
56
+ *
56
57
  * @category Core
57
58
  */
58
59
  export type TypedTokens<T extends readonly ChainInitializer<any, ChainType, any>[]> = GetAllTokens<T> & {
@@ -63,24 +64,47 @@ export type TypedTokens<T extends readonly ChainInitializer<any, ChainType, any>
63
64
  };
64
65
  /**
65
66
  * Type alias for a Swapper instance with typed chain support
67
+ *
66
68
  * @category Core
67
69
  */
68
70
  export type TypedSwapper<T extends readonly ChainInitializer<any, ChainType, any>[]> = Swapper<ToMultichain<T>>;
69
71
  /**
70
- * Type alias for a specific swap type on a chain
72
+ * Type alias for a specific swap type
73
+ *
71
74
  * @category Core
72
75
  */
73
76
  export type TypedSwap<T extends ChainInitializer<any, ChainType, any>, S extends SwapType> = SwapTypeMapping<T["chainType"]>[S];
74
77
  /**
75
78
  * Factory class for creating and initializing Swapper instances with typed chain support
79
+ *
76
80
  * @category Core
77
81
  */
78
82
  export declare class SwapperFactory<T extends readonly ChainInitializer<any, ChainType, any>[]> {
79
83
  readonly initializers: T;
84
+ /**
85
+ * All available tokens for the atomiq SDK
86
+ */
80
87
  Tokens: TypedTokens<T>;
88
+ /**
89
+ * Token resolvers for various smart chains supported by the SDK, allow fetching tokens based on their addresses
90
+ */
81
91
  TokenResolver: TypedTokenResolvers<T>;
82
92
  constructor(initializers: T);
93
+ /**
94
+ * Returns a new swapper instance with the passed options.
95
+ *
96
+ * The swapper returned here is not yet initialized, be sure to call {@link Swapper.init}, before
97
+ * calling any other functions in the swapper instance.
98
+ *
99
+ * @param options Options for customizing the swapper instance
100
+ */
83
101
  newSwapper(options: TypedSwapperOptions<T>): TypedSwapper<T>;
102
+ /**
103
+ * Returns a new and already initialized swapper instance with the passed options. There is no need
104
+ * to call {@link Swapper.init} anymore.
105
+ *
106
+ * @param options Options for customizing the swapper instance
107
+ */
84
108
  newSwapperInitialized(options: TypedSwapperOptions<T>): Promise<TypedSwapper<T>>;
85
109
  }
86
110
  export {};
@@ -48,14 +48,21 @@ const nostrUrls = [
48
48
  ];
49
49
  /**
50
50
  * Factory class for creating and initializing Swapper instances with typed chain support
51
+ *
51
52
  * @category Core
52
53
  */
53
54
  class SwapperFactory {
54
55
  constructor(initializers) {
55
56
  this.initializers = initializers;
57
+ /**
58
+ * All available tokens for the atomiq SDK
59
+ */
56
60
  this.Tokens = {
57
61
  BITCOIN: Token_1.BitcoinTokens
58
62
  };
63
+ /**
64
+ * Token resolvers for various smart chains supported by the SDK, allow fetching tokens based on their addresses
65
+ */
59
66
  this.TokenResolver = {};
60
67
  this.initializers = initializers;
61
68
  initializers.forEach(initializer => {
@@ -78,6 +85,14 @@ class SwapperFactory {
78
85
  };
79
86
  });
80
87
  }
88
+ /**
89
+ * Returns a new swapper instance with the passed options.
90
+ *
91
+ * The swapper returned here is not yet initialized, be sure to call {@link Swapper.init}, before
92
+ * calling any other functions in the swapper instance.
93
+ *
94
+ * @param options Options for customizing the swapper instance
95
+ */
81
96
  newSwapper(options) {
82
97
  options.bitcoinNetwork ??= base_1.BitcoinNetwork.MAINNET;
83
98
  options.storagePrefix ??= "atomiqsdk-" + options.bitcoinNetwork + "-";
@@ -86,13 +101,13 @@ class SwapperFactory {
86
101
  options.registryUrl ??= registries[options.bitcoinNetwork];
87
102
  let bitcoinRpc;
88
103
  if (options.mempoolApi != null) {
89
- bitcoinRpc = options.mempoolApi instanceof btc_mempool_1.MempoolBitcoinRpc ? options.mempoolApi : new btc_mempool_1.MempoolBitcoinRpc(options.mempoolApi);
104
+ bitcoinRpc = options.mempoolApi instanceof btc_mempool_1.MempoolBitcoinRpc ? options.mempoolApi : new btc_mempool_1.MempoolBitcoinRpc(options.mempoolApi, options.bitcoinNetwork);
90
105
  }
91
106
  else {
92
107
  const urls = mempoolUrls[options.bitcoinNetwork];
93
108
  if (urls == null)
94
109
  throw new Error(`No pre-configured urls for ${base_1.BitcoinNetwork[options.bitcoinNetwork]} network were found, please explicitly pass mempoolApi parameter!`);
95
- bitcoinRpc = new btc_mempool_1.MempoolBitcoinRpc(urls);
110
+ bitcoinRpc = new btc_mempool_1.MempoolBitcoinRpc(urls, options.bitcoinNetwork);
96
111
  }
97
112
  const pricingAssets = [];
98
113
  Object.keys(SmartChainAssets_1.SmartChainAssets).forEach((ticker) => {
@@ -127,6 +142,12 @@ class SwapperFactory {
127
142
  RedundantSwapPrice_1.RedundantSwapPrice.createFromTokenMap(options.pricingFeeDifferencePPM ?? 10000n, pricingAssets);
128
143
  return new Swapper_1.Swapper(bitcoinRpc, chains, swapPricing, pricingAssets, options.messenger, options);
129
144
  }
145
+ /**
146
+ * Returns a new and already initialized swapper instance with the passed options. There is no need
147
+ * to call {@link Swapper.init} anymore.
148
+ *
149
+ * @param options Options for customizing the swapper instance
150
+ */
130
151
  async newSwapperInitialized(options) {
131
152
  const swapper = this.newSwapper(options);
132
153
  await swapper.init();
@@ -9,43 +9,51 @@ import { SCToken } from "../types/Token";
9
9
  import { LNURLWithdraw } from "../types/lnurl/LNURLWithdraw";
10
10
  import { LNURLPay } from "../types/lnurl/LNURLPay";
11
11
  /**
12
- * Utility class providing helper methods for swap operations
12
+ * Utility class providing helper methods for address parsing, token balances, serialization
13
+ * and other miscellaneous things.
14
+ *
13
15
  * @category Core
14
16
  */
15
17
  export declare class SwapperUtils<T extends MultiChain> {
16
18
  readonly bitcoinNetwork: BTC_NETWORK;
17
19
  private readonly root;
18
20
  constructor(root: Swapper<T>);
21
+ /**
22
+ * Checks whether a passed address is a valid address on the smart chain
23
+ *
24
+ * @param address Address
25
+ * @param chainId Smart chain identifier string to check the address for
26
+ */
19
27
  isValidSmartChainAddress(address: string, chainId?: ChainIds<T>): boolean;
20
28
  /**
21
- * Returns true if string is a valid BOLT11 bitcoin lightning invoice
29
+ * Checks whether an address is a valid BOLT11 bitcoin lightning invoice
22
30
  *
23
- * @param lnpr
31
+ * @param address Address to check
24
32
  */
25
- isLightningInvoice(lnpr: string): boolean;
33
+ isLightningInvoice(address: string): boolean;
26
34
  /**
27
- * Returns true if string is a valid bitcoin address
35
+ * Checks whether an address is a valid bitcoin address
28
36
  *
29
- * @param addr
37
+ * @param address Address to check
30
38
  */
31
- isValidBitcoinAddress(addr: string): boolean;
39
+ isValidBitcoinAddress(address: string): boolean;
32
40
  /**
33
- * Returns true if string is a valid BOLT11 bitcoin lightning invoice WITH AMOUNT
41
+ * Checks whether an address is a valid BOLT11 bitcoin lightning invoice WITH AMOUNT
34
42
  *
35
- * @param lnpr
43
+ * @param address Address to check
36
44
  */
37
- isValidLightningInvoice(lnpr: string): boolean;
45
+ isValidLightningInvoice(address: string): boolean;
38
46
  /**
39
- * Returns true if string is a valid LNURL (no checking on type is performed)
47
+ * Checks whether an address is a valid LNURL (no checking on type is performed)
40
48
  *
41
- * @param lnurl
49
+ * @param address Address to check
42
50
  */
43
- isValidLNURL(lnurl: string): boolean;
51
+ isValidLNURL(address: string): boolean;
44
52
  /**
45
53
  * Returns type and data about an LNURL
46
54
  *
47
- * @param lnurl
48
- * @param shouldRetry
55
+ * @param lnurl LNURL link to check, can be either `pay` or `withdraw` type
56
+ * @param shouldRetry Optional whether HTTP requests should retried on failure
49
57
  */
50
58
  getLNURLTypeAndData(lnurl: string, shouldRetry?: boolean): Promise<LNURLPay | LNURLWithdraw | null>;
51
59
  /**
@@ -60,12 +68,12 @@ export declare class SwapperUtils<T extends MultiChain> {
60
68
  private parseLightningInvoice;
61
69
  private parseSmartchainAddress;
62
70
  /**
63
- * General parser for bitcoin addresses, LNURLs, lightning invoices, smart chain addresses, also fetches LNURL data
64
- * (hence returns Promise)
71
+ * General parser for bitcoin addresses, LNURLs, lightning invoices, smart chain addresses. Also fetches LNURL data
72
+ * (hence async and returns Promise).
65
73
  *
66
74
  * @param addressString Address to parse
67
75
  * @throws {Error} Error in address parsing
68
- * @returns Address data or null if address doesn't conform to any known format
76
+ * @returns Address data or `null` if address doesn't conform to any known format
69
77
  */
70
78
  parseAddress(addressString: string): Promise<{
71
79
  address: string;
@@ -78,11 +86,11 @@ export declare class SwapperUtils<T extends MultiChain> {
78
86
  } | null>;
79
87
  /**
80
88
  * Synchronous general parser for bitcoin addresses, LNURLs, lightning invoices, smart chain addresses, doesn't fetch
81
- * LNURL data, reports swapType: null instead to prevent returning a Promise
89
+ * LNURL data, returns `swapType: null` instead to prevent returning a Promise
82
90
  *
83
91
  * @param addressString Address to parse
84
92
  * @throws {Error} Error in address parsing
85
- * @returns Address data or null if address doesn't conform to any known format
93
+ * @returns Address data or `null` if address doesn't conform to any known format
86
94
  */
87
95
  parseAddressSync(addressString: string): {
88
96
  address: string;
@@ -93,18 +101,21 @@ export declare class SwapperUtils<T extends MultiChain> {
93
101
  amount?: TokenAmount;
94
102
  } | null;
95
103
  /**
96
- * Returns a random PSBT that can be used for fee estimation, the last output (the LP output) is omitted
97
- * to allow for coinselection algorithm to determine maximum sendable amount there
104
+ * Returns a random PSBT that can be used for fee estimation for SPV vault (UTXO-controlled vault) based swaps
105
+ * {@link SwapType.SPV_VAULT_FROM_BTC}, the last output (the LP output) is omitted to allow for coinselection
106
+ * algorithm to determine maximum sendable amount there
98
107
  *
99
- * @param chainIdentifier
100
- * @param includeGasToken Whether to return the PSBT also with the gas token amount (increases the vSize by 8)
108
+ * @param chainIdentifier Smart chain to swap to
109
+ * @param includeGasToken Whether to return the PSBT also with the gas token amount (increases the vSize by 8)
101
110
  */
102
111
  getRandomSpvVaultPsbt<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, includeGasToken?: boolean): Transaction;
103
112
  /**
104
113
  * Returns the spendable balance of a bitcoin wallet
105
114
  *
106
- * @param wallet
107
- * @param targetChain
115
+ * @param wallet Bitcoin wallet to check the spendable balance for, can either be a simple
116
+ * bitcoin address string or a wallet object
117
+ * @param targetChain Destination smart chain for the swap, the ensures proper spendable balance
118
+ * is estimated taking into consideration different swap primitives available on different chains
108
119
  * @param options Additional options
109
120
  */
110
121
  getBitcoinSpendableBalance(wallet: string | IBitcoinWallet | MinimalBitcoinWalletInterface, targetChain?: ChainIds<T>, options?: {
@@ -116,14 +127,15 @@ export declare class SwapperUtils<T extends MultiChain> {
116
127
  feeRate: number;
117
128
  }>;
118
129
  /**
119
- * Returns the maximum spendable balance of the wallet, deducting the fee needed to initiate a swap for native balances
130
+ * Returns the maximum spendable balance of the smart chain wallet, deducting the fee needed
131
+ * to initiate a swap for native balances
120
132
  */
121
133
  getSpendableBalance<ChainIdentifier extends ChainIds<T>>(wallet: string | T[ChainIdentifier]["Signer"] | T[ChainIdentifier]["NativeSigner"], token: SCToken<ChainIdentifier>, options?: {
122
134
  feeMultiplier?: number;
123
135
  feeRate?: any;
124
136
  }): Promise<TokenAmount>;
125
137
  /**
126
- * Returns the address of the native currency of the chain
138
+ * Returns the address of the native currency of the smart chain
127
139
  */
128
140
  getNativeToken<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier): SCToken<ChainIdentifier>;
129
141
  /**
@@ -140,14 +152,49 @@ export declare class SwapperUtils<T extends MultiChain> {
140
152
  randomAddress<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier): string;
141
153
  /**
142
154
  * Signs and broadcasts the supplied smart chain transaction
155
+ *
156
+ * @param chainIdentifier Smart chain identifier string
157
+ * @param signer Signer to use for signing the transactions
158
+ * @param txs An array of transactions to sign
159
+ * @param abortSignal Abort signal
160
+ * @param onBeforePublish Callback invoked before a transaction is sent (invoked for every transaction to be sent)
143
161
  */
144
162
  sendAndConfirm<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, signer: T[ChainIdentifier]["NativeSigner"] | T[ChainIdentifier]["Signer"], txs: T[ChainIdentifier]["TX"][], abortSignal?: AbortSignal, onBeforePublish?: (txId: string, rawTx: string) => Promise<void>): Promise<string[]>;
145
163
  /**
146
164
  * Broadcasts already signed smart chain transactions
165
+ *
166
+ * @param chainIdentifier Smart chain identifier string
167
+ * @param txs An array of already signed transactions
168
+ * @param abortSignal Abort signal
169
+ * @param onBeforePublish Callback invoked before a transaction is sent (invoked for every transaction to be sent)
147
170
  */
148
171
  sendSignedAndConfirm<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, txs: T[ChainIdentifier]["SignedTXType"][], abortSignal?: AbortSignal, onBeforePublish?: (txId: string, rawTx: string) => Promise<void>): Promise<string[]>;
172
+ /**
173
+ * Serializes an unsigned smart chain transaction
174
+ *
175
+ * @param chainIdentifier Smart chain string identifier
176
+ * @param tx An unsigned transaction to serialize
177
+ */
149
178
  serializeUnsignedTransaction<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, tx: T[ChainIdentifier]["TX"]): Promise<string>;
179
+ /**
180
+ * Deserializes an unsigned smart chain transaction
181
+ *
182
+ * @param chainIdentifier Smart chain string identifier
183
+ * @param tx Serialized unsigned transaction
184
+ */
150
185
  deserializeUnsignedTransaction<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, tx: string): Promise<T[ChainIdentifier]["TX"]>;
186
+ /**
187
+ * Serializes a signed smart chain transaction
188
+ *
189
+ * @param chainIdentifier Smart chain string identifier
190
+ * @param tx A signed transaction to serialize
191
+ */
151
192
  serializeSignedTransaction<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, tx: T[ChainIdentifier]["SignedTXType"]): Promise<string>;
193
+ /**
194
+ * Deserializes a signed smart chain transaction
195
+ *
196
+ * @param chainIdentifier Smart chain string identifier
197
+ * @param tx Serialized signed transaction
198
+ */
152
199
  deserializeSignedTransaction<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, tx: string): Promise<T[ChainIdentifier]["SignedTXType"]>;
153
200
  }