@atomiqlabs/sdk 7.0.12 → 8.0.8

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,154 @@
1
+ import { FieldTypeEnum, RequestSchemaResult } from "../../http/paramcoders/SchemaVerifier";
2
+ export declare enum AddressStatusResponseCodes {
3
+ EXPIRED = 10001,
4
+ PAID = 10000,
5
+ AWAIT_PAYMENT = 10010,
6
+ AWAIT_CONFIRMATION = 10011,
7
+ PENDING = 10013,
8
+ TX_SENT = 10012,
9
+ REFUNDED = 10014,
10
+ DOUBLE_SPENT = 10015,
11
+ REFUNDABLE = 10016
12
+ }
13
+ export type AddressStatusResponse = {
14
+ code: AddressStatusResponseCodes.TX_SENT | AddressStatusResponseCodes.PAID;
15
+ msg: string;
16
+ data: {
17
+ adjustedAmount: string;
18
+ adjustedTotal: string;
19
+ adjustedFee?: string;
20
+ adjustedFeeSats?: string;
21
+ txId: string;
22
+ scTxId: string;
23
+ };
24
+ } | {
25
+ code: AddressStatusResponseCodes.AWAIT_CONFIRMATION | AddressStatusResponseCodes.PENDING;
26
+ msg: string;
27
+ data: {
28
+ adjustedAmount: string;
29
+ adjustedTotal: string;
30
+ adjustedFee?: string;
31
+ adjustedFeeSats?: string;
32
+ txId: string;
33
+ };
34
+ } | {
35
+ code: AddressStatusResponseCodes.REFUNDABLE;
36
+ msg: string;
37
+ data: {
38
+ adjustedAmount: string;
39
+ };
40
+ } | {
41
+ code: AddressStatusResponseCodes.REFUNDED | AddressStatusResponseCodes.DOUBLE_SPENT;
42
+ msg: string;
43
+ data: {
44
+ txId: string;
45
+ };
46
+ } | {
47
+ code: AddressStatusResponseCodes.AWAIT_PAYMENT | AddressStatusResponseCodes.EXPIRED;
48
+ msg: string;
49
+ };
50
+ export type TrustedFromBTCInit = {
51
+ address: string;
52
+ amount: bigint;
53
+ token: string;
54
+ refundAddress?: string;
55
+ };
56
+ declare const TrustedFromBTCResponseSchema: {
57
+ readonly paymentHash: FieldTypeEnum.String;
58
+ readonly sequence: FieldTypeEnum.BigInt;
59
+ readonly btcAddress: FieldTypeEnum.String;
60
+ readonly amountSats: FieldTypeEnum.BigInt;
61
+ readonly swapFeeSats: FieldTypeEnum.BigInt;
62
+ readonly swapFee: FieldTypeEnum.BigInt;
63
+ readonly total: FieldTypeEnum.BigInt;
64
+ readonly intermediaryKey: FieldTypeEnum.String;
65
+ readonly recommendedFee: FieldTypeEnum.Number;
66
+ readonly expiresAt: FieldTypeEnum.Number;
67
+ };
68
+ export type TrustedFromBTCResponseType = RequestSchemaResult<typeof TrustedFromBTCResponseSchema>;
69
+ export declare enum InvoiceStatusResponseCodes {
70
+ EXPIRED = 10001,
71
+ PAID = 10000,
72
+ AWAIT_PAYMENT = 10010,
73
+ PENDING = 10011,
74
+ TX_SENT = 10012
75
+ }
76
+ export type InvoiceStatusResponse = {
77
+ code: InvoiceStatusResponseCodes.TX_SENT | InvoiceStatusResponseCodes.PAID;
78
+ msg: string;
79
+ data: {
80
+ txId: string;
81
+ };
82
+ } | {
83
+ code: Exclude<InvoiceStatusResponseCodes, InvoiceStatusResponseCodes.TX_SENT | InvoiceStatusResponseCodes.PAID>;
84
+ msg: string;
85
+ };
86
+ export type TrustedFromBTCLNInit = {
87
+ address: string;
88
+ amount: bigint;
89
+ token: string;
90
+ };
91
+ declare const TrustedFromBTCLNResponseSchema: {
92
+ readonly pr: FieldTypeEnum.String;
93
+ readonly swapFee: FieldTypeEnum.BigInt;
94
+ readonly total: FieldTypeEnum.BigInt;
95
+ };
96
+ export type TrustedFromBTCLNResponseType = RequestSchemaResult<typeof TrustedFromBTCLNResponseSchema>;
97
+ export declare class TrustedIntermediaryAPI {
98
+ /**
99
+ * Fetches the invoice status from the intermediary node
100
+ *
101
+ * @param url Url of the trusted intermediary
102
+ * @param paymentHash Payment hash of the lightning invoice
103
+ * @param timeout Timeout in milliseconds
104
+ * @param abortSignal
105
+ * @throws {RequestError} if non-200 http response is returned
106
+ */
107
+ static getInvoiceStatus(url: string, paymentHash: string, timeout?: number, abortSignal?: AbortSignal): Promise<InvoiceStatusResponse>;
108
+ /**
109
+ * Initiate a trusted swap from BTCLN to SC native currency, retries!
110
+ *
111
+ * @param chainIdentifier
112
+ * @param baseUrl Base url of the trusted swap intermediary
113
+ * @param init Initialization parameters
114
+ * @param timeout Timeout in milliseconds for the request
115
+ * @param abortSignal
116
+ * @throws {RequestError} If the response is non-200
117
+ */
118
+ static initTrustedFromBTCLN(chainIdentifier: string, baseUrl: string, init: TrustedFromBTCLNInit, timeout?: number, abortSignal?: AbortSignal): Promise<TrustedFromBTCLNResponseType>;
119
+ /**
120
+ * Fetches the address status from the intermediary node
121
+ *
122
+ * @param url Url of the trusted intermediary
123
+ * @param paymentHash Payment hash of the swap
124
+ * @param sequence Sequence number of the swap
125
+ * @param timeout Timeout in milliseconds
126
+ * @param abortSignal
127
+ * @throws {RequestError} if non-200 http response is returned
128
+ */
129
+ static getAddressStatus(url: string, paymentHash: string, sequence: bigint, timeout?: number, abortSignal?: AbortSignal): Promise<AddressStatusResponse>;
130
+ /**
131
+ * Sets the refund address for an on-chain gas swap
132
+ *
133
+ * @param url Url of the trusted intermediary
134
+ * @param paymentHash Payment hash of the swap
135
+ * @param sequence Sequence number of the swap
136
+ * @param refundAddress Refund address to set for the swap
137
+ * @param timeout Timeout in milliseconds
138
+ * @param abortSignal
139
+ * @throws {RequestError} if non-200 http response is returned
140
+ */
141
+ static setRefundAddress(url: string, paymentHash: string, sequence: bigint, refundAddress: string, timeout?: number, abortSignal?: AbortSignal): Promise<void>;
142
+ /**
143
+ * Initiate a trusted swap from BTC to SC native currency, retries!
144
+ *
145
+ * @param chainIdentifier
146
+ * @param baseUrl Base url of the trusted swap intermediary
147
+ * @param init Initialization parameters
148
+ * @param timeout Timeout in milliseconds for the request
149
+ * @param abortSignal
150
+ * @throws {RequestError} If the response is non-200
151
+ */
152
+ static initTrustedFromBTC(chainIdentifier: string, baseUrl: string, init: TrustedFromBTCInit, timeout?: number, abortSignal?: AbortSignal): Promise<TrustedFromBTCResponseType>;
153
+ }
154
+ export {};
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TrustedIntermediaryAPI = exports.InvoiceStatusResponseCodes = exports.AddressStatusResponseCodes = void 0;
4
+ const RequestError_1 = require("../../errors/RequestError");
5
+ const SchemaVerifier_1 = require("../../http/paramcoders/SchemaVerifier");
6
+ const HttpUtils_1 = require("../../http/HttpUtils");
7
+ const RetryUtils_1 = require("../../utils/RetryUtils");
8
+ var AddressStatusResponseCodes;
9
+ (function (AddressStatusResponseCodes) {
10
+ AddressStatusResponseCodes[AddressStatusResponseCodes["EXPIRED"] = 10001] = "EXPIRED";
11
+ AddressStatusResponseCodes[AddressStatusResponseCodes["PAID"] = 10000] = "PAID";
12
+ AddressStatusResponseCodes[AddressStatusResponseCodes["AWAIT_PAYMENT"] = 10010] = "AWAIT_PAYMENT";
13
+ AddressStatusResponseCodes[AddressStatusResponseCodes["AWAIT_CONFIRMATION"] = 10011] = "AWAIT_CONFIRMATION";
14
+ AddressStatusResponseCodes[AddressStatusResponseCodes["PENDING"] = 10013] = "PENDING";
15
+ AddressStatusResponseCodes[AddressStatusResponseCodes["TX_SENT"] = 10012] = "TX_SENT";
16
+ AddressStatusResponseCodes[AddressStatusResponseCodes["REFUNDED"] = 10014] = "REFUNDED";
17
+ AddressStatusResponseCodes[AddressStatusResponseCodes["DOUBLE_SPENT"] = 10015] = "DOUBLE_SPENT";
18
+ AddressStatusResponseCodes[AddressStatusResponseCodes["REFUNDABLE"] = 10016] = "REFUNDABLE";
19
+ })(AddressStatusResponseCodes = exports.AddressStatusResponseCodes || (exports.AddressStatusResponseCodes = {}));
20
+ const TrustedFromBTCResponseSchema = {
21
+ paymentHash: SchemaVerifier_1.FieldTypeEnum.String,
22
+ sequence: SchemaVerifier_1.FieldTypeEnum.BigInt,
23
+ btcAddress: SchemaVerifier_1.FieldTypeEnum.String,
24
+ amountSats: SchemaVerifier_1.FieldTypeEnum.BigInt,
25
+ swapFeeSats: SchemaVerifier_1.FieldTypeEnum.BigInt,
26
+ swapFee: SchemaVerifier_1.FieldTypeEnum.BigInt,
27
+ total: SchemaVerifier_1.FieldTypeEnum.BigInt,
28
+ intermediaryKey: SchemaVerifier_1.FieldTypeEnum.String,
29
+ recommendedFee: SchemaVerifier_1.FieldTypeEnum.Number,
30
+ expiresAt: SchemaVerifier_1.FieldTypeEnum.Number
31
+ };
32
+ var InvoiceStatusResponseCodes;
33
+ (function (InvoiceStatusResponseCodes) {
34
+ InvoiceStatusResponseCodes[InvoiceStatusResponseCodes["EXPIRED"] = 10001] = "EXPIRED";
35
+ InvoiceStatusResponseCodes[InvoiceStatusResponseCodes["PAID"] = 10000] = "PAID";
36
+ InvoiceStatusResponseCodes[InvoiceStatusResponseCodes["AWAIT_PAYMENT"] = 10010] = "AWAIT_PAYMENT";
37
+ InvoiceStatusResponseCodes[InvoiceStatusResponseCodes["PENDING"] = 10011] = "PENDING";
38
+ InvoiceStatusResponseCodes[InvoiceStatusResponseCodes["TX_SENT"] = 10012] = "TX_SENT";
39
+ })(InvoiceStatusResponseCodes = exports.InvoiceStatusResponseCodes || (exports.InvoiceStatusResponseCodes = {}));
40
+ const TrustedFromBTCLNResponseSchema = {
41
+ pr: SchemaVerifier_1.FieldTypeEnum.String,
42
+ swapFee: SchemaVerifier_1.FieldTypeEnum.BigInt,
43
+ total: SchemaVerifier_1.FieldTypeEnum.BigInt
44
+ };
45
+ class TrustedIntermediaryAPI {
46
+ /**
47
+ * Fetches the invoice status from the intermediary node
48
+ *
49
+ * @param url Url of the trusted intermediary
50
+ * @param paymentHash Payment hash of the lightning invoice
51
+ * @param timeout Timeout in milliseconds
52
+ * @param abortSignal
53
+ * @throws {RequestError} if non-200 http response is returned
54
+ */
55
+ static async getInvoiceStatus(url, paymentHash, timeout, abortSignal) {
56
+ return (0, RetryUtils_1.tryWithRetries)(() => (0, HttpUtils_1.httpGet)(url + "/getInvoiceStatus?paymentHash=" + encodeURIComponent(paymentHash), timeout, abortSignal), undefined, RequestError_1.RequestError, abortSignal);
57
+ }
58
+ /**
59
+ * Initiate a trusted swap from BTCLN to SC native currency, retries!
60
+ *
61
+ * @param chainIdentifier
62
+ * @param baseUrl Base url of the trusted swap intermediary
63
+ * @param init Initialization parameters
64
+ * @param timeout Timeout in milliseconds for the request
65
+ * @param abortSignal
66
+ * @throws {RequestError} If the response is non-200
67
+ */
68
+ static async initTrustedFromBTCLN(chainIdentifier, baseUrl, init, timeout, abortSignal) {
69
+ const resp = await (0, RetryUtils_1.tryWithRetries)(() => (0, HttpUtils_1.httpGet)(baseUrl + "/lnforgas/createInvoice" +
70
+ "?address=" + encodeURIComponent(init.address) +
71
+ "&amount=" + encodeURIComponent(init.amount.toString(10)) +
72
+ "&chain=" + encodeURIComponent(chainIdentifier) +
73
+ "&token=" + encodeURIComponent(init.token), timeout, abortSignal), undefined, RequestError_1.RequestError, abortSignal);
74
+ if (resp.code !== 10000)
75
+ throw RequestError_1.RequestError.parse(JSON.stringify(resp), 400);
76
+ const res = (0, SchemaVerifier_1.verifySchema)(resp.data, TrustedFromBTCLNResponseSchema);
77
+ if (res == null)
78
+ throw new Error("Invalid response returned from LP");
79
+ return res;
80
+ }
81
+ /**
82
+ * Fetches the address status from the intermediary node
83
+ *
84
+ * @param url Url of the trusted intermediary
85
+ * @param paymentHash Payment hash of the swap
86
+ * @param sequence Sequence number of the swap
87
+ * @param timeout Timeout in milliseconds
88
+ * @param abortSignal
89
+ * @throws {RequestError} if non-200 http response is returned
90
+ */
91
+ static async getAddressStatus(url, paymentHash, sequence, timeout, abortSignal) {
92
+ return (0, RetryUtils_1.tryWithRetries)(() => (0, HttpUtils_1.httpGet)(url + "/getAddressStatus?paymentHash=" + encodeURIComponent(paymentHash) + "&sequence=" + encodeURIComponent(sequence.toString(10)), timeout, abortSignal), undefined, RequestError_1.RequestError, abortSignal);
93
+ }
94
+ /**
95
+ * Sets the refund address for an on-chain gas swap
96
+ *
97
+ * @param url Url of the trusted intermediary
98
+ * @param paymentHash Payment hash of the swap
99
+ * @param sequence Sequence number of the swap
100
+ * @param refundAddress Refund address to set for the swap
101
+ * @param timeout Timeout in milliseconds
102
+ * @param abortSignal
103
+ * @throws {RequestError} if non-200 http response is returned
104
+ */
105
+ static async setRefundAddress(url, paymentHash, sequence, refundAddress, timeout, abortSignal) {
106
+ return (0, RetryUtils_1.tryWithRetries)(() => (0, HttpUtils_1.httpGet)(url + "/setRefundAddress" +
107
+ "?paymentHash=" + encodeURIComponent(paymentHash) +
108
+ "&sequence=" + encodeURIComponent(sequence.toString(10)) +
109
+ "&refundAddress=" + encodeURIComponent(refundAddress), timeout, abortSignal), undefined, RequestError_1.RequestError, abortSignal);
110
+ }
111
+ /**
112
+ * Initiate a trusted swap from BTC to SC native currency, retries!
113
+ *
114
+ * @param chainIdentifier
115
+ * @param baseUrl Base url of the trusted swap intermediary
116
+ * @param init Initialization parameters
117
+ * @param timeout Timeout in milliseconds for the request
118
+ * @param abortSignal
119
+ * @throws {RequestError} If the response is non-200
120
+ */
121
+ static async initTrustedFromBTC(chainIdentifier, baseUrl, init, timeout, abortSignal) {
122
+ const resp = await (0, RetryUtils_1.tryWithRetries)(() => (0, HttpUtils_1.httpGet)(baseUrl + "/frombtc_trusted/getAddress?chain=" + encodeURIComponent(chainIdentifier) +
123
+ "&address=" + encodeURIComponent(init.address) +
124
+ "&amount=" + encodeURIComponent(init.amount.toString(10)) +
125
+ (init.refundAddress == null ? "" : "&refundAddress=" + encodeURIComponent(init.refundAddress)) +
126
+ "&exactIn=true" +
127
+ "&token=" + encodeURIComponent(init.token), timeout, abortSignal), undefined, RequestError_1.RequestError, abortSignal);
128
+ if (resp.code !== 10000)
129
+ throw RequestError_1.RequestError.parse(JSON.stringify(resp), 400);
130
+ const res = (0, SchemaVerifier_1.verifySchema)(resp.data, TrustedFromBTCResponseSchema);
131
+ if (res == null)
132
+ throw new Error("Invalid response returned from LP");
133
+ return res;
134
+ }
135
+ }
136
+ exports.TrustedIntermediaryAPI = TrustedIntermediaryAPI;
@@ -0,0 +1,102 @@
1
+ import { PaymentRequestObject, TagsObject } from "@atomiqlabs/bolt11";
2
+ import { LNURLWithdraw, LNURLWithdrawParamsWithUrl } from "../types/lnurl/LNURLWithdraw";
3
+ import { LNURLDecodedSuccessAction, LNURLPay, LNURLPayParamsWithUrl } from "../types/lnurl/LNURLPay";
4
+ export type LNURLPaySuccessAction = {
5
+ tag: string;
6
+ description: string | null;
7
+ url: string | null;
8
+ message: string | null;
9
+ ciphertext: string | null;
10
+ iv: string | null;
11
+ };
12
+ export declare function isLNURLPaySuccessAction(obj: any, domain?: string): obj is LNURLPaySuccessAction;
13
+ /**
14
+ * LNURL encoding/decoding and callback handling
15
+ * @category Bitcoin
16
+ */
17
+ export declare class LNURL {
18
+ private static findBech32LNURL;
19
+ private static isBech32LNURL;
20
+ /**
21
+ * Checks whether a provided string is bare (non bech32 encoded) lnurl
22
+ * @param str
23
+ * @private
24
+ */
25
+ private static isBareLNURL;
26
+ /**
27
+ * Checks if the provided string is a lightning network address (e.g. satoshi@nakamoto.com)
28
+ * @param str
29
+ * @private
30
+ */
31
+ private static isLightningAddress;
32
+ /**
33
+ * Checks whether a given string is a LNURL or lightning address
34
+ * @param str
35
+ */
36
+ static isLNURL(str: string): boolean;
37
+ /**
38
+ * Extracts the URL that needs to be request from LNURL or lightning address
39
+ * @param str
40
+ * @private
41
+ * @returns An URL to send the request to, or null if it cannot be parsed
42
+ */
43
+ private static extractCallUrl;
44
+ /**
45
+ * Sends a request to obtain data about a specific LNURL or lightning address
46
+ *
47
+ * @param str A lnurl or lightning address
48
+ * @param shouldRetry Whether we should retry in case of network failure
49
+ * @param timeout Request timeout in milliseconds
50
+ * @param abortSignal
51
+ */
52
+ static getLNURL(str: string, shouldRetry?: boolean, timeout?: number, abortSignal?: AbortSignal): Promise<LNURLPayParamsWithUrl | LNURLWithdrawParamsWithUrl | null>;
53
+ /**
54
+ * Sends a request to obtain data about a specific LNURL or lightning address
55
+ *
56
+ * @param str A lnurl or lightning address
57
+ * @param shouldRetry Whether we should retry in case of network failure
58
+ * @param timeout Request timeout in milliseconds
59
+ * @param abortSignal
60
+ */
61
+ static getLNURLType(str: string, shouldRetry?: boolean, timeout?: number, abortSignal?: AbortSignal): Promise<LNURLPay | LNURLWithdraw | null>;
62
+ /**
63
+ * Uses a LNURL-pay request by obtaining a lightning network invoice from it
64
+ *
65
+ * @param payRequest LNURL params as returned from the getLNURL call
66
+ * @param amount Amount of sats (BTC) to pay
67
+ * @param comment Optional comment for the payment request
68
+ * @param timeout Request timeout in milliseconds
69
+ * @param abortSignal
70
+ * @throws {RequestError} If the response is non-200, status: ERROR, or invalid format
71
+ */
72
+ static useLNURLPay(payRequest: LNURLPayParamsWithUrl, amount: bigint, comment?: string, timeout?: number, abortSignal?: AbortSignal): Promise<{
73
+ invoice: string;
74
+ parsedInvoice: PaymentRequestObject & {
75
+ tagsObject: TagsObject;
76
+ };
77
+ successAction?: LNURLPaySuccessAction;
78
+ }>;
79
+ /**
80
+ * Submits the bolt11 lightning invoice to the lnurl withdraw url
81
+ *
82
+ * @param withdrawRequest Withdraw request to use
83
+ * @param withdrawRequest.k1 K1 parameter
84
+ * @param withdrawRequest.callback A URL to call
85
+ * @param lnpr bolt11 lightning network invoice to submit to the withdrawal endpoint
86
+ * @throws {RequestError} If the response is non-200 or status: ERROR
87
+ */
88
+ static postInvoiceToLNURLWithdraw(withdrawRequest: {
89
+ k1: string;
90
+ callback: string;
91
+ }, lnpr: string): Promise<void>;
92
+ /**
93
+ * Uses a LNURL-withdraw request by submitting a lightning network invoice to it
94
+ *
95
+ * @param withdrawRequest Withdrawal request as returned from getLNURL call
96
+ * @param lnpr bolt11 lightning network invoice to submit to the withdrawal endpoint
97
+ * @throws {UserError} In case the provided bolt11 lightning invoice has an amount that is out of bounds for
98
+ * the specified LNURL-withdraw request
99
+ */
100
+ static useLNURLWithdraw(withdrawRequest: LNURLWithdrawParamsWithUrl, lnpr: string): Promise<void>;
101
+ static decodeSuccessAction(successAction?: LNURLPaySuccessAction | null, secret?: string | null): LNURLDecodedSuccessAction | null;
102
+ }