@atomiqlabs/sdk 7.0.11 → 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} +40 -22
  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} +116 -75
  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,315 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SwapperWithChain = void 0;
4
+ const SwapType_1 = require("../enums/SwapType");
5
+ const SwapPriceWithChain_1 = require("../prices/SwapPriceWithChain");
6
+ const SwapperWithSigner_1 = require("./SwapperWithSigner");
7
+ const UserError_1 = require("../errors/UserError");
8
+ const Token_1 = require("../types/Token");
9
+ /**
10
+ * Chain-specific wrapper around Swapper for a particular blockchain
11
+ * @category Core
12
+ */
13
+ class SwapperWithChain {
14
+ get intermediaryDiscovery() {
15
+ return this.swapper.intermediaryDiscovery;
16
+ }
17
+ get mempoolApi() {
18
+ return this.swapper.mempoolApi;
19
+ }
20
+ get bitcoinRpc() {
21
+ return this.swapper.bitcoinRpc;
22
+ }
23
+ get bitcoinNetwork() {
24
+ return this.swapper.bitcoinNetwork;
25
+ }
26
+ get Utils() {
27
+ return this.swapper.Utils;
28
+ }
29
+ get SwapTypeInfo() {
30
+ return this.swapper.SwapTypeInfo;
31
+ }
32
+ constructor(swapper, chainIdentifier) {
33
+ this.swapper = swapper;
34
+ this.chainIdentifier = chainIdentifier;
35
+ this.prices = new SwapPriceWithChain_1.SwapPriceWithChain(swapper.prices, chainIdentifier);
36
+ }
37
+ createToBTCSwap(signer, tokenAddress, address, amount, exactIn, additionalParams, options) {
38
+ return this.swapper.createToBTCSwap(this.chainIdentifier, signer, tokenAddress, address, amount, exactIn, additionalParams, options);
39
+ }
40
+ createToBTCLNSwap(signer, tokenAddress, paymentRequest, additionalParams, options) {
41
+ return this.swapper.createToBTCLNSwap(this.chainIdentifier, signer, tokenAddress, paymentRequest, additionalParams, options);
42
+ }
43
+ createToBTCLNSwapViaLNURL(signer, tokenAddress, lnurlPay, amount, exactIn, additionalParams, options) {
44
+ return this.swapper.createToBTCLNSwapViaLNURL(this.chainIdentifier, signer, tokenAddress, lnurlPay, amount, exactIn, additionalParams, options);
45
+ }
46
+ createToBTCLNSwapViaInvoiceCreateService(signer, tokenAddress, service, amount, exactIn, additionalParams, options) {
47
+ return this.swapper.createToBTCLNSwapViaInvoiceCreateService(this.chainIdentifier, signer, tokenAddress, service, amount, exactIn, additionalParams, options);
48
+ }
49
+ createFromBTCSwap(signer, tokenAddress, amount, exactOut, additionalParams, options) {
50
+ return this.swapper.createFromBTCSwap(this.chainIdentifier, signer, tokenAddress, amount, exactOut, additionalParams, options);
51
+ }
52
+ createFromBTCLNSwap(signer, tokenAddress, amount, exactOut, additionalParams, options) {
53
+ return this.swapper.createFromBTCLNSwap(this.chainIdentifier, signer, tokenAddress, amount, exactOut, additionalParams, options);
54
+ }
55
+ createFromBTCLNSwapViaLNURL(signer, tokenAddress, lnurl, amount, exactOut, additionalParams) {
56
+ return this.swapper.createFromBTCLNSwapViaLNURL(this.chainIdentifier, signer, tokenAddress, lnurl, amount, exactOut, additionalParams);
57
+ }
58
+ createFromBTCLNSwapNew(signer, tokenAddress, amount, exactOut, additionalParams, options) {
59
+ return this.swapper.createFromBTCLNSwapNew(this.chainIdentifier, signer, tokenAddress, amount, exactOut, additionalParams, options);
60
+ }
61
+ createFromBTCLNSwapNewViaLNURL(signer, tokenAddress, lnurl, amount, exactOut, additionalParams, options) {
62
+ return this.swapper.createFromBTCLNSwapNewViaLNURL(this.chainIdentifier, signer, tokenAddress, lnurl, amount, exactOut, additionalParams, options);
63
+ }
64
+ createTrustedLNForGasSwap(signer, amount, trustedIntermediaryUrl) {
65
+ return this.swapper.createTrustedLNForGasSwap(this.chainIdentifier, signer, amount, trustedIntermediaryUrl);
66
+ }
67
+ createTrustedOnchainForGasSwap(signer, amount, refundAddress, trustedIntermediaryUrl) {
68
+ return this.swapper.createTrustedOnchainForGasSwap(this.chainIdentifier, signer, amount, refundAddress, trustedIntermediaryUrl);
69
+ }
70
+ /**
71
+ * Creates a swap from srcToken to dstToken, of a specific token amount, either specifying input amount (exactIn=true)
72
+ * or output amount (exactIn=false), NOTE: For regular -> BTC-LN (lightning) swaps the passed amount is ignored and
73
+ * invoice's pre-set amount is used instead.
74
+ * @deprecated Use swap() instead
75
+ *
76
+ * @param signer Smartchain (Solana, Starknet, etc.) address of the user
77
+ * @param srcToken Source token of the swap, user pays this token
78
+ * @param dstToken Destination token of the swap, user receives this token
79
+ * @param amount Amount of the swap
80
+ * @param exactIn Whether the amount specified is an input amount (exactIn=true) or an output amount (exactIn=false)
81
+ * @param addressLnurlLightningInvoice Bitcoin on-chain address, lightning invoice, LNURL-pay to pay or
82
+ * LNURL-withdrawal to withdraw money from
83
+ */
84
+ create(signer, srcToken, dstToken, amount, exactIn, addressLnurlLightningInvoice) {
85
+ return this.swapper.create(signer, srcToken, dstToken, amount, exactIn, addressLnurlLightningInvoice);
86
+ }
87
+ /**
88
+ * Creates a swap from srcToken to dstToken, of a specific token amount, either specifying input amount (exactIn=true)
89
+ * or output amount (exactIn=false), NOTE: For regular SmartChain -> BTC-LN (lightning) swaps the passed amount is ignored and
90
+ * invoice's pre-set amount is used instead, use LNURL-pay for dynamic amounts
91
+ *
92
+ * @param srcToken Source token of the swap, user pays this token
93
+ * @param dstToken Destination token of the swap, user receives this token
94
+ * @param amount Amount of the swap
95
+ * @param exactIn Whether the amount specified is an input amount (exactIn=true) or an output amount (exactIn=false)
96
+ * @param src Source wallet/lnurl-withdraw of the swap
97
+ * @param dst Destination smart chain address, bitcoin on-chain address, lightning invoice, LNURL-pay
98
+ * @param options Options for the swap
99
+ */
100
+ swap(srcToken, dstToken, amount, exactIn, src, dst, options) {
101
+ if (typeof (srcToken) === "string")
102
+ srcToken = this.getToken(srcToken);
103
+ if (typeof (dstToken) === "string")
104
+ dstToken = this.getToken(dstToken);
105
+ return this.swapper.swap(srcToken, dstToken, amount, exactIn, src, dst, options);
106
+ }
107
+ /**
108
+ * Returns swaps that are in-progress and are claimable for the specific chain, optionally also for a specific signer's address
109
+ */
110
+ getAllSwaps(signer) {
111
+ return this.swapper.getAllSwaps(this.chainIdentifier, signer);
112
+ }
113
+ /**
114
+ * Returns swaps that are in-progress and are claimable for the specific chain, optionally also for a specific signer's address
115
+ */
116
+ getActionableSwaps(signer) {
117
+ return this.swapper.getActionableSwaps(this.chainIdentifier, signer);
118
+ }
119
+ /**
120
+ * Returns swaps that are refundable for the specific chain, optionally also for a specific signer's address
121
+ */
122
+ getRefundableSwaps(signer) {
123
+ return this.swapper.getRefundableSwaps(this.chainIdentifier, signer);
124
+ }
125
+ /**
126
+ * Returns swaps that are due to be claimed/settled manually for the specific chain,
127
+ * optionally also for a specific signer's address
128
+ */
129
+ getClaimableSwaps(signer) {
130
+ return this.swapper.getClaimableSwaps(this.chainIdentifier, signer);
131
+ }
132
+ /**
133
+ * Returns swap with a specific id (identifier) on a specific chain and optionally with a signer
134
+ */
135
+ getSwapById(id, signer) {
136
+ return this.swapper.getSwapById(id, this.chainIdentifier, signer);
137
+ }
138
+ getToken(tickerOrAddress) {
139
+ //Btc tokens - BTC, BTCLN, BTC-LN
140
+ if (tickerOrAddress === "BTC")
141
+ return Token_1.BitcoinTokens.BTC;
142
+ if (tickerOrAddress === "BTCLN" || tickerOrAddress === "BTC-LN")
143
+ return Token_1.BitcoinTokens.BTCLN;
144
+ //Check if the ticker is in format <chainId>-<ticker>, i.e. SOLANA-USDC, STARKNET-WBTC
145
+ if (tickerOrAddress.includes("-")) {
146
+ const [chainId, ticker] = tickerOrAddress.split("-");
147
+ if (chainId !== this.chainIdentifier)
148
+ throw new UserError_1.UserError(`Invalid chainId specified in ticker: ${chainId}, swapper chainId: ${this.chainIdentifier}`);
149
+ const token = this.swapper.tokensByTicker[this.chainIdentifier]?.[ticker];
150
+ if (token == null)
151
+ throw new UserError_1.UserError(`Not found ticker: ${ticker} for chainId: ${chainId}`);
152
+ return token;
153
+ }
154
+ const chain = this.swapper.chains[this.chainIdentifier];
155
+ if (chain.chainInterface.isValidToken(tickerOrAddress)) {
156
+ //Try to find in known token addresses
157
+ const token = this.swapper.tokens[this.chainIdentifier]?.[tickerOrAddress];
158
+ if (token != null)
159
+ return token;
160
+ }
161
+ else {
162
+ //Check in known tickers
163
+ const token = this.swapper.tokensByTicker[this.chainIdentifier]?.[tickerOrAddress];
164
+ if (token != null)
165
+ return token;
166
+ }
167
+ throw new UserError_1.UserError(`Specified token address or ticker ${tickerOrAddress} not found for chainId: ${this.chainIdentifier}!`);
168
+ }
169
+ /**
170
+ * Synchronizes swaps from chain, this is usually ran when SDK is initialized, deletes expired quotes
171
+ */
172
+ async _syncSwaps(signer) {
173
+ return this.swapper._syncSwaps(this.chainIdentifier, signer);
174
+ }
175
+ supportsSwapType(swapType) {
176
+ return this.swapper.supportsSwapType(this.chainIdentifier, swapType);
177
+ }
178
+ getSwapType(srcToken, dstToken) {
179
+ return this.swapper.getSwapType(srcToken, dstToken);
180
+ }
181
+ /**
182
+ * Returns minimum/maximum limits for inputs and outputs for a swap between given tokens
183
+ *
184
+ * @param srcToken
185
+ * @param dstToken
186
+ */
187
+ getSwapLimits(srcToken, dstToken) {
188
+ return this.swapper.getSwapLimits(srcToken, dstToken);
189
+ }
190
+ /**
191
+ * Returns a set of supported tokens by all the intermediaries offering a specific swap service
192
+ *
193
+ * @param _swapType Swap service type to check supported tokens for
194
+ */
195
+ getSupportedTokens(_swapType) {
196
+ const tokens = [];
197
+ this.intermediaryDiscovery.intermediaries.forEach(lp => {
198
+ let swapType = _swapType;
199
+ if (swapType === SwapType_1.SwapType.FROM_BTCLN && this.supportsSwapType(SwapType_1.SwapType.FROM_BTCLN_AUTO))
200
+ swapType = SwapType_1.SwapType.FROM_BTCLN_AUTO;
201
+ if (swapType === SwapType_1.SwapType.FROM_BTC && this.supportsSwapType(SwapType_1.SwapType.SPV_VAULT_FROM_BTC))
202
+ swapType = SwapType_1.SwapType.SPV_VAULT_FROM_BTC;
203
+ const chainTokens = lp.services[swapType]?.chainTokens?.[this.chainIdentifier];
204
+ if (chainTokens == null)
205
+ return;
206
+ for (let tokenAddress of chainTokens) {
207
+ const token = this.swapper.tokens?.[this.chainIdentifier]?.[tokenAddress];
208
+ if (token != null)
209
+ tokens.push(token);
210
+ }
211
+ });
212
+ return tokens;
213
+ }
214
+ /**
215
+ * Returns the set of supported tokens by all the intermediaries we know of offering a specific swapType service
216
+ *
217
+ * @param swapType Specific swap type for which to obtain supported tokens
218
+ */
219
+ getSupportedTokenAddresses(swapType) {
220
+ const set = new Set();
221
+ this.intermediaryDiscovery.intermediaries.forEach(lp => {
222
+ const chainTokens = lp.services[swapType]?.chainTokens?.[this.chainIdentifier];
223
+ if (chainTokens == null)
224
+ return;
225
+ chainTokens.forEach(token => set.add(token));
226
+ });
227
+ return set;
228
+ }
229
+ /**
230
+ * Returns tokens that you can swap to (if input=true) from a given token,
231
+ * or tokens that you can swap from (if input=false) to a given token
232
+ */
233
+ getSwapCounterTokens(token, input) {
234
+ if ((0, Token_1.isSCToken)(token)) {
235
+ const result = [];
236
+ if (input) {
237
+ //TO_BTC or TO_BTCLN
238
+ if (this.getSupportedTokenAddresses(SwapType_1.SwapType.TO_BTCLN).has(token.address)) {
239
+ result.push(Token_1.BitcoinTokens.BTCLN);
240
+ }
241
+ if (this.getSupportedTokenAddresses(SwapType_1.SwapType.TO_BTC).has(token.address)) {
242
+ result.push(Token_1.BitcoinTokens.BTC);
243
+ }
244
+ }
245
+ else {
246
+ //FROM_BTC or FROM_BTCLN
247
+ const fromLightningSwapType = this.supportsSwapType(SwapType_1.SwapType.FROM_BTCLN_AUTO) ? SwapType_1.SwapType.FROM_BTCLN_AUTO : SwapType_1.SwapType.FROM_BTCLN;
248
+ if (this.getSupportedTokenAddresses(fromLightningSwapType).has(token.address)) {
249
+ result.push(Token_1.BitcoinTokens.BTCLN);
250
+ }
251
+ const fromOnchainSwapType = this.supportsSwapType(SwapType_1.SwapType.SPV_VAULT_FROM_BTC) ? SwapType_1.SwapType.SPV_VAULT_FROM_BTC : SwapType_1.SwapType.FROM_BTC;
252
+ if (this.getSupportedTokenAddresses(fromOnchainSwapType).has(token.address)) {
253
+ result.push(Token_1.BitcoinTokens.BTC);
254
+ }
255
+ }
256
+ return result;
257
+ }
258
+ else {
259
+ if (input) {
260
+ if (token.lightning) {
261
+ return this.getSupportedTokens(SwapType_1.SwapType.FROM_BTCLN);
262
+ }
263
+ else {
264
+ return this.getSupportedTokens(SwapType_1.SwapType.FROM_BTC);
265
+ }
266
+ }
267
+ else {
268
+ if (token.lightning) {
269
+ return this.getSupportedTokens(SwapType_1.SwapType.TO_BTCLN);
270
+ }
271
+ else {
272
+ return this.getSupportedTokens(SwapType_1.SwapType.TO_BTC);
273
+ }
274
+ }
275
+ }
276
+ }
277
+ /**
278
+ * Creates a child swapper instance with a signer
279
+ *
280
+ * @param signer Signer to use for the new swapper instance
281
+ */
282
+ withChain(signer) {
283
+ return new SwapperWithSigner_1.SwapperWithSigner(this, signer);
284
+ }
285
+ ///////////////////////////////////
286
+ /// Deprecated
287
+ /**
288
+ * Returns swap bounds (minimums & maximums) for different swap types & tokens
289
+ * @deprecated Use getSwapLimits() instead!
290
+ */
291
+ getSwapBounds() {
292
+ return this.swapper.getSwapBounds(this.chainIdentifier);
293
+ }
294
+ /**
295
+ * Returns maximum possible swap amount
296
+ * @deprecated Use getSwapLimits() instead!
297
+ *
298
+ * @param type Type of the swap
299
+ * @param token Token of the swap
300
+ */
301
+ getMaximum(type, token) {
302
+ return this.swapper.getMaximum(this.chainIdentifier, type, token);
303
+ }
304
+ /**
305
+ * Returns minimum possible swap amount
306
+ * @deprecated Use getSwapLimits() instead!
307
+ *
308
+ * @param type Type of swap
309
+ * @param token Token of the swap
310
+ */
311
+ getMinimum(type, token) {
312
+ return this.swapper.getMinimum(this.chainIdentifier, type, token);
313
+ }
314
+ }
315
+ exports.SwapperWithChain = SwapperWithChain;
@@ -0,0 +1,178 @@
1
+ import { IntermediaryDiscovery, SwapBounds } from "../intermediaries/IntermediaryDiscovery";
2
+ import { SwapType } from "../enums/SwapType";
3
+ import { LnForGasSwap } from "../swaps/trusted/ln/LnForGasSwap";
4
+ import { ISwap } from "../swaps/ISwap";
5
+ import { IToBTCSwap } from "../swaps/escrow_swaps/tobtc/IToBTCSwap";
6
+ import { ChainIds, MultiChain, SupportsSwapType } from "./Swapper";
7
+ import { FromBTCLNSwap } from "../swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap";
8
+ import { FromBTCSwap } from "../swaps/escrow_swaps/frombtc/onchain/FromBTCSwap";
9
+ import { ToBTCLNSwap } from "../swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap";
10
+ import { ToBTCSwap } from "../swaps/escrow_swaps/tobtc/onchain/ToBTCSwap";
11
+ import { SwapPriceWithChain } from "../prices/SwapPriceWithChain";
12
+ import { MempoolApi } from "../bitcoin/mempool/MempoolApi";
13
+ import { MempoolBitcoinRpc } from "../bitcoin/mempool/MempoolBitcoinRpc";
14
+ import { BTC_NETWORK } from "@scure/btc-signer/utils";
15
+ import { ToBTCOptions } from "../swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper";
16
+ import { ToBTCLNOptions } from "../swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper";
17
+ import { FromBTCOptions } from "../swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper";
18
+ import { FromBTCLNOptions } from "../swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper";
19
+ import { SwapperUtils } from "./SwapperUtils";
20
+ import { SpvFromBTCSwap } from "../swaps/spv_swaps/SpvFromBTCSwap";
21
+ import { SwapperWithChain } from "./SwapperWithChain";
22
+ import { SwapWithSigner } from "../types/SwapWithSigner";
23
+ import { OnchainForGasSwap } from "../swaps/trusted/onchain/OnchainForGasSwap";
24
+ import { FromBTCLNAutoSwap } from "../swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap";
25
+ import { FromBTCLNAutoOptions } from "../swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper";
26
+ import { TokenAmount } from "../types/TokenAmount";
27
+ import { BtcToken, SCToken, Token } from "../types/Token";
28
+ import { LNURLWithdraw } from "../types/lnurl/LNURLWithdraw";
29
+ import { LNURLPay } from "../types/lnurl/LNURLPay";
30
+ /**
31
+ * Chain and signer-specific wrapper for automatic signer injection into swap methods
32
+ * @category Core
33
+ */
34
+ export declare class SwapperWithSigner<T extends MultiChain, ChainIdentifier extends ChainIds<T>> {
35
+ readonly chainIdentifier: ChainIdentifier;
36
+ readonly swapper: SwapperWithChain<T, ChainIdentifier>;
37
+ readonly signer: T[ChainIdentifier]["Signer"];
38
+ get prices(): SwapPriceWithChain<T, ChainIdentifier>;
39
+ get intermediaryDiscovery(): IntermediaryDiscovery;
40
+ get mempoolApi(): MempoolApi;
41
+ get bitcoinRpc(): MempoolBitcoinRpc;
42
+ get bitcoinNetwork(): BTC_NETWORK;
43
+ get Utils(): SwapperUtils<T>;
44
+ get SwapTypeInfo(): {
45
+ readonly 2: {
46
+ readonly requiresInputWallet: true;
47
+ readonly requiresOutputWallet: false;
48
+ readonly supportsGasDrop: false;
49
+ };
50
+ readonly 3: {
51
+ readonly requiresInputWallet: true;
52
+ readonly requiresOutputWallet: false;
53
+ readonly supportsGasDrop: false;
54
+ };
55
+ readonly 0: {
56
+ readonly requiresInputWallet: false;
57
+ readonly requiresOutputWallet: true;
58
+ readonly supportsGasDrop: false;
59
+ };
60
+ readonly 1: {
61
+ readonly requiresInputWallet: false;
62
+ readonly requiresOutputWallet: true;
63
+ readonly supportsGasDrop: false;
64
+ };
65
+ readonly 6: {
66
+ readonly requiresInputWallet: true;
67
+ readonly requiresOutputWallet: false;
68
+ readonly supportsGasDrop: true;
69
+ };
70
+ readonly 7: {
71
+ readonly requiresInputWallet: false;
72
+ readonly requiresOutputWallet: false;
73
+ readonly supportsGasDrop: true;
74
+ };
75
+ readonly 4: {
76
+ readonly requiresInputWallet: false;
77
+ readonly requiresOutputWallet: false;
78
+ readonly supportsGasDrop: false;
79
+ };
80
+ readonly 5: {
81
+ readonly requiresInputWallet: false;
82
+ readonly requiresOutputWallet: false;
83
+ readonly supportsGasDrop: false;
84
+ };
85
+ };
86
+ constructor(swapper: SwapperWithChain<T, ChainIdentifier>, signer: T[ChainIdentifier]["Signer"]);
87
+ createToBTCSwap(tokenAddress: string, address: string, amount: bigint, exactIn?: boolean, additionalParams?: Record<string, any>, options?: ToBTCOptions): Promise<SwapWithSigner<ToBTCSwap<T[ChainIdentifier]>>>;
88
+ createToBTCLNSwap(tokenAddress: string, paymentRequest: string, additionalParams?: Record<string, any>, options?: ToBTCLNOptions & {
89
+ comment?: string;
90
+ }): Promise<SwapWithSigner<ToBTCLNSwap<T[ChainIdentifier]>>>;
91
+ createToBTCLNSwapViaLNURL(tokenAddress: string, lnurlPay: string | LNURLPay, amount: bigint, exactIn?: boolean, additionalParams?: Record<string, any>, options?: ToBTCLNOptions): Promise<SwapWithSigner<ToBTCLNSwap<T[ChainIdentifier]>>>;
92
+ createFromBTCSwap(tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any>, options?: FromBTCOptions): Promise<SwapWithSigner<FromBTCSwap<T[ChainIdentifier]>>>;
93
+ createFromBTCLNSwap(tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any>, options?: FromBTCLNOptions): Promise<SwapWithSigner<FromBTCLNSwap<T[ChainIdentifier]>>>;
94
+ createFromBTCLNSwapViaLNURL(tokenAddress: string, lnurl: string | LNURLWithdraw, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any>): Promise<SwapWithSigner<FromBTCLNSwap<T[ChainIdentifier]>>>;
95
+ createFromBTCLNSwapNew(tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any>, options?: FromBTCLNAutoOptions): Promise<SwapWithSigner<FromBTCLNAutoSwap<T[ChainIdentifier]>>>;
96
+ createFromBTCLNSwapNewViaLNURL(tokenAddress: string, lnurl: string | LNURLWithdraw, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any>, options?: FromBTCLNAutoOptions): Promise<SwapWithSigner<FromBTCLNAutoSwap<T[ChainIdentifier]>>>;
97
+ createTrustedLNForGasSwap(amount: bigint, trustedIntermediaryUrl?: string): Promise<LnForGasSwap<T[ChainIdentifier]>>;
98
+ createTrustedOnchainForGasSwap(amount: bigint, refundAddress?: string, trustedIntermediaryUrl?: string): Promise<OnchainForGasSwap<T[ChainIdentifier]>>;
99
+ create(srcToken: BtcToken<true>, dstToken: SCToken<ChainIdentifier>, amount: bigint, exactIn: boolean, lnurlWithdraw?: string | LNURLWithdraw): Promise<(SupportsSwapType<T[ChainIdentifier], SwapType.FROM_BTCLN_AUTO> extends true ? FromBTCLNAutoSwap<T[ChainIdentifier]> : FromBTCLNSwap<T[ChainIdentifier]>)>;
100
+ create(srcToken: BtcToken<false>, dstToken: SCToken<ChainIdentifier>, amount: bigint, exactIn: boolean): Promise<(SupportsSwapType<T[ChainIdentifier], SwapType.SPV_VAULT_FROM_BTC> extends true ? SpvFromBTCSwap<T[ChainIdentifier]> : FromBTCSwap<T[ChainIdentifier]>)>;
101
+ create(srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<false>, amount: bigint, exactIn: boolean, address: string): Promise<ToBTCSwap<T[ChainIdentifier]>>;
102
+ create(srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<true>, amount: bigint, exactIn: boolean, lnurlPay: string | LNURLPay): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
103
+ create(srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<true>, amount: bigint, exactIn: false, lightningInvoice: string | LNURLWithdraw | LNURLPay): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
104
+ /**
105
+ * Returns swaps that are in-progress and are claimable for the specific chain, optionally also for a specific signer's address
106
+ */
107
+ getAllSwaps(): Promise<ISwap<T[ChainIdentifier]>[]>;
108
+ /**
109
+ * Returns swaps that are in-progress and are claimable for the specific chain, optionally also for a specific signer's address
110
+ */
111
+ getActionableSwaps(): Promise<ISwap<T[ChainIdentifier]>[]>;
112
+ /**
113
+ * Returns swaps that are refundable for the specific chain, optionally also for a specific signer's address
114
+ */
115
+ getRefundableSwaps(): Promise<IToBTCSwap<T[ChainIdentifier]>[]>;
116
+ /**
117
+ * Returns swap with a specific id (identifier) on a specific chain and optionally with a signer
118
+ */
119
+ getSwapById(id: string): Promise<ISwap<T[ChainIdentifier]>>;
120
+ /**
121
+ * Synchronizes swaps from chain, this is usually ran when SDK is initialized, deletes expired quotes
122
+ */
123
+ _syncSwaps(): Promise<void>;
124
+ supportsSwapType<Type extends SwapType>(swapType: Type): SupportsSwapType<T[ChainIdentifier], Type>;
125
+ /**
126
+ * Returns type of the swap based on input and output tokens specified
127
+ *
128
+ * @param srcToken
129
+ * @param dstToken
130
+ */
131
+ getSwapType(srcToken: BtcToken<true>, dstToken: SCToken<ChainIdentifier>): (SupportsSwapType<T[ChainIdentifier], SwapType.FROM_BTCLN_AUTO> extends true ? SwapType.FROM_BTCLN_AUTO : SwapType.FROM_BTCLN);
132
+ getSwapType(srcToken: BtcToken<false>, dstToken: SCToken<ChainIdentifier>): (SupportsSwapType<T[ChainIdentifier], SwapType.SPV_VAULT_FROM_BTC> extends true ? SwapType.SPV_VAULT_FROM_BTC : SwapType.FROM_BTC);
133
+ getSwapType(srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<false>): SwapType.TO_BTC;
134
+ getSwapType(srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<true>): SwapType.TO_BTCLN;
135
+ getSwapType(srcToken: Token<ChainIdentifier>, dstToken: Token<ChainIdentifier>): SwapType.FROM_BTCLN_AUTO | SwapType.FROM_BTCLN | SwapType.SPV_VAULT_FROM_BTC | SwapType.FROM_BTC | SwapType.TO_BTC | SwapType.TO_BTCLN;
136
+ /**
137
+ * Returns minimum/maximum limits for inputs and outputs for a swap between given tokens
138
+ *
139
+ * @param srcToken
140
+ * @param dstToken
141
+ */
142
+ getSwapLimits<A extends Token<ChainIdentifier>, B extends Token<ChainIdentifier>>(srcToken: A, dstToken: B): {
143
+ input: {
144
+ min: TokenAmount<string, A>;
145
+ max?: TokenAmount<string, A>;
146
+ };
147
+ output: {
148
+ min: TokenAmount<string, B>;
149
+ max?: TokenAmount<string, B>;
150
+ };
151
+ };
152
+ /**
153
+ * Returns tokens that you can swap to (if input=true) from a given token,
154
+ * or tokens that you can swap from (if input=false) to a given token
155
+ */
156
+ getSwapCounterTokens(token: Token, input: boolean): Token<ChainIdentifier>[];
157
+ /**
158
+ * Returns swap bounds (minimums & maximums) for different swap types & tokens
159
+ * @deprecated Use getSwapLimits() instead!
160
+ */
161
+ getSwapBounds(): SwapBounds;
162
+ /**
163
+ * Returns maximum possible swap amount
164
+ * @deprecated Use getSwapLimits() instead!
165
+ *
166
+ * @param type Type of the swap
167
+ * @param token Token of the swap
168
+ */
169
+ getMaximum(type: SwapType, token: string): bigint;
170
+ /**
171
+ * Returns minimum possible swap amount
172
+ * @deprecated Use getSwapLimits() instead!
173
+ *
174
+ * @param type Type of swap
175
+ * @param token Token of the swap
176
+ */
177
+ getMinimum(type: SwapType, token: string): bigint;
178
+ }
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SwapperWithSigner = void 0;
4
+ const SwapWithSigner_1 = require("../types/SwapWithSigner");
5
+ /**
6
+ * Chain and signer-specific wrapper for automatic signer injection into swap methods
7
+ * @category Core
8
+ */
9
+ class SwapperWithSigner {
10
+ get prices() {
11
+ return this.swapper.prices;
12
+ }
13
+ get intermediaryDiscovery() {
14
+ return this.swapper.intermediaryDiscovery;
15
+ }
16
+ get mempoolApi() {
17
+ return this.swapper.mempoolApi;
18
+ }
19
+ get bitcoinRpc() {
20
+ return this.swapper.bitcoinRpc;
21
+ }
22
+ get bitcoinNetwork() {
23
+ return this.swapper.bitcoinNetwork;
24
+ }
25
+ get Utils() {
26
+ return this.swapper.Utils;
27
+ }
28
+ get SwapTypeInfo() {
29
+ return this.swapper.SwapTypeInfo;
30
+ }
31
+ constructor(swapper, signer) {
32
+ this.swapper = swapper;
33
+ this.signer = signer;
34
+ this.chainIdentifier = swapper.chainIdentifier;
35
+ }
36
+ createToBTCSwap(tokenAddress, address, amount, exactIn, additionalParams, options) {
37
+ return this.swapper.createToBTCSwap(this.signer.getAddress(), tokenAddress, address, amount, exactIn, additionalParams, options)
38
+ .then(swap => (0, SwapWithSigner_1.wrapSwapWithSigner)(swap, this.signer));
39
+ }
40
+ createToBTCLNSwap(tokenAddress, paymentRequest, additionalParams, options) {
41
+ return this.swapper.createToBTCLNSwap(this.signer.getAddress(), tokenAddress, paymentRequest, additionalParams, options)
42
+ .then(swap => (0, SwapWithSigner_1.wrapSwapWithSigner)(swap, this.signer));
43
+ }
44
+ createToBTCLNSwapViaLNURL(tokenAddress, lnurlPay, amount, exactIn, additionalParams, options) {
45
+ return this.swapper.createToBTCLNSwapViaLNURL(this.signer.getAddress(), tokenAddress, lnurlPay, amount, exactIn, additionalParams, options)
46
+ .then(swap => (0, SwapWithSigner_1.wrapSwapWithSigner)(swap, this.signer));
47
+ }
48
+ createFromBTCSwap(tokenAddress, amount, exactOut, additionalParams, options) {
49
+ return this.swapper.createFromBTCSwap(this.signer.getAddress(), tokenAddress, amount, exactOut, additionalParams, options)
50
+ .then(swap => (0, SwapWithSigner_1.wrapSwapWithSigner)(swap, this.signer));
51
+ }
52
+ createFromBTCLNSwap(tokenAddress, amount, exactOut, additionalParams, options) {
53
+ return this.swapper.createFromBTCLNSwap(this.signer.getAddress(), tokenAddress, amount, exactOut, additionalParams, options)
54
+ .then(swap => (0, SwapWithSigner_1.wrapSwapWithSigner)(swap, this.signer));
55
+ }
56
+ createFromBTCLNSwapViaLNURL(tokenAddress, lnurl, amount, exactOut, additionalParams) {
57
+ return this.swapper.createFromBTCLNSwapViaLNURL(this.signer.getAddress(), tokenAddress, lnurl, amount, exactOut, additionalParams)
58
+ .then(swap => (0, SwapWithSigner_1.wrapSwapWithSigner)(swap, this.signer));
59
+ }
60
+ createFromBTCLNSwapNew(tokenAddress, amount, exactOut, additionalParams, options) {
61
+ return this.swapper.createFromBTCLNSwapNew(this.signer.getAddress(), tokenAddress, amount, exactOut, additionalParams, options)
62
+ .then(swap => (0, SwapWithSigner_1.wrapSwapWithSigner)(swap, this.signer));
63
+ }
64
+ createFromBTCLNSwapNewViaLNURL(tokenAddress, lnurl, amount, exactOut, additionalParams, options) {
65
+ return this.swapper.createFromBTCLNSwapNewViaLNURL(this.signer.getAddress(), tokenAddress, lnurl, amount, exactOut, additionalParams, options)
66
+ .then(swap => (0, SwapWithSigner_1.wrapSwapWithSigner)(swap, this.signer));
67
+ }
68
+ createTrustedLNForGasSwap(amount, trustedIntermediaryUrl) {
69
+ return this.swapper.createTrustedLNForGasSwap(this.signer.getAddress(), amount, trustedIntermediaryUrl);
70
+ }
71
+ createTrustedOnchainForGasSwap(amount, refundAddress, trustedIntermediaryUrl) {
72
+ return this.swapper.createTrustedOnchainForGasSwap(this.signer.getAddress(), amount, refundAddress, trustedIntermediaryUrl);
73
+ }
74
+ /**
75
+ * Creates a swap from srcToken to dstToken, of a specific token amount, either specifying input amount (exactIn=true)
76
+ * or output amount (exactIn=false), NOTE: For regular -> BTC-LN (lightning) swaps the passed amount is ignored and
77
+ * invoice's pre-set amount is used instead.
78
+ *
79
+ * @param srcToken Source token of the swap, user pays this token
80
+ * @param dstToken Destination token of the swap, user receives this token
81
+ * @param amount Amount of the swap
82
+ * @param exactIn Whether the amount specified is an input amount (exactIn=true) or an output amount (exactIn=false)
83
+ * @param addressLnurlLightningInvoice Bitcoin on-chain address, lightning invoice, LNURL-pay to pay or
84
+ * LNURL-withdrawal to withdraw money from
85
+ */
86
+ create(srcToken, dstToken, amount, exactIn, addressLnurlLightningInvoice) {
87
+ return this.swapper.create(this.signer.getAddress(), srcToken, dstToken, amount, exactIn, addressLnurlLightningInvoice)
88
+ .then(swap => (0, SwapWithSigner_1.wrapSwapWithSigner)(swap, this.signer));
89
+ }
90
+ /**
91
+ * Returns swaps that are in-progress and are claimable for the specific chain, optionally also for a specific signer's address
92
+ */
93
+ getAllSwaps() {
94
+ return this.swapper.getAllSwaps(this.signer.getAddress());
95
+ }
96
+ /**
97
+ * Returns swaps that are in-progress and are claimable for the specific chain, optionally also for a specific signer's address
98
+ */
99
+ getActionableSwaps() {
100
+ return this.swapper.getActionableSwaps(this.signer.getAddress());
101
+ }
102
+ /**
103
+ * Returns swaps that are refundable for the specific chain, optionally also for a specific signer's address
104
+ */
105
+ getRefundableSwaps() {
106
+ return this.swapper.getRefundableSwaps(this.signer.getAddress());
107
+ }
108
+ /**
109
+ * Returns swap with a specific id (identifier) on a specific chain and optionally with a signer
110
+ */
111
+ getSwapById(id) {
112
+ return this.swapper.getSwapById(id, this.signer.getAddress());
113
+ }
114
+ /**
115
+ * Synchronizes swaps from chain, this is usually ran when SDK is initialized, deletes expired quotes
116
+ */
117
+ async _syncSwaps() {
118
+ return this.swapper._syncSwaps(this.signer.getAddress());
119
+ }
120
+ supportsSwapType(swapType) {
121
+ return this.swapper.supportsSwapType(swapType);
122
+ }
123
+ getSwapType(srcToken, dstToken) {
124
+ return this.swapper.getSwapType(srcToken, dstToken);
125
+ }
126
+ /**
127
+ * Returns minimum/maximum limits for inputs and outputs for a swap between given tokens
128
+ *
129
+ * @param srcToken
130
+ * @param dstToken
131
+ */
132
+ getSwapLimits(srcToken, dstToken) {
133
+ return this.swapper.getSwapLimits(srcToken, dstToken);
134
+ }
135
+ /**
136
+ * Returns tokens that you can swap to (if input=true) from a given token,
137
+ * or tokens that you can swap from (if input=false) to a given token
138
+ */
139
+ getSwapCounterTokens(token, input) {
140
+ return this.swapper.getSwapCounterTokens(token, input);
141
+ }
142
+ ///////////////////////////////////
143
+ /// Deprecated
144
+ /**
145
+ * Returns swap bounds (minimums & maximums) for different swap types & tokens
146
+ * @deprecated Use getSwapLimits() instead!
147
+ */
148
+ getSwapBounds() {
149
+ return this.swapper.getSwapBounds();
150
+ }
151
+ /**
152
+ * Returns maximum possible swap amount
153
+ * @deprecated Use getSwapLimits() instead!
154
+ *
155
+ * @param type Type of the swap
156
+ * @param token Token of the swap
157
+ */
158
+ getMaximum(type, token) {
159
+ return this.swapper.getMaximum(type, token);
160
+ }
161
+ /**
162
+ * Returns minimum possible swap amount
163
+ * @deprecated Use getSwapLimits() instead!
164
+ *
165
+ * @param type Type of swap
166
+ * @param token Token of the swap
167
+ */
168
+ getMinimum(type, token) {
169
+ return this.swapper.getMinimum(type, token);
170
+ }
171
+ }
172
+ exports.SwapperWithSigner = SwapperWithSigner;