@atomiqlabs/sdk 7.0.12 → 8.0.7

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 (364) hide show
  1. package/README.md +45 -29
  2. package/dist/SmartChainAssets.d.ts +11 -3
  3. package/dist/SmartChainAssets.js +7 -3
  4. package/dist/bitcoin/BitcoinRpcWithAddressIndex.d.ts +68 -0
  5. package/dist/bitcoin/BitcoinRpcWithAddressIndex.js +2 -0
  6. package/dist/bitcoin/LightningNetworkApi.d.ts +12 -0
  7. package/dist/bitcoin/LightningNetworkApi.js +2 -0
  8. package/dist/bitcoin/coinselect2/accumulative.d.ts +6 -0
  9. package/dist/bitcoin/coinselect2/accumulative.js +52 -0
  10. package/dist/bitcoin/coinselect2/blackjack.d.ts +6 -0
  11. package/dist/bitcoin/coinselect2/blackjack.js +38 -0
  12. package/dist/bitcoin/coinselect2/index.d.ts +19 -0
  13. package/dist/bitcoin/coinselect2/index.js +69 -0
  14. package/dist/bitcoin/coinselect2/utils.d.ts +71 -0
  15. package/dist/bitcoin/coinselect2/utils.js +123 -0
  16. package/dist/bitcoin/mempool/MempoolApi.d.ts +350 -0
  17. package/dist/bitcoin/mempool/MempoolApi.js +311 -0
  18. package/dist/bitcoin/mempool/MempoolBitcoinBlock.d.ts +44 -0
  19. package/dist/bitcoin/mempool/MempoolBitcoinBlock.js +48 -0
  20. package/dist/bitcoin/mempool/MempoolBitcoinRpc.d.ts +119 -0
  21. package/dist/bitcoin/mempool/MempoolBitcoinRpc.js +361 -0
  22. package/dist/bitcoin/mempool/synchronizer/MempoolBtcRelaySynchronizer.d.ts +22 -0
  23. package/dist/bitcoin/mempool/synchronizer/MempoolBtcRelaySynchronizer.js +105 -0
  24. package/dist/bitcoin/wallet/BitcoinWallet.d.ts +93 -0
  25. package/dist/bitcoin/wallet/BitcoinWallet.js +273 -0
  26. package/dist/bitcoin/wallet/IBitcoinWallet.d.ts +28 -0
  27. package/dist/bitcoin/wallet/IBitcoinWallet.js +20 -0
  28. package/dist/bitcoin/wallet/MinimalBitcoinWalletInterface.d.ts +21 -0
  29. package/dist/bitcoin/wallet/MinimalBitcoinWalletInterface.js +2 -0
  30. package/dist/bitcoin/wallet/MinimalLightningNetworkWalletInterface.d.ts +7 -0
  31. package/dist/bitcoin/wallet/MinimalLightningNetworkWalletInterface.js +2 -0
  32. package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.d.ts +40 -0
  33. package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.js +86 -0
  34. package/dist/enums/FeeType.d.ts +8 -0
  35. package/dist/enums/FeeType.js +12 -0
  36. package/dist/enums/SwapAmountType.d.ts +8 -0
  37. package/dist/enums/SwapAmountType.js +12 -0
  38. package/dist/enums/SwapDirection.d.ts +8 -0
  39. package/dist/enums/SwapDirection.js +12 -0
  40. package/dist/enums/SwapType.d.ts +14 -0
  41. package/dist/enums/SwapType.js +18 -0
  42. package/dist/errors/IntermediaryError.d.ts +9 -0
  43. package/dist/errors/IntermediaryError.js +26 -0
  44. package/dist/errors/PaymentAuthError.d.ts +11 -0
  45. package/dist/errors/PaymentAuthError.js +23 -0
  46. package/dist/errors/RequestError.d.ts +18 -0
  47. package/dist/errors/RequestError.js +46 -0
  48. package/dist/errors/UserError.d.ts +7 -0
  49. package/dist/errors/UserError.js +15 -0
  50. package/dist/events/UnifiedSwapEventListener.d.ts +23 -0
  51. package/dist/events/UnifiedSwapEventListener.js +130 -0
  52. package/dist/http/HttpUtils.d.ts +27 -0
  53. package/dist/http/HttpUtils.js +91 -0
  54. package/dist/http/paramcoders/IParamReader.d.ts +8 -0
  55. package/dist/http/paramcoders/IParamReader.js +2 -0
  56. package/dist/http/paramcoders/ParamDecoder.d.ts +44 -0
  57. package/dist/http/paramcoders/ParamDecoder.js +132 -0
  58. package/dist/http/paramcoders/ParamEncoder.d.ts +20 -0
  59. package/dist/http/paramcoders/ParamEncoder.js +31 -0
  60. package/dist/http/paramcoders/SchemaVerifier.d.ts +26 -0
  61. package/dist/http/paramcoders/SchemaVerifier.js +145 -0
  62. package/dist/http/paramcoders/client/ResponseParamDecoder.d.ts +11 -0
  63. package/dist/http/paramcoders/client/ResponseParamDecoder.js +57 -0
  64. package/dist/http/paramcoders/client/StreamParamEncoder.d.ts +13 -0
  65. package/dist/http/paramcoders/client/StreamParamEncoder.js +26 -0
  66. package/dist/http/paramcoders/client/StreamingFetchPromise.d.ts +16 -0
  67. package/dist/http/paramcoders/client/StreamingFetchPromise.js +174 -0
  68. package/dist/index.d.ts +82 -4
  69. package/dist/index.js +128 -4
  70. package/dist/intermediaries/Intermediary.d.ts +111 -0
  71. package/dist/intermediaries/Intermediary.js +115 -0
  72. package/dist/intermediaries/IntermediaryDiscovery.d.ts +166 -0
  73. package/dist/intermediaries/IntermediaryDiscovery.js +390 -0
  74. package/dist/intermediaries/apis/IntermediaryAPI.d.ts +436 -0
  75. package/dist/intermediaries/apis/IntermediaryAPI.js +600 -0
  76. package/dist/intermediaries/apis/TrustedIntermediaryAPI.d.ts +154 -0
  77. package/dist/intermediaries/apis/TrustedIntermediaryAPI.js +136 -0
  78. package/dist/lnurl/LNURL.d.ts +102 -0
  79. package/dist/lnurl/LNURL.js +321 -0
  80. package/dist/prices/RedundantSwapPrice.d.ts +89 -0
  81. package/dist/prices/RedundantSwapPrice.js +202 -0
  82. package/dist/prices/SingleSwapPrice.d.ts +31 -0
  83. package/dist/prices/SingleSwapPrice.js +41 -0
  84. package/dist/prices/SwapPriceWithChain.d.ts +70 -0
  85. package/dist/prices/SwapPriceWithChain.js +91 -0
  86. package/dist/prices/abstract/ICachedSwapPrice.d.ts +28 -0
  87. package/dist/prices/abstract/ICachedSwapPrice.js +62 -0
  88. package/dist/prices/abstract/IPriceProvider.d.ts +81 -0
  89. package/dist/prices/abstract/IPriceProvider.js +74 -0
  90. package/dist/prices/abstract/ISwapPrice.d.ts +117 -0
  91. package/dist/prices/abstract/ISwapPrice.js +219 -0
  92. package/dist/prices/providers/BinancePriceProvider.d.ts +16 -0
  93. package/dist/prices/providers/BinancePriceProvider.js +23 -0
  94. package/dist/prices/providers/CoinGeckoPriceProvider.d.ts +17 -0
  95. package/dist/prices/providers/CoinGeckoPriceProvider.js +23 -0
  96. package/dist/prices/providers/CoinPaprikaPriceProvider.d.ts +19 -0
  97. package/dist/prices/providers/CoinPaprikaPriceProvider.js +23 -0
  98. package/dist/prices/providers/CustomPriceProvider.d.ts +13 -0
  99. package/dist/prices/providers/CustomPriceProvider.js +24 -0
  100. package/dist/prices/providers/KrakenPriceProvider.d.ts +29 -0
  101. package/dist/prices/providers/KrakenPriceProvider.js +36 -0
  102. package/dist/prices/providers/OKXPriceProvider.d.ts +28 -0
  103. package/dist/prices/providers/OKXPriceProvider.js +23 -0
  104. package/dist/prices/providers/abstract/ExchangePriceProvider.d.ts +14 -0
  105. package/dist/prices/providers/abstract/ExchangePriceProvider.js +18 -0
  106. package/dist/prices/providers/abstract/HttpPriceProvider.d.ts +7 -0
  107. package/dist/prices/providers/abstract/HttpPriceProvider.js +12 -0
  108. package/dist/storage/IUnifiedStorage.d.ts +73 -0
  109. package/dist/storage/IUnifiedStorage.js +2 -0
  110. package/dist/storage/UnifiedSwapStorage.d.ts +82 -0
  111. package/dist/storage/UnifiedSwapStorage.js +83 -0
  112. package/dist/storage-browser/IndexedDBUnifiedStorage.d.ts +39 -0
  113. package/dist/storage-browser/IndexedDBUnifiedStorage.js +275 -0
  114. package/dist/{storage → storage-browser}/LocalStorageManager.d.ts +1 -0
  115. package/dist/{storage → storage-browser}/LocalStorageManager.js +2 -1
  116. package/dist/swapper/Swapper.d.ts +533 -0
  117. package/dist/swapper/Swapper.js +1566 -0
  118. package/dist/swapper/SwapperFactory.d.ts +87 -0
  119. package/dist/{SwapperFactory.js → swapper/SwapperFactory.js} +37 -19
  120. package/dist/swapper/SwapperUtils.d.ts +153 -0
  121. package/dist/swapper/SwapperUtils.js +420 -0
  122. package/dist/swapper/SwapperWithChain.d.ts +214 -0
  123. package/dist/swapper/SwapperWithChain.js +315 -0
  124. package/dist/swapper/SwapperWithSigner.d.ts +178 -0
  125. package/dist/swapper/SwapperWithSigner.js +172 -0
  126. package/dist/swaps/IAddressSwap.d.ts +13 -0
  127. package/dist/swaps/IAddressSwap.js +13 -0
  128. package/dist/swaps/IBTCWalletSwap.d.ts +55 -0
  129. package/dist/swaps/IBTCWalletSwap.js +17 -0
  130. package/dist/swaps/IClaimableSwap.d.ts +17 -0
  131. package/dist/swaps/IClaimableSwap.js +14 -0
  132. package/dist/swaps/IClaimableSwapWrapper.d.ts +5 -0
  133. package/dist/swaps/IClaimableSwapWrapper.js +2 -0
  134. package/dist/swaps/IRefundableSwap.d.ts +17 -0
  135. package/dist/swaps/IRefundableSwap.js +13 -0
  136. package/dist/swaps/ISwap.d.ts +207 -0
  137. package/dist/swaps/ISwap.js +264 -0
  138. package/dist/swaps/ISwapWithGasDrop.d.ts +15 -0
  139. package/dist/swaps/ISwapWithGasDrop.js +11 -0
  140. package/dist/swaps/ISwapWrapper.d.ts +153 -0
  141. package/dist/swaps/ISwapWrapper.js +227 -0
  142. package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.d.ts +53 -0
  143. package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.js +116 -0
  144. package/dist/swaps/escrow_swaps/IEscrowSwap.d.ts +70 -0
  145. package/dist/swaps/escrow_swaps/IEscrowSwap.js +132 -0
  146. package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.d.ts +85 -0
  147. package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.js +122 -0
  148. package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.d.ts +86 -0
  149. package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.js +115 -0
  150. package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.d.ts +93 -0
  151. package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.js +121 -0
  152. package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.d.ts +45 -0
  153. package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.js +65 -0
  154. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.d.ts +263 -0
  155. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.js +933 -0
  156. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.d.ts +110 -0
  157. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.js +307 -0
  158. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.d.ts +236 -0
  159. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.js +898 -0
  160. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.d.ts +125 -0
  161. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.js +393 -0
  162. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.d.ts +245 -0
  163. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.js +841 -0
  164. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.d.ts +120 -0
  165. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.js +294 -0
  166. package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.d.ts +228 -0
  167. package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.js +721 -0
  168. package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.d.ts +37 -0
  169. package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.js +93 -0
  170. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.d.ts +86 -0
  171. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.js +213 -0
  172. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.d.ts +170 -0
  173. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.js +520 -0
  174. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.d.ts +50 -0
  175. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.js +109 -0
  176. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.d.ts +93 -0
  177. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.js +217 -0
  178. package/dist/swaps/spv_swaps/SpvFromBTCSwap.d.ts +315 -0
  179. package/dist/swaps/spv_swaps/SpvFromBTCSwap.js +1098 -0
  180. package/dist/swaps/spv_swaps/SpvFromBTCWrapper.d.ts +125 -0
  181. package/dist/swaps/spv_swaps/SpvFromBTCWrapper.js +631 -0
  182. package/dist/swaps/trusted/ln/LnForGasSwap.d.ts +107 -0
  183. package/dist/swaps/trusted/ln/LnForGasSwap.js +343 -0
  184. package/dist/swaps/trusted/ln/LnForGasWrapper.d.ts +21 -0
  185. package/dist/swaps/trusted/ln/LnForGasWrapper.js +62 -0
  186. package/dist/swaps/trusted/onchain/OnchainForGasSwap.d.ts +164 -0
  187. package/dist/swaps/trusted/onchain/OnchainForGasSwap.js +520 -0
  188. package/dist/swaps/trusted/onchain/OnchainForGasWrapper.d.ts +48 -0
  189. package/dist/swaps/trusted/onchain/OnchainForGasWrapper.js +74 -0
  190. package/dist/types/AmountData.d.ts +9 -0
  191. package/dist/types/AmountData.js +2 -0
  192. package/dist/types/CustomPriceFunction.d.ts +5 -0
  193. package/dist/types/CustomPriceFunction.js +2 -0
  194. package/dist/types/PriceInfoType.d.ts +28 -0
  195. package/dist/types/PriceInfoType.js +57 -0
  196. package/dist/types/SwapExecutionAction.d.ts +7 -0
  197. package/dist/types/SwapExecutionAction.js +2 -0
  198. package/dist/types/SwapWithSigner.d.ts +14 -0
  199. package/dist/types/SwapWithSigner.js +40 -0
  200. package/dist/types/Token.d.ts +53 -0
  201. package/dist/types/Token.js +58 -0
  202. package/dist/types/TokenAmount.d.ts +57 -0
  203. package/dist/types/TokenAmount.js +47 -0
  204. package/dist/types/fees/Fee.d.ts +49 -0
  205. package/dist/types/fees/Fee.js +2 -0
  206. package/dist/types/fees/FeeBreakdown.d.ts +10 -0
  207. package/dist/types/fees/FeeBreakdown.js +2 -0
  208. package/dist/types/fees/PercentagePPM.d.ts +15 -0
  209. package/dist/types/fees/PercentagePPM.js +17 -0
  210. package/dist/types/lnurl/LNURLPay.d.ts +54 -0
  211. package/dist/types/lnurl/LNURLPay.js +28 -0
  212. package/dist/types/lnurl/LNURLWithdraw.d.ts +42 -0
  213. package/dist/types/lnurl/LNURLWithdraw.js +24 -0
  214. package/dist/utils/AutomaticClockDriftCorrection.d.ts +1 -0
  215. package/dist/utils/AutomaticClockDriftCorrection.js +70 -0
  216. package/dist/utils/BitcoinUtils.d.ts +13 -0
  217. package/dist/utils/BitcoinUtils.js +98 -0
  218. package/dist/utils/BitcoinWalletUtils.d.ts +7 -0
  219. package/dist/utils/BitcoinWalletUtils.js +14 -0
  220. package/dist/utils/Logger.d.ts +7 -0
  221. package/dist/utils/Logger.js +12 -0
  222. package/dist/utils/RetryUtils.d.ts +21 -0
  223. package/dist/utils/RetryUtils.js +66 -0
  224. package/dist/utils/SwapUtils.d.ts +31 -0
  225. package/dist/utils/SwapUtils.js +18 -0
  226. package/dist/{Utils.d.ts → utils/TimeoutUtils.d.ts} +9 -3
  227. package/dist/utils/TimeoutUtils.js +55 -0
  228. package/dist/utils/TokenUtils.d.ts +11 -0
  229. package/dist/utils/TokenUtils.js +29 -0
  230. package/dist/utils/TypeUtils.d.ts +7 -0
  231. package/dist/utils/TypeUtils.js +2 -0
  232. package/dist/utils/Utils.d.ts +57 -0
  233. package/dist/utils/Utils.js +178 -0
  234. package/package.json +14 -6
  235. package/src/SmartChainAssets.ts +11 -3
  236. package/src/bitcoin/BitcoinRpcWithAddressIndex.ts +87 -0
  237. package/src/bitcoin/LightningNetworkApi.ts +16 -0
  238. package/src/bitcoin/coinselect2/accumulative.ts +68 -0
  239. package/src/bitcoin/coinselect2/blackjack.ts +49 -0
  240. package/src/bitcoin/coinselect2/index.ts +92 -0
  241. package/src/bitcoin/coinselect2/utils.ts +189 -0
  242. package/src/bitcoin/mempool/MempoolApi.ts +554 -0
  243. package/src/bitcoin/mempool/MempoolBitcoinBlock.ts +88 -0
  244. package/src/bitcoin/mempool/MempoolBitcoinRpc.ts +437 -0
  245. package/src/bitcoin/mempool/synchronizer/MempoolBtcRelaySynchronizer.ts +134 -0
  246. package/src/bitcoin/wallet/BitcoinWallet.ts +375 -0
  247. package/src/bitcoin/wallet/IBitcoinWallet.ts +44 -0
  248. package/src/bitcoin/wallet/MinimalBitcoinWalletInterface.ts +19 -0
  249. package/src/bitcoin/wallet/MinimalLightningNetworkWalletInterface.ts +7 -0
  250. package/src/bitcoin/wallet/SingleAddressBitcoinWallet.ts +108 -0
  251. package/src/enums/FeeType.ts +9 -0
  252. package/src/enums/SwapAmountType.ts +9 -0
  253. package/src/enums/SwapDirection.ts +9 -0
  254. package/src/enums/SwapType.ts +15 -0
  255. package/src/errors/IntermediaryError.ts +24 -0
  256. package/src/errors/PaymentAuthError.ts +26 -0
  257. package/src/errors/RequestError.ts +51 -0
  258. package/src/errors/UserError.ts +14 -0
  259. package/src/events/UnifiedSwapEventListener.ts +171 -0
  260. package/src/http/HttpUtils.ts +92 -0
  261. package/src/http/paramcoders/IParamReader.ts +10 -0
  262. package/src/http/paramcoders/ParamDecoder.ts +142 -0
  263. package/src/http/paramcoders/ParamEncoder.ts +37 -0
  264. package/src/http/paramcoders/SchemaVerifier.ts +153 -0
  265. package/src/http/paramcoders/client/ResponseParamDecoder.ts +58 -0
  266. package/src/http/paramcoders/client/StreamParamEncoder.ts +29 -0
  267. package/src/http/paramcoders/client/StreamingFetchPromise.ts +193 -0
  268. package/src/index.ts +102 -4
  269. package/src/intermediaries/Intermediary.ts +204 -0
  270. package/src/intermediaries/IntermediaryDiscovery.ts +485 -0
  271. package/src/intermediaries/apis/IntermediaryAPI.ts +940 -0
  272. package/src/intermediaries/apis/TrustedIntermediaryAPI.ts +257 -0
  273. package/src/lnurl/LNURL.ts +403 -0
  274. package/src/prices/RedundantSwapPrice.ts +245 -0
  275. package/src/prices/SingleSwapPrice.ts +47 -0
  276. package/src/prices/SwapPriceWithChain.ts +157 -0
  277. package/src/prices/abstract/ICachedSwapPrice.ts +86 -0
  278. package/src/prices/abstract/IPriceProvider.ts +128 -0
  279. package/src/prices/abstract/ISwapPrice.ts +328 -0
  280. package/src/prices/providers/BinancePriceProvider.ts +41 -0
  281. package/src/prices/providers/CoinGeckoPriceProvider.ts +40 -0
  282. package/src/prices/providers/CoinPaprikaPriceProvider.ts +44 -0
  283. package/src/prices/providers/CustomPriceProvider.ts +29 -0
  284. package/src/prices/providers/KrakenPriceProvider.ts +74 -0
  285. package/src/prices/providers/OKXPriceProvider.ts +53 -0
  286. package/src/prices/providers/abstract/ExchangePriceProvider.ts +29 -0
  287. package/src/prices/providers/abstract/HttpPriceProvider.ts +15 -0
  288. package/src/storage/IUnifiedStorage.ts +83 -0
  289. package/src/storage/UnifiedSwapStorage.ts +104 -0
  290. package/src/storage-browser/IndexedDBUnifiedStorage.ts +328 -0
  291. package/src/{storage → storage-browser}/LocalStorageManager.ts +2 -1
  292. package/src/swapper/Swapper.ts +2107 -0
  293. package/src/{SwapperFactory.ts → swapper/SwapperFactory.ts} +113 -72
  294. package/src/swapper/SwapperUtils.ts +510 -0
  295. package/src/swapper/SwapperWithChain.ts +464 -0
  296. package/src/swapper/SwapperWithSigner.ts +300 -0
  297. package/src/swaps/IAddressSwap.ts +20 -0
  298. package/src/swaps/IBTCWalletSwap.ts +77 -0
  299. package/src/swaps/IClaimableSwap.ts +30 -0
  300. package/src/swaps/IClaimableSwapWrapper.ts +9 -0
  301. package/src/swaps/IRefundableSwap.ts +29 -0
  302. package/src/swaps/ISwap.ts +490 -0
  303. package/src/swaps/ISwapWithGasDrop.ts +19 -0
  304. package/src/swaps/ISwapWrapper.ts +344 -0
  305. package/src/swaps/escrow_swaps/IEscrowSelfInitSwap.ts +168 -0
  306. package/src/swaps/escrow_swaps/IEscrowSwap.ts +197 -0
  307. package/src/swaps/escrow_swaps/IEscrowSwapWrapper.ts +210 -0
  308. package/src/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.ts +150 -0
  309. package/src/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.ts +219 -0
  310. package/src/swaps/escrow_swaps/frombtc/IFromBTCWrapper.ts +84 -0
  311. package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.ts +1082 -0
  312. package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.ts +429 -0
  313. package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.ts +1078 -0
  314. package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.ts +549 -0
  315. package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.ts +974 -0
  316. package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.ts +443 -0
  317. package/src/swaps/escrow_swaps/tobtc/IToBTCSwap.ts +860 -0
  318. package/src/swaps/escrow_swaps/tobtc/IToBTCWrapper.ts +104 -0
  319. package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.ts +256 -0
  320. package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.ts +716 -0
  321. package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.ts +151 -0
  322. package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.ts +299 -0
  323. package/src/swaps/spv_swaps/SpvFromBTCSwap.ts +1394 -0
  324. package/src/swaps/spv_swaps/SpvFromBTCWrapper.ts +796 -0
  325. package/src/swaps/trusted/ln/LnForGasSwap.ts +402 -0
  326. package/src/swaps/trusted/ln/LnForGasWrapper.ts +70 -0
  327. package/src/swaps/trusted/onchain/OnchainForGasSwap.ts +633 -0
  328. package/src/swaps/trusted/onchain/OnchainForGasWrapper.ts +110 -0
  329. package/src/types/AmountData.ts +9 -0
  330. package/src/types/CustomPriceFunction.ts +5 -0
  331. package/src/types/PriceInfoType.ts +67 -0
  332. package/src/types/SwapExecutionAction.ts +8 -0
  333. package/src/types/SwapWithSigner.ts +57 -0
  334. package/src/types/Token.ts +90 -0
  335. package/src/types/TokenAmount.ts +110 -0
  336. package/src/types/fees/Fee.ts +55 -0
  337. package/src/types/fees/FeeBreakdown.ts +11 -0
  338. package/src/types/fees/PercentagePPM.ts +24 -0
  339. package/src/types/lnurl/LNURLPay.ts +72 -0
  340. package/src/types/lnurl/LNURLWithdraw.ts +55 -0
  341. package/src/utils/AutomaticClockDriftCorrection.ts +71 -0
  342. package/src/utils/BitcoinUtils.ts +86 -0
  343. package/src/utils/BitcoinWalletUtils.ts +16 -0
  344. package/src/utils/Logger.ts +15 -0
  345. package/src/utils/RetryUtils.ts +71 -0
  346. package/src/utils/SwapUtils.ts +38 -0
  347. package/src/utils/TimeoutUtils.ts +50 -0
  348. package/src/utils/TokenUtils.ts +25 -0
  349. package/src/utils/TypeUtils.ts +9 -0
  350. package/src/utils/Utils.ts +182 -0
  351. package/dist/SwapperFactory.d.ts +0 -52
  352. package/dist/Utils.js +0 -37
  353. package/dist/fs-storage/FileSystemStorageManager.d.ts +0 -15
  354. package/dist/fs-storage/FileSystemStorageManager.js +0 -60
  355. package/dist/fs-storage/index.d.ts +0 -1
  356. package/dist/fs-storage/index.js +0 -17
  357. package/src/SmartChainAssets.js +0 -75
  358. package/src/SwapperFactory.js +0 -120
  359. package/src/Utils.js +0 -37
  360. package/src/Utils.ts +0 -31
  361. package/src/fs-storage/FileSystemStorageManager.ts +0 -71
  362. package/src/fs-storage/index.ts +0 -1
  363. package/src/index.js +0 -21
  364. package/src/storage/LocalStorageManager.js +0 -72
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.verifySchema = exports.verifyField = exports.isOptionalField = exports.FieldTypeEnum = exports.parseBigInt = void 0;
4
+ function parseBigInt(str) {
5
+ if (str == null)
6
+ return null;
7
+ if (typeof (str) !== "string" && typeof (str) !== "number")
8
+ return null;
9
+ try {
10
+ return BigInt(str);
11
+ }
12
+ catch (e) {
13
+ return null;
14
+ }
15
+ }
16
+ exports.parseBigInt = parseBigInt;
17
+ var FieldTypeEnum;
18
+ (function (FieldTypeEnum) {
19
+ FieldTypeEnum[FieldTypeEnum["String"] = 0] = "String";
20
+ FieldTypeEnum[FieldTypeEnum["Boolean"] = 1] = "Boolean";
21
+ FieldTypeEnum[FieldTypeEnum["Number"] = 2] = "Number";
22
+ FieldTypeEnum[FieldTypeEnum["BigInt"] = 3] = "BigInt";
23
+ FieldTypeEnum[FieldTypeEnum["Any"] = 4] = "Any";
24
+ FieldTypeEnum[FieldTypeEnum["StringOptional"] = 100] = "StringOptional";
25
+ FieldTypeEnum[FieldTypeEnum["BooleanOptional"] = 101] = "BooleanOptional";
26
+ FieldTypeEnum[FieldTypeEnum["NumberOptional"] = 102] = "NumberOptional";
27
+ FieldTypeEnum[FieldTypeEnum["BigIntOptional"] = 103] = "BigIntOptional";
28
+ FieldTypeEnum[FieldTypeEnum["AnyOptional"] = 104] = "AnyOptional";
29
+ })(FieldTypeEnum = exports.FieldTypeEnum || (exports.FieldTypeEnum = {}));
30
+ function isAllOptional(schema) {
31
+ for (let key in schema) {
32
+ if (!isOptionalField(schema[key]))
33
+ return false;
34
+ }
35
+ return true;
36
+ }
37
+ function isOptionalField(type) {
38
+ if (typeof (type) === "function")
39
+ return type(undefined) != null;
40
+ if (typeof (type) === "object")
41
+ return isAllOptional(type);
42
+ return type >= 100;
43
+ }
44
+ exports.isOptionalField = isOptionalField;
45
+ function verifyField(fieldType, val) {
46
+ const type = fieldType;
47
+ if (typeof (type) === "function") {
48
+ const result = type(val);
49
+ if (result == null)
50
+ return;
51
+ return result;
52
+ }
53
+ if (val == null && isOptionalField(type)) {
54
+ return null;
55
+ }
56
+ if (type === FieldTypeEnum.Any || type === FieldTypeEnum.AnyOptional) {
57
+ return val;
58
+ }
59
+ else if (type === FieldTypeEnum.Boolean || type === FieldTypeEnum.BooleanOptional) {
60
+ if (typeof (val) !== "boolean")
61
+ return;
62
+ return val;
63
+ }
64
+ else if (type === FieldTypeEnum.Number || type === FieldTypeEnum.NumberOptional) {
65
+ if (typeof (val) !== "number")
66
+ return;
67
+ if (isNaN(val))
68
+ return;
69
+ return val;
70
+ }
71
+ else if (type === FieldTypeEnum.BigInt || type === FieldTypeEnum.BigIntOptional) {
72
+ const result = parseBigInt(val);
73
+ if (result == null)
74
+ return;
75
+ return result;
76
+ }
77
+ else if (type === FieldTypeEnum.String || type === FieldTypeEnum.StringOptional) {
78
+ if (typeof (val) !== "string")
79
+ return;
80
+ return val;
81
+ }
82
+ else {
83
+ //Probably another request schema
84
+ const result = verifySchema(val, type);
85
+ if (result == null)
86
+ return;
87
+ return result;
88
+ }
89
+ }
90
+ exports.verifyField = verifyField;
91
+ function verifySchema(req, schema) {
92
+ if (req == null)
93
+ return null;
94
+ const resultSchema = {};
95
+ for (let fieldName in schema) {
96
+ const val = req[fieldName];
97
+ const type = schema[fieldName];
98
+ if (typeof (type) === "function") {
99
+ const result = type(val);
100
+ if (result == null)
101
+ return null;
102
+ resultSchema[fieldName] = result;
103
+ continue;
104
+ }
105
+ if (val == null && isOptionalField(type)) {
106
+ resultSchema[fieldName] = null;
107
+ continue;
108
+ }
109
+ if (type === FieldTypeEnum.Any || type === FieldTypeEnum.AnyOptional) {
110
+ resultSchema[fieldName] = val;
111
+ }
112
+ else if (type === FieldTypeEnum.Boolean || type === FieldTypeEnum.BooleanOptional) {
113
+ if (typeof (val) !== "boolean")
114
+ return null;
115
+ resultSchema[fieldName] = val;
116
+ }
117
+ else if (type === FieldTypeEnum.Number || type === FieldTypeEnum.NumberOptional) {
118
+ if (typeof (val) !== "number")
119
+ return null;
120
+ if (isNaN(val))
121
+ return null;
122
+ resultSchema[fieldName] = val;
123
+ }
124
+ else if (type === FieldTypeEnum.BigInt || type === FieldTypeEnum.BigIntOptional) {
125
+ const result = parseBigInt(val);
126
+ if (result == null)
127
+ return null;
128
+ resultSchema[fieldName] = result;
129
+ }
130
+ else if (type === FieldTypeEnum.String || type === FieldTypeEnum.StringOptional) {
131
+ if (typeof (val) !== "string")
132
+ return null;
133
+ resultSchema[fieldName] = val;
134
+ }
135
+ else {
136
+ //Probably another request schema
137
+ const result = verifySchema(val, type);
138
+ if (result == null)
139
+ return null;
140
+ resultSchema[fieldName] = result;
141
+ }
142
+ }
143
+ return resultSchema;
144
+ }
145
+ exports.verifySchema = verifySchema;
@@ -0,0 +1,11 @@
1
+ import { ParamDecoder } from "../ParamDecoder";
2
+ export declare class ResponseParamDecoder extends ParamDecoder {
3
+ private readonly reader?;
4
+ private readonly abortSignal?;
5
+ constructor(resp: Response, abortSignal?: AbortSignal);
6
+ /**
7
+ * Keeps reading the response until the reader closes
8
+ * @private
9
+ */
10
+ private readResponse;
11
+ }
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ResponseParamDecoder = void 0;
4
+ const ParamDecoder_1 = require("../ParamDecoder");
5
+ const buffer_1 = require("buffer");
6
+ const Logger_1 = require("../../../utils/Logger");
7
+ const logger = (0, Logger_1.getLogger)("ResponseParamDecoder: ");
8
+ class ResponseParamDecoder extends ParamDecoder_1.ParamDecoder {
9
+ constructor(resp, abortSignal) {
10
+ super();
11
+ this.abortSignal = abortSignal;
12
+ try {
13
+ //Read from stream
14
+ if (resp.body == null)
15
+ throw new Error("Response has no body field!");
16
+ this.reader = resp.body.getReader();
17
+ this.readResponse();
18
+ }
19
+ catch (e) {
20
+ //Read in one piece
21
+ resp.arrayBuffer().then(respBuffer => {
22
+ super.onData(buffer_1.Buffer.from(respBuffer));
23
+ super.onEnd();
24
+ }).catch(e => {
25
+ super.onError(e);
26
+ });
27
+ }
28
+ if (abortSignal != null)
29
+ abortSignal.addEventListener("abort", () => {
30
+ super.onError(abortSignal.reason);
31
+ if (this.reader != null && !this.reader.closed)
32
+ this.reader.cancel(abortSignal.reason);
33
+ });
34
+ }
35
+ /**
36
+ * Keeps reading the response until the reader closes
37
+ * @private
38
+ */
39
+ async readResponse() {
40
+ if (this.reader == null)
41
+ return;
42
+ while (true) {
43
+ const readResp = await this.reader.read().catch(e => {
44
+ logger.error("readResponse(): Error reading response: ", e);
45
+ return null;
46
+ });
47
+ if (this.abortSignal != null && this.abortSignal.aborted)
48
+ return;
49
+ if (readResp == null || readResp.done) {
50
+ super.onEnd();
51
+ return;
52
+ }
53
+ super.onData(buffer_1.Buffer.from(readResp.value));
54
+ }
55
+ }
56
+ }
57
+ exports.ResponseParamDecoder = ResponseParamDecoder;
@@ -0,0 +1,13 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import { ParamEncoder } from "../ParamEncoder";
4
+ import { Buffer } from "buffer";
5
+ export declare class StreamParamEncoder extends ParamEncoder {
6
+ private readonly stream;
7
+ private closed;
8
+ constructor();
9
+ /**
10
+ * Returns the readable stream to be passed to the fetch API
11
+ */
12
+ getReadableStream(): ReadableStream<Buffer>;
13
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StreamParamEncoder = void 0;
4
+ const ParamEncoder_1 = require("../ParamEncoder");
5
+ class StreamParamEncoder extends ParamEncoder_1.ParamEncoder {
6
+ constructor() {
7
+ let stream = new TransformStream();
8
+ let writeStream = stream.writable.getWriter();
9
+ writeStream.closed.then(() => this.closed = true);
10
+ super(writeStream.write.bind(writeStream), () => {
11
+ if (this.closed)
12
+ return Promise.resolve();
13
+ this.closed = true;
14
+ return writeStream.close();
15
+ });
16
+ this.closed = false;
17
+ this.stream = stream;
18
+ }
19
+ /**
20
+ * Returns the readable stream to be passed to the fetch API
21
+ */
22
+ getReadableStream() {
23
+ return this.stream.readable;
24
+ }
25
+ }
26
+ exports.StreamParamEncoder = StreamParamEncoder;
@@ -0,0 +1,16 @@
1
+ import { RequestSchema, RequestSchemaResultPromise } from "../SchemaVerifier";
2
+ export type RequestBody = {
3
+ [key: string]: Promise<any> | any;
4
+ };
5
+ /**
6
+ * Sends a POST request to the specified URL in a streaming request/response mode
7
+ *
8
+ * @param url URL to send the request to
9
+ * @param body An object containing properties that should be sent to the server, can be Promise or any
10
+ * @param schema Schema of the response that should be received from the server
11
+ * @param timeout Timeout in millseconds for the request to succeed & all its response properties to resolve
12
+ * @param signal Abort signal
13
+ * @param streamRequest Whether the request should be streamed or not
14
+ * @throws {RequestError} When the response code is not 200
15
+ */
16
+ export declare function streamingFetchPromise<T extends RequestSchema>(url: string, body: RequestBody, schema: T, timeout?: number, signal?: AbortSignal, streamRequest?: boolean): Promise<RequestSchemaResultPromise<T>>;
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.streamingFetchPromise = void 0;
4
+ const SchemaVerifier_1 = require("../SchemaVerifier");
5
+ const RequestError_1 = require("../../../errors/RequestError");
6
+ const Utils_1 = require("../../../utils/Utils");
7
+ const StreamParamEncoder_1 = require("./StreamParamEncoder");
8
+ const ResponseParamDecoder_1 = require("./ResponseParamDecoder");
9
+ const Logger_1 = require("../../../utils/Logger");
10
+ const TimeoutUtils_1 = require("../../../utils/TimeoutUtils");
11
+ const logger = (0, Logger_1.getLogger)("StreamingFetch: ");
12
+ //https://developer.chrome.com/docs/capabilities/web-apis/fetch-streaming-requests#feature_detection
13
+ const supportsRequestStreams = (() => {
14
+ try {
15
+ let duplexAccessed = false;
16
+ const request = new Request('https://example.com/', {
17
+ body: new ReadableStream(),
18
+ method: 'POST',
19
+ get duplex() {
20
+ duplexAccessed = true;
21
+ return 'half';
22
+ },
23
+ });
24
+ const hasContentType = request.headers.has('Content-Type');
25
+ return duplexAccessed && !hasContentType;
26
+ }
27
+ catch (e) {
28
+ logger.error("supportsRequestStreams: Error checking environment support for HTTP request stream", e);
29
+ return false;
30
+ }
31
+ })();
32
+ logger.info("Environment supports request stream: " + supportsRequestStreams);
33
+ /**
34
+ * Sends a POST request to the specified URL in a streaming request/response mode
35
+ *
36
+ * @param url URL to send the request to
37
+ * @param body An object containing properties that should be sent to the server, can be Promise or any
38
+ * @param schema Schema of the response that should be received from the server
39
+ * @param timeout Timeout in millseconds for the request to succeed & all its response properties to resolve
40
+ * @param signal Abort signal
41
+ * @param streamRequest Whether the request should be streamed or not
42
+ * @throws {RequestError} When the response code is not 200
43
+ */
44
+ async function streamingFetchPromise(url, body, schema, timeout, signal, streamRequest) {
45
+ if (streamRequest == null)
46
+ streamRequest = supportsRequestStreams;
47
+ if (timeout != null)
48
+ signal = (0, TimeoutUtils_1.timeoutSignal)(timeout, new Error("Network request timed out"), signal);
49
+ const headers = {};
50
+ const init = {
51
+ method: "POST",
52
+ headers
53
+ };
54
+ const startTime = Date.now();
55
+ const immediateValues = {};
56
+ const promises = [];
57
+ if (!streamRequest) {
58
+ for (let key in body) {
59
+ if (body[key] instanceof Promise) {
60
+ promises.push(body[key].then((val) => {
61
+ immediateValues[key] = val;
62
+ }));
63
+ }
64
+ else {
65
+ immediateValues[key] = body[key];
66
+ }
67
+ }
68
+ try {
69
+ await Promise.all(promises);
70
+ }
71
+ catch (e) {
72
+ e._inputPromiseError = true;
73
+ throw e;
74
+ }
75
+ if (signal != null)
76
+ signal.throwIfAborted();
77
+ logger.debug(url + ": Sending request (" + (Date.now() - startTime) + "ms) (non-streaming): ", immediateValues);
78
+ init.body = JSON.stringify(immediateValues);
79
+ headers['content-type'] = "application/json";
80
+ }
81
+ else {
82
+ const outputStream = new StreamParamEncoder_1.StreamParamEncoder();
83
+ let hasPromiseInBody = false;
84
+ for (let key in body) {
85
+ if (body[key] instanceof Promise) {
86
+ promises.push(body[key].then((val) => {
87
+ logger.debug(url + ": Send param (" + (Date.now() - startTime) + "ms) (streaming): ", { [key]: val });
88
+ return outputStream.writeParams({
89
+ [key]: val
90
+ });
91
+ }));
92
+ hasPromiseInBody = true;
93
+ }
94
+ else {
95
+ immediateValues[key] = body[key];
96
+ }
97
+ }
98
+ if (hasPromiseInBody) {
99
+ init.body = outputStream.getReadableStream();
100
+ headers['content-type'] = "application/x-multiple-json";
101
+ init.duplex = "half";
102
+ logger.debug(url + ": Sending request (" + (Date.now() - startTime) + "ms) (streaming): ", immediateValues);
103
+ promises.push(outputStream.writeParams(immediateValues));
104
+ const abortController = (0, Utils_1.extendAbortController)(signal);
105
+ signal = abortController.signal;
106
+ Promise.all(promises).then(() => outputStream.end()).catch(e => {
107
+ e._inputPromiseError = true;
108
+ abortController.abort(e);
109
+ });
110
+ signal.addEventListener("abort", () => outputStream.end());
111
+ }
112
+ else {
113
+ logger.debug(url + ": Sending request (" + (Date.now() - startTime) + "ms) (non-streaming): ", immediateValues);
114
+ init.body = JSON.stringify(immediateValues);
115
+ headers['content-type'] = "application/json";
116
+ }
117
+ }
118
+ if (signal != null)
119
+ init.signal = signal;
120
+ headers['accept'] = "application/x-multiple-json";
121
+ const resp = await fetch(url, init).catch(e => {
122
+ if (init.signal != null && e.name === "AbortError") {
123
+ throw init.signal.reason;
124
+ }
125
+ else {
126
+ if (e.message != null)
127
+ e.message += streamRequest ? " (streaming req)" : " (non streaming req)";
128
+ throw e;
129
+ }
130
+ });
131
+ logger.debug(url + ": Response status (" + (Date.now() - startTime) + "ms) " + (streamRequest ? "(streaming req)" : "(non streaming req)") + ": ", resp.status);
132
+ if (resp.status !== 200) {
133
+ let respTxt;
134
+ try {
135
+ respTxt = await resp.text();
136
+ }
137
+ catch (e) {
138
+ throw new RequestError_1.RequestError(resp.statusText, resp.status);
139
+ }
140
+ throw new RequestError_1.RequestError(respTxt, resp.status);
141
+ }
142
+ if (resp.headers.get("content-type") !== "application/x-multiple-json") {
143
+ const respBody = await resp.json();
144
+ logger.debug(url + ": Response read (" + (Date.now() - startTime) + "ms) (non streaming resp): ", respBody);
145
+ return (0, Utils_1.objectMap)(schema, (schemaValue, key) => {
146
+ const value = respBody[key];
147
+ const result = (0, SchemaVerifier_1.verifyField)(schemaValue, value);
148
+ if (result === undefined) {
149
+ return Promise.reject(new Error("Invalid field value"));
150
+ }
151
+ else {
152
+ return Promise.resolve(result);
153
+ }
154
+ });
155
+ }
156
+ else {
157
+ const decoder = new ResponseParamDecoder_1.ResponseParamDecoder(resp, init.signal ?? undefined);
158
+ return (0, Utils_1.objectMap)(schema, (schemaValue, key) => decoder.getParam(key).catch(e => {
159
+ if ((0, SchemaVerifier_1.isOptionalField)(schemaValue))
160
+ return undefined;
161
+ throw e;
162
+ }).then(value => {
163
+ logger.debug(url + ": Response frame read (" + (Date.now() - startTime) + "ms) (streaming resp): ", { [key]: value });
164
+ const result = (0, SchemaVerifier_1.verifyField)(schemaValue, value);
165
+ if (result === undefined) {
166
+ return Promise.reject(new Error("Invalid field value"));
167
+ }
168
+ else {
169
+ return result;
170
+ }
171
+ }));
172
+ }
173
+ }
174
+ exports.streamingFetchPromise = streamingFetchPromise;
package/dist/index.d.ts CHANGED
@@ -1,5 +1,83 @@
1
1
  export * from "@atomiqlabs/base";
2
- export * from "@atomiqlabs/sdk-lib";
3
- export * from "./SwapperFactory";
4
- export * from "./Utils";
5
- export * from "./storage/LocalStorageManager";
2
+ export { MempoolApi } from "./bitcoin/mempool/MempoolApi";
3
+ export * from "./bitcoin/mempool/MempoolBitcoinRpc";
4
+ export * from "./bitcoin/wallet/BitcoinWallet";
5
+ export * from "./bitcoin/wallet/IBitcoinWallet";
6
+ export * from "./bitcoin/wallet/MinimalBitcoinWalletInterface";
7
+ export * from "./bitcoin/wallet/MinimalLightningNetworkWalletInterface";
8
+ export * from "./bitcoin/wallet/SingleAddressBitcoinWallet";
9
+ export * from "./enums/FeeType";
10
+ export * from "./enums/SwapAmountType";
11
+ export * from "./enums/SwapDirection";
12
+ export * from "./enums/SwapType";
13
+ export * from "./errors/IntermediaryError";
14
+ export * from "./errors/PaymentAuthError";
15
+ export * from "./errors/RequestError";
16
+ export * from "./errors/UserError";
17
+ export { Intermediary } from "./intermediaries/Intermediary";
18
+ export { IntermediaryDiscovery } from "./intermediaries/IntermediaryDiscovery";
19
+ export * from "./prices/abstract/ISwapPrice";
20
+ export { RedundantSwapPrice } from "./prices/RedundantSwapPrice";
21
+ export * from "./prices/SingleSwapPrice";
22
+ export * from "./prices/SwapPriceWithChain";
23
+ export { BinancePriceProvider } from "./prices/providers/BinancePriceProvider";
24
+ export { CoinGeckoPriceProvider } from "./prices/providers/CoinGeckoPriceProvider";
25
+ export { CoinPaprikaPriceProvider } from "./prices/providers/CoinPaprikaPriceProvider";
26
+ export { KrakenPriceProvider } from "./prices/providers/KrakenPriceProvider";
27
+ export { OKXPriceProvider } from "./prices/providers/OKXPriceProvider";
28
+ export { CustomPriceProvider } from "./prices/providers/CustomPriceProvider";
29
+ export * from "./storage/IUnifiedStorage";
30
+ export * from "./storage/UnifiedSwapStorage";
31
+ export { IndexedDBUnifiedStorage } from "./storage-browser/IndexedDBUnifiedStorage";
32
+ export * from "./storage-browser/LocalStorageManager";
33
+ export { Swapper } from "./swapper/Swapper";
34
+ export * from "./swapper/SwapperFactory";
35
+ export * from "./swapper/SwapperUtils";
36
+ export * from "./swapper/SwapperWithChain";
37
+ export * from "./swapper/SwapperWithSigner";
38
+ export { FromBTCLNSwap, FromBTCLNSwapState } from "./swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap";
39
+ export { FromBTCLNWrapper } from "./swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper";
40
+ export { FromBTCLNAutoSwap, FromBTCLNAutoSwapState } from "./swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap";
41
+ export { FromBTCLNAutoWrapper } from "./swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper";
42
+ export { FromBTCSwap, FromBTCSwapState } from "./swaps/escrow_swaps/frombtc/onchain/FromBTCSwap";
43
+ export { FromBTCWrapper } from "./swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper";
44
+ export { IFromBTCLNWrapper } from "./swaps/escrow_swaps/frombtc/IFromBTCLNWrapper";
45
+ export { IFromBTCSelfInitSwap } from "./swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap";
46
+ export { IFromBTCWrapper } from "./swaps/escrow_swaps/frombtc/IFromBTCWrapper";
47
+ export { ToBTCLNSwap } from "./swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap";
48
+ export { ToBTCLNWrapper } from "./swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper";
49
+ export { ToBTCSwap } from "./swaps/escrow_swaps/tobtc/onchain/ToBTCSwap";
50
+ export { ToBTCWrapper } from "./swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper";
51
+ export { IToBTCSwap, ToBTCSwapState } from "./swaps/escrow_swaps/tobtc/IToBTCSwap";
52
+ export { IToBTCWrapper } from "./swaps/escrow_swaps/tobtc/IToBTCWrapper";
53
+ export { IEscrowSelfInitSwap } from "./swaps/escrow_swaps/IEscrowSelfInitSwap";
54
+ export { IEscrowSwap } from "./swaps/escrow_swaps/IEscrowSwap";
55
+ export { IEscrowSwapWrapper } from "./swaps/escrow_swaps/IEscrowSwapWrapper";
56
+ export { SpvFromBTCSwap, SpvFromBTCSwapState } from "./swaps/spv_swaps/SpvFromBTCSwap";
57
+ export { SpvFromBTCWrapper } from "./swaps/spv_swaps/SpvFromBTCWrapper";
58
+ export { LnForGasSwap, LnForGasSwapState } from "./swaps/trusted/ln/LnForGasSwap";
59
+ export { LnForGasWrapper } from "./swaps/trusted/ln/LnForGasWrapper";
60
+ export { OnchainForGasSwap, OnchainForGasSwapState } from "./swaps/trusted/onchain/OnchainForGasSwap";
61
+ export { OnchainForGasWrapper } from "./swaps/trusted/onchain/OnchainForGasWrapper";
62
+ export * from "./swaps/IAddressSwap";
63
+ export * from "./swaps/IBTCWalletSwap";
64
+ export * from "./swaps/IClaimableSwap";
65
+ export * from "./swaps/IRefundableSwap";
66
+ export * from "./swaps/IAddressSwap";
67
+ export { ISwap } from "./swaps/ISwap";
68
+ export * from "./swaps/ISwapWithGasDrop";
69
+ export { ISwapWrapper } from "./swaps/ISwapWrapper";
70
+ export * from "./types/fees/Fee";
71
+ export * from "./types/fees/FeeBreakdown";
72
+ export * from "./types/fees/PercentagePPM";
73
+ export * from "./types/lnurl/LNURLPay";
74
+ export * from "./types/lnurl/LNURLWithdraw";
75
+ export * from "./types/AmountData";
76
+ export * from "./types/CustomPriceFunction";
77
+ export * from "./types/PriceInfoType";
78
+ export * from "./types/SwapExecutionAction";
79
+ export * from "./types/SwapWithSigner";
80
+ export * from "./types/Token";
81
+ export * from "./types/TokenAmount";
82
+ export * from "./utils/TokenUtils";
83
+ export * from "./utils/SwapUtils";