@atomiqlabs/sdk 8.7.7 → 8.8.4

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 (339) hide show
  1. package/LICENSE +201 -201
  2. package/README.md +1760 -1760
  3. package/dist/SmartChainAssets.d.ts +181 -181
  4. package/dist/SmartChainAssets.js +181 -181
  5. package/dist/bitcoin/coinselect2/accumulative.d.ts +7 -6
  6. package/dist/bitcoin/coinselect2/accumulative.js +52 -52
  7. package/dist/bitcoin/coinselect2/blackjack.d.ts +7 -6
  8. package/dist/bitcoin/coinselect2/blackjack.js +38 -38
  9. package/dist/bitcoin/coinselect2/index.d.ts +20 -19
  10. package/dist/bitcoin/coinselect2/index.js +69 -69
  11. package/dist/bitcoin/coinselect2/utils.d.ts +82 -77
  12. package/dist/bitcoin/coinselect2/utils.js +158 -123
  13. package/dist/bitcoin/wallet/BitcoinWallet.d.ts +113 -130
  14. package/dist/bitcoin/wallet/BitcoinWallet.js +335 -322
  15. package/dist/bitcoin/wallet/IBitcoinWallet.d.ts +116 -78
  16. package/dist/bitcoin/wallet/IBitcoinWallet.js +21 -21
  17. package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.d.ts +106 -101
  18. package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.js +196 -190
  19. package/dist/enums/FeeType.d.ts +15 -15
  20. package/dist/enums/FeeType.js +19 -19
  21. package/dist/enums/SwapAmountType.d.ts +15 -15
  22. package/dist/enums/SwapAmountType.js +19 -19
  23. package/dist/enums/SwapDirection.d.ts +15 -15
  24. package/dist/enums/SwapDirection.js +19 -19
  25. package/dist/enums/SwapSide.d.ts +15 -15
  26. package/dist/enums/SwapSide.js +19 -19
  27. package/dist/enums/SwapType.d.ts +75 -75
  28. package/dist/enums/SwapType.js +79 -79
  29. package/dist/errors/IntermediaryError.d.ts +13 -13
  30. package/dist/errors/IntermediaryError.js +27 -27
  31. package/dist/errors/RequestError.d.ts +32 -32
  32. package/dist/errors/RequestError.js +54 -54
  33. package/dist/errors/UserError.d.ts +8 -8
  34. package/dist/errors/UserError.js +16 -16
  35. package/dist/events/UnifiedSwapEventListener.d.ts +23 -23
  36. package/dist/events/UnifiedSwapEventListener.js +132 -132
  37. package/dist/http/HttpUtils.d.ts +27 -27
  38. package/dist/http/HttpUtils.js +91 -91
  39. package/dist/http/paramcoders/IParamReader.d.ts +8 -8
  40. package/dist/http/paramcoders/IParamReader.js +2 -2
  41. package/dist/http/paramcoders/ParamDecoder.d.ts +44 -44
  42. package/dist/http/paramcoders/ParamDecoder.js +137 -137
  43. package/dist/http/paramcoders/ParamEncoder.d.ts +20 -20
  44. package/dist/http/paramcoders/ParamEncoder.js +36 -36
  45. package/dist/http/paramcoders/SchemaVerifier.d.ts +26 -26
  46. package/dist/http/paramcoders/SchemaVerifier.js +145 -145
  47. package/dist/http/paramcoders/client/ResponseParamDecoder.d.ts +11 -11
  48. package/dist/http/paramcoders/client/ResponseParamDecoder.js +57 -57
  49. package/dist/http/paramcoders/client/StreamParamEncoder.d.ts +13 -13
  50. package/dist/http/paramcoders/client/StreamParamEncoder.js +26 -26
  51. package/dist/http/paramcoders/client/StreamingFetchPromise.d.ts +16 -16
  52. package/dist/http/paramcoders/client/StreamingFetchPromise.js +174 -174
  53. package/dist/index.d.ts +85 -85
  54. package/dist/index.js +158 -158
  55. package/dist/intermediaries/Intermediary.d.ts +178 -178
  56. package/dist/intermediaries/Intermediary.js +166 -166
  57. package/dist/intermediaries/IntermediaryDiscovery.d.ts +211 -211
  58. package/dist/intermediaries/IntermediaryDiscovery.js +424 -424
  59. package/dist/intermediaries/apis/IntermediaryAPI.d.ts +450 -440
  60. package/dist/intermediaries/apis/IntermediaryAPI.js +618 -603
  61. package/dist/intermediaries/apis/TrustedIntermediaryAPI.d.ts +155 -155
  62. package/dist/intermediaries/apis/TrustedIntermediaryAPI.js +137 -137
  63. package/dist/lnurl/LNURL.d.ts +102 -102
  64. package/dist/lnurl/LNURL.js +321 -321
  65. package/dist/prices/RedundantSwapPrice.d.ts +110 -110
  66. package/dist/prices/RedundantSwapPrice.js +222 -222
  67. package/dist/prices/SingleSwapPrice.d.ts +34 -34
  68. package/dist/prices/SingleSwapPrice.js +44 -44
  69. package/dist/prices/SwapPriceWithChain.d.ts +107 -107
  70. package/dist/prices/SwapPriceWithChain.js +128 -128
  71. package/dist/prices/abstract/ICachedSwapPrice.d.ts +28 -28
  72. package/dist/prices/abstract/ICachedSwapPrice.js +62 -62
  73. package/dist/prices/abstract/IPriceProvider.d.ts +81 -81
  74. package/dist/prices/abstract/IPriceProvider.js +74 -74
  75. package/dist/prices/abstract/ISwapPrice.d.ts +168 -168
  76. package/dist/prices/abstract/ISwapPrice.js +279 -279
  77. package/dist/prices/providers/BinancePriceProvider.d.ts +23 -23
  78. package/dist/prices/providers/BinancePriceProvider.js +30 -30
  79. package/dist/prices/providers/CoinGeckoPriceProvider.d.ts +23 -23
  80. package/dist/prices/providers/CoinGeckoPriceProvider.js +29 -29
  81. package/dist/prices/providers/CoinPaprikaPriceProvider.d.ts +25 -25
  82. package/dist/prices/providers/CoinPaprikaPriceProvider.js +29 -29
  83. package/dist/prices/providers/CustomPriceProvider.d.ts +24 -24
  84. package/dist/prices/providers/CustomPriceProvider.js +35 -35
  85. package/dist/prices/providers/KrakenPriceProvider.d.ts +38 -38
  86. package/dist/prices/providers/KrakenPriceProvider.js +45 -45
  87. package/dist/prices/providers/OKXPriceProvider.d.ts +34 -34
  88. package/dist/prices/providers/OKXPriceProvider.js +29 -29
  89. package/dist/prices/providers/abstract/ExchangePriceProvider.d.ts +17 -17
  90. package/dist/prices/providers/abstract/ExchangePriceProvider.js +21 -21
  91. package/dist/prices/providers/abstract/HttpPriceProvider.d.ts +7 -7
  92. package/dist/prices/providers/abstract/HttpPriceProvider.js +12 -12
  93. package/dist/storage/IUnifiedStorage.d.ts +85 -85
  94. package/dist/storage/IUnifiedStorage.js +2 -2
  95. package/dist/storage/UnifiedSwapStorage.d.ts +114 -114
  96. package/dist/storage/UnifiedSwapStorage.js +116 -116
  97. package/dist/storage-browser/IndexedDBUnifiedStorage.d.ts +63 -63
  98. package/dist/storage-browser/IndexedDBUnifiedStorage.js +298 -298
  99. package/dist/storage-browser/LocalStorageManager.d.ts +49 -49
  100. package/dist/storage-browser/LocalStorageManager.js +93 -93
  101. package/dist/swapper/Swapper.d.ts +732 -692
  102. package/dist/swapper/Swapper.js +1713 -1657
  103. package/dist/swapper/SwapperFactory.d.ts +135 -135
  104. package/dist/swapper/SwapperFactory.js +162 -162
  105. package/dist/swapper/SwapperUtils.d.ts +206 -206
  106. package/dist/swapper/SwapperUtils.js +481 -481
  107. package/dist/swapper/SwapperWithChain.d.ts +404 -404
  108. package/dist/swapper/SwapperWithChain.js +469 -469
  109. package/dist/swapper/SwapperWithSigner.d.ts +322 -322
  110. package/dist/swapper/SwapperWithSigner.js +318 -318
  111. package/dist/swaps/IAddressSwap.d.ts +22 -22
  112. package/dist/swaps/IAddressSwap.js +14 -14
  113. package/dist/swaps/IBTCWalletSwap.d.ts +73 -73
  114. package/dist/swaps/IBTCWalletSwap.js +18 -18
  115. package/dist/swaps/IClaimableSwap.d.ts +49 -49
  116. package/dist/swaps/IClaimableSwap.js +15 -15
  117. package/dist/swaps/IClaimableSwapWrapper.d.ts +15 -15
  118. package/dist/swaps/IClaimableSwapWrapper.js +2 -2
  119. package/dist/swaps/IRefundableSwap.d.ts +43 -43
  120. package/dist/swaps/IRefundableSwap.js +14 -14
  121. package/dist/swaps/ISwap.d.ts +392 -392
  122. package/dist/swaps/ISwap.js +349 -349
  123. package/dist/swaps/ISwapWithGasDrop.d.ts +21 -21
  124. package/dist/swaps/ISwapWithGasDrop.js +12 -12
  125. package/dist/swaps/ISwapWrapper.d.ts +285 -285
  126. package/dist/swaps/ISwapWrapper.js +353 -353
  127. package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.d.ts +98 -98
  128. package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.js +126 -126
  129. package/dist/swaps/escrow_swaps/IEscrowSwap.d.ts +139 -139
  130. package/dist/swaps/escrow_swaps/IEscrowSwap.js +170 -170
  131. package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.d.ts +128 -128
  132. package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.js +167 -167
  133. package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.d.ts +105 -105
  134. package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.js +129 -129
  135. package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.d.ts +162 -162
  136. package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.js +190 -190
  137. package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.d.ts +64 -64
  138. package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.js +82 -82
  139. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.d.ts +531 -531
  140. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.js +1285 -1285
  141. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.d.ts +190 -190
  142. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.js +432 -432
  143. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.d.ts +583 -583
  144. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.js +1371 -1371
  145. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.d.ts +235 -235
  146. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.js +525 -525
  147. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.d.ts +458 -458
  148. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.js +1126 -1126
  149. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.d.ts +202 -202
  150. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.js +406 -406
  151. package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.d.ts +403 -403
  152. package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.js +924 -924
  153. package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.d.ts +68 -68
  154. package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.js +117 -117
  155. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.d.ts +127 -127
  156. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.js +256 -256
  157. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.d.ts +251 -251
  158. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.js +536 -536
  159. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.d.ts +73 -73
  160. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.js +155 -155
  161. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.d.ts +132 -132
  162. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.js +286 -286
  163. package/dist/swaps/spv_swaps/SpvFromBTCSwap.d.ts +637 -631
  164. package/dist/swaps/spv_swaps/SpvFromBTCSwap.js +1448 -1444
  165. package/dist/swaps/spv_swaps/SpvFromBTCWrapper.d.ts +257 -225
  166. package/dist/swaps/spv_swaps/SpvFromBTCWrapper.js +947 -822
  167. package/dist/swaps/trusted/ln/LnForGasSwap.d.ts +261 -261
  168. package/dist/swaps/trusted/ln/LnForGasSwap.js +511 -511
  169. package/dist/swaps/trusted/ln/LnForGasWrapper.d.ts +40 -40
  170. package/dist/swaps/trusted/ln/LnForGasWrapper.js +83 -83
  171. package/dist/swaps/trusted/onchain/OnchainForGasSwap.d.ts +342 -342
  172. package/dist/swaps/trusted/onchain/OnchainForGasSwap.js +715 -715
  173. package/dist/swaps/trusted/onchain/OnchainForGasWrapper.d.ts +69 -69
  174. package/dist/swaps/trusted/onchain/OnchainForGasWrapper.js +93 -93
  175. package/dist/types/AmountData.d.ts +10 -10
  176. package/dist/types/AmountData.js +2 -2
  177. package/dist/types/CustomPriceFunction.d.ts +11 -11
  178. package/dist/types/CustomPriceFunction.js +2 -2
  179. package/dist/types/PriceInfoType.d.ts +28 -28
  180. package/dist/types/PriceInfoType.js +57 -57
  181. package/dist/types/SwapExecutionAction.d.ts +88 -88
  182. package/dist/types/SwapExecutionAction.js +2 -2
  183. package/dist/types/SwapStateInfo.d.ts +5 -5
  184. package/dist/types/SwapStateInfo.js +2 -2
  185. package/dist/types/SwapWithSigner.d.ts +17 -17
  186. package/dist/types/SwapWithSigner.js +43 -43
  187. package/dist/types/Token.d.ts +99 -99
  188. package/dist/types/Token.js +76 -76
  189. package/dist/types/TokenAmount.d.ts +69 -69
  190. package/dist/types/TokenAmount.js +60 -60
  191. package/dist/types/fees/Fee.d.ts +50 -50
  192. package/dist/types/fees/Fee.js +2 -2
  193. package/dist/types/fees/FeeBreakdown.d.ts +11 -11
  194. package/dist/types/fees/FeeBreakdown.js +2 -2
  195. package/dist/types/fees/PercentagePPM.d.ts +17 -17
  196. package/dist/types/fees/PercentagePPM.js +18 -18
  197. package/dist/types/lnurl/LNURLPay.d.ts +61 -61
  198. package/dist/types/lnurl/LNURLPay.js +31 -31
  199. package/dist/types/lnurl/LNURLWithdraw.d.ts +48 -48
  200. package/dist/types/lnurl/LNURLWithdraw.js +27 -27
  201. package/dist/types/wallets/LightningInvoiceCreateService.d.ts +24 -24
  202. package/dist/types/wallets/LightningInvoiceCreateService.js +15 -15
  203. package/dist/types/wallets/MinimalBitcoinWalletInterface.d.ts +23 -23
  204. package/dist/types/wallets/MinimalBitcoinWalletInterface.js +2 -2
  205. package/dist/types/wallets/MinimalLightningNetworkWalletInterface.d.ts +9 -9
  206. package/dist/types/wallets/MinimalLightningNetworkWalletInterface.js +2 -2
  207. package/dist/utils/AutomaticClockDriftCorrection.d.ts +1 -1
  208. package/dist/utils/AutomaticClockDriftCorrection.js +70 -70
  209. package/dist/utils/BitcoinUtils.d.ts +16 -14
  210. package/dist/utils/BitcoinUtils.js +141 -102
  211. package/dist/utils/BitcoinWalletUtils.d.ts +7 -7
  212. package/dist/utils/BitcoinWalletUtils.js +14 -14
  213. package/dist/utils/Logger.d.ts +7 -7
  214. package/dist/utils/Logger.js +12 -12
  215. package/dist/utils/RetryUtils.d.ts +22 -22
  216. package/dist/utils/RetryUtils.js +67 -67
  217. package/dist/utils/SwapUtils.d.ts +88 -88
  218. package/dist/utils/SwapUtils.js +72 -72
  219. package/dist/utils/TimeoutUtils.d.ts +17 -17
  220. package/dist/utils/TimeoutUtils.js +55 -55
  221. package/dist/utils/TokenUtils.d.ts +19 -19
  222. package/dist/utils/TokenUtils.js +37 -37
  223. package/dist/utils/TypeUtils.d.ts +7 -7
  224. package/dist/utils/TypeUtils.js +2 -2
  225. package/dist/utils/Utils.d.ts +67 -67
  226. package/dist/utils/Utils.js +208 -208
  227. package/package.json +43 -43
  228. package/src/SmartChainAssets.ts +186 -186
  229. package/src/bitcoin/coinselect2/accumulative.ts +69 -68
  230. package/src/bitcoin/coinselect2/blackjack.ts +50 -49
  231. package/src/bitcoin/coinselect2/index.ts +93 -92
  232. package/src/bitcoin/coinselect2/utils.ts +236 -195
  233. package/src/bitcoin/wallet/BitcoinWallet.ts +439 -427
  234. package/src/bitcoin/wallet/IBitcoinWallet.ts +140 -99
  235. package/src/bitcoin/wallet/SingleAddressBitcoinWallet.ts +225 -217
  236. package/src/enums/FeeType.ts +15 -15
  237. package/src/enums/SwapAmountType.ts +16 -16
  238. package/src/enums/SwapDirection.ts +15 -15
  239. package/src/enums/SwapSide.ts +16 -16
  240. package/src/enums/SwapType.ts +75 -75
  241. package/src/errors/IntermediaryError.ts +28 -28
  242. package/src/errors/RequestError.ts +64 -64
  243. package/src/errors/UserError.ts +15 -15
  244. package/src/events/UnifiedSwapEventListener.ts +173 -173
  245. package/src/http/HttpUtils.ts +91 -91
  246. package/src/http/paramcoders/IParamReader.ts +9 -9
  247. package/src/http/paramcoders/ParamDecoder.ts +145 -145
  248. package/src/http/paramcoders/ParamEncoder.ts +40 -40
  249. package/src/http/paramcoders/SchemaVerifier.ts +153 -153
  250. package/src/http/paramcoders/client/ResponseParamDecoder.ts +57 -57
  251. package/src/http/paramcoders/client/StreamParamEncoder.ts +28 -28
  252. package/src/http/paramcoders/client/StreamingFetchPromise.ts +192 -192
  253. package/src/index.ts +140 -140
  254. package/src/intermediaries/Intermediary.ts +280 -280
  255. package/src/intermediaries/IntermediaryDiscovery.ts +541 -541
  256. package/src/intermediaries/apis/IntermediaryAPI.ts +963 -947
  257. package/src/intermediaries/apis/TrustedIntermediaryAPI.ts +257 -257
  258. package/src/lnurl/LNURL.ts +402 -402
  259. package/src/prices/RedundantSwapPrice.ts +264 -264
  260. package/src/prices/SingleSwapPrice.ts +50 -50
  261. package/src/prices/SwapPriceWithChain.ts +194 -194
  262. package/src/prices/abstract/ICachedSwapPrice.ts +85 -85
  263. package/src/prices/abstract/IPriceProvider.ts +127 -127
  264. package/src/prices/abstract/ISwapPrice.ts +390 -390
  265. package/src/prices/providers/BinancePriceProvider.ts +48 -48
  266. package/src/prices/providers/CoinGeckoPriceProvider.ts +46 -46
  267. package/src/prices/providers/CoinPaprikaPriceProvider.ts +49 -49
  268. package/src/prices/providers/CustomPriceProvider.ts +40 -40
  269. package/src/prices/providers/KrakenPriceProvider.ts +83 -83
  270. package/src/prices/providers/OKXPriceProvider.ts +59 -59
  271. package/src/prices/providers/abstract/ExchangePriceProvider.ts +31 -31
  272. package/src/prices/providers/abstract/HttpPriceProvider.ts +14 -14
  273. package/src/storage/IUnifiedStorage.ts +95 -95
  274. package/src/storage/UnifiedSwapStorage.ts +141 -141
  275. package/src/storage-browser/IndexedDBUnifiedStorage.ts +350 -350
  276. package/src/storage-browser/LocalStorageManager.ts +106 -106
  277. package/src/swapper/Swapper.ts +2488 -2416
  278. package/src/swapper/SwapperFactory.ts +307 -307
  279. package/src/swapper/SwapperUtils.ts +570 -570
  280. package/src/swapper/SwapperWithChain.ts +707 -707
  281. package/src/swapper/SwapperWithSigner.ts +511 -511
  282. package/src/swaps/IAddressSwap.ts +30 -30
  283. package/src/swaps/IBTCWalletSwap.ts +92 -92
  284. package/src/swaps/IClaimableSwap.ts +65 -65
  285. package/src/swaps/IClaimableSwapWrapper.ts +17 -17
  286. package/src/swaps/IRefundableSwap.ts +58 -58
  287. package/src/swaps/ISwap.ts +703 -703
  288. package/src/swaps/ISwapWithGasDrop.ts +25 -25
  289. package/src/swaps/ISwapWrapper.ts +539 -539
  290. package/src/swaps/escrow_swaps/IEscrowSelfInitSwap.ts +217 -217
  291. package/src/swaps/escrow_swaps/IEscrowSwap.ts +269 -269
  292. package/src/swaps/escrow_swaps/IEscrowSwapWrapper.ts +282 -282
  293. package/src/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.ts +169 -169
  294. package/src/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.ts +300 -300
  295. package/src/swaps/escrow_swaps/frombtc/IFromBTCWrapper.ts +107 -107
  296. package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.ts +1473 -1474
  297. package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.ts +601 -601
  298. package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.ts +1582 -1582
  299. package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.ts +750 -750
  300. package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.ts +1299 -1299
  301. package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.ts +610 -610
  302. package/src/swaps/escrow_swaps/tobtc/IToBTCSwap.ts +1096 -1096
  303. package/src/swaps/escrow_swaps/tobtc/IToBTCWrapper.ts +138 -138
  304. package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.ts +304 -304
  305. package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.ts +786 -786
  306. package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.ts +206 -206
  307. package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.ts +401 -401
  308. package/src/swaps/spv_swaps/SpvFromBTCSwap.ts +1812 -1799
  309. package/src/swaps/spv_swaps/SpvFromBTCWrapper.ts +1236 -1060
  310. package/src/swaps/trusted/ln/LnForGasSwap.ts +589 -589
  311. package/src/swaps/trusted/ln/LnForGasWrapper.ts +91 -91
  312. package/src/swaps/trusted/onchain/OnchainForGasSwap.ts +862 -862
  313. package/src/swaps/trusted/onchain/OnchainForGasWrapper.ts +131 -131
  314. package/src/types/AmountData.ts +9 -9
  315. package/src/types/CustomPriceFunction.ts +11 -11
  316. package/src/types/PriceInfoType.ts +66 -66
  317. package/src/types/SwapExecutionAction.ts +99 -99
  318. package/src/types/SwapStateInfo.ts +6 -6
  319. package/src/types/SwapWithSigner.ts +61 -61
  320. package/src/types/Token.ts +163 -163
  321. package/src/types/TokenAmount.ts +132 -132
  322. package/src/types/fees/Fee.ts +56 -56
  323. package/src/types/fees/FeeBreakdown.ts +11 -11
  324. package/src/types/fees/PercentagePPM.ts +26 -26
  325. package/src/types/lnurl/LNURLPay.ts +79 -79
  326. package/src/types/lnurl/LNURLWithdraw.ts +61 -61
  327. package/src/types/wallets/LightningInvoiceCreateService.ts +30 -30
  328. package/src/types/wallets/MinimalBitcoinWalletInterface.ts +21 -21
  329. package/src/types/wallets/MinimalLightningNetworkWalletInterface.ts +9 -9
  330. package/src/utils/AutomaticClockDriftCorrection.ts +71 -71
  331. package/src/utils/BitcoinUtils.ts +132 -91
  332. package/src/utils/BitcoinWalletUtils.ts +15 -15
  333. package/src/utils/Logger.ts +14 -14
  334. package/src/utils/RetryUtils.ts +78 -78
  335. package/src/utils/SwapUtils.ts +99 -99
  336. package/src/utils/TimeoutUtils.ts +49 -49
  337. package/src/utils/TokenUtils.ts +33 -33
  338. package/src/utils/TypeUtils.ts +8 -8
  339. package/src/utils/Utils.ts +212 -212
@@ -1,440 +1,450 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- import { FieldTypeEnum, RequestSchemaResult } from "../../http/paramcoders/SchemaVerifier";
4
- export type InfoHandlerResponse = {
5
- envelope: string;
6
- chains: {
7
- [chainIdentifier: string]: {
8
- address: string;
9
- signature: string;
10
- contractVersion?: string;
11
- };
12
- };
13
- };
14
- export declare enum RefundAuthorizationResponseCodes {
15
- EXPIRED = 20010,
16
- REFUND_DATA = 20000,
17
- NOT_FOUND = 20007,
18
- PENDING = 20008,
19
- PAID = 20006
20
- }
21
- export declare enum PaymentAuthorizationResponseCodes {
22
- AUTH_DATA = 10000,
23
- EXPIRED = 10001,
24
- PAID = 10002,
25
- PENDING = 10003,
26
- ALREADY_COMMITTED = 10004
27
- }
28
- export declare enum InvoiceStatusResponseCodes {
29
- PAID = 10000,
30
- EXPIRED = 10001,
31
- SETTLED = 10002,
32
- PENDING = 10003
33
- }
34
- export type RefundAuthorizationResponse = {
35
- code: RefundAuthorizationResponseCodes.PAID;
36
- msg: string;
37
- data: {
38
- secret?: string;
39
- txId?: string;
40
- };
41
- } | {
42
- code: RefundAuthorizationResponseCodes.REFUND_DATA;
43
- msg: string;
44
- data: {
45
- address: string;
46
- prefix: string;
47
- timeout: string;
48
- signature: string;
49
- };
50
- } | {
51
- code: Exclude<RefundAuthorizationResponseCodes, RefundAuthorizationResponseCodes.PAID | RefundAuthorizationResponseCodes.REFUND_DATA>;
52
- msg: string;
53
- };
54
- export type PaymentAuthorizationResponse = {
55
- code: PaymentAuthorizationResponseCodes.AUTH_DATA;
56
- msg: string;
57
- data: {
58
- address: string;
59
- data: any;
60
- nonce: number;
61
- prefix: string;
62
- timeout: string;
63
- signature: string;
64
- };
65
- } | {
66
- code: Exclude<PaymentAuthorizationResponseCodes, PaymentAuthorizationResponseCodes.AUTH_DATA>;
67
- msg: string;
68
- };
69
- export type InvoiceStatusResponse = {
70
- code: Exclude<InvoiceStatusResponseCodes, InvoiceStatusResponseCodes.PAID>;
71
- msg: string;
72
- } | {
73
- code: InvoiceStatusResponseCodes.PAID;
74
- msg: string;
75
- data: {
76
- data: any;
77
- };
78
- };
79
- export type SwapInit = {
80
- token: string;
81
- additionalParams?: {
82
- [name: string]: any;
83
- };
84
- };
85
- export type BaseFromBTCSwapInit = SwapInit & {
86
- claimer: string;
87
- amount: bigint;
88
- exactOut: boolean;
89
- feeRate: Promise<string>;
90
- };
91
- export type BaseToBTCSwapInit = SwapInit & {
92
- offerer: string;
93
- };
94
- declare const ToBTCResponseSchema: {
95
- readonly data: FieldTypeEnum.Any;
96
- readonly prefix: FieldTypeEnum.String;
97
- readonly timeout: FieldTypeEnum.String;
98
- readonly signature: FieldTypeEnum.String;
99
- readonly amount: FieldTypeEnum.BigInt;
100
- readonly address: FieldTypeEnum.String;
101
- readonly satsPervByte: FieldTypeEnum.BigInt;
102
- readonly networkFee: FieldTypeEnum.BigInt;
103
- readonly swapFee: FieldTypeEnum.BigInt;
104
- readonly totalFee: FieldTypeEnum.BigInt;
105
- readonly total: FieldTypeEnum.BigInt;
106
- readonly minRequiredExpiry: FieldTypeEnum.BigInt;
107
- };
108
- export type ToBTCResponseType = RequestSchemaResult<typeof ToBTCResponseSchema>;
109
- export type ToBTCInit = BaseToBTCSwapInit & {
110
- btcAddress: string;
111
- exactIn: boolean;
112
- amount: bigint;
113
- confirmationTarget: number;
114
- confirmations: number;
115
- nonce: bigint;
116
- feeRate: Promise<string>;
117
- };
118
- declare const ToBTCLNResponseSchema: {
119
- readonly data: FieldTypeEnum.Any;
120
- readonly prefix: FieldTypeEnum.String;
121
- readonly timeout: FieldTypeEnum.String;
122
- readonly signature: FieldTypeEnum.String;
123
- readonly maxFee: FieldTypeEnum.BigInt;
124
- readonly swapFee: FieldTypeEnum.BigInt;
125
- readonly total: FieldTypeEnum.BigInt;
126
- readonly confidence: FieldTypeEnum.Number;
127
- readonly address: FieldTypeEnum.String;
128
- readonly routingFeeSats: FieldTypeEnum.BigInt;
129
- };
130
- export type ToBTCLNResponseType = RequestSchemaResult<typeof ToBTCLNResponseSchema>;
131
- export type ToBTCLNInit = BaseToBTCSwapInit & {
132
- pr: string;
133
- maxFee: bigint;
134
- expiryTimestamp: bigint;
135
- feeRate: Promise<string>;
136
- };
137
- declare const ToBTCLNPrepareExactInSchema: {
138
- readonly amount: FieldTypeEnum.BigInt;
139
- readonly reqId: FieldTypeEnum.String;
140
- };
141
- export type ToBTCLNPrepareExactInResponseType = RequestSchemaResult<typeof ToBTCLNPrepareExactInSchema>;
142
- export type ToBTCLNPrepareExactIn = BaseToBTCSwapInit & {
143
- pr: string;
144
- amount: bigint;
145
- maxFee: bigint;
146
- expiryTimestamp: bigint;
147
- };
148
- export type ToBTCLNInitExactIn = {
149
- pr: string;
150
- reqId: string;
151
- feeRate: Promise<string>;
152
- additionalParams?: {
153
- [name: string]: any;
154
- };
155
- };
156
- declare const FromBTCResponseSchema: {
157
- readonly data: FieldTypeEnum.Any;
158
- readonly prefix: FieldTypeEnum.String;
159
- readonly timeout: FieldTypeEnum.String;
160
- readonly signature: FieldTypeEnum.String;
161
- readonly amount: FieldTypeEnum.BigInt;
162
- readonly btcAddress: FieldTypeEnum.String;
163
- readonly address: FieldTypeEnum.String;
164
- readonly swapFee: FieldTypeEnum.BigInt;
165
- readonly total: FieldTypeEnum.BigInt;
166
- readonly confirmations: FieldTypeEnum.Number;
167
- };
168
- export type FromBTCResponseType = RequestSchemaResult<typeof FromBTCResponseSchema>;
169
- export type FromBTCInit = BaseFromBTCSwapInit & {
170
- sequence: bigint;
171
- claimerBounty: Promise<{
172
- feePerBlock: bigint;
173
- safetyFactor: bigint;
174
- startTimestamp: bigint;
175
- addBlock: bigint;
176
- addFee: bigint;
177
- }>;
178
- };
179
- declare const FromBTCLNResponseSchema: {
180
- readonly pr: FieldTypeEnum.String;
181
- readonly swapFee: FieldTypeEnum.BigInt;
182
- readonly total: FieldTypeEnum.BigInt;
183
- readonly intermediaryKey: FieldTypeEnum.String;
184
- readonly securityDeposit: FieldTypeEnum.BigInt;
185
- };
186
- export type FromBTCLNResponseType = RequestSchemaResult<typeof FromBTCLNResponseSchema>;
187
- export type FromBTCLNInit = BaseFromBTCSwapInit & {
188
- paymentHash: Buffer;
189
- description?: string;
190
- descriptionHash?: Buffer;
191
- };
192
- declare const FromBTCLNAutoResponseSchema: {
193
- readonly intermediaryKey: FieldTypeEnum.String;
194
- readonly pr: FieldTypeEnum.String;
195
- readonly btcAmountSwap: FieldTypeEnum.BigInt;
196
- readonly btcAmountGas: FieldTypeEnum.BigInt;
197
- readonly total: FieldTypeEnum.BigInt;
198
- readonly totalGas: FieldTypeEnum.BigInt;
199
- readonly totalFeeBtc: FieldTypeEnum.BigInt;
200
- readonly swapFeeBtc: FieldTypeEnum.BigInt;
201
- readonly swapFee: FieldTypeEnum.BigInt;
202
- readonly gasSwapFeeBtc: FieldTypeEnum.BigInt;
203
- readonly gasSwapFee: FieldTypeEnum.BigInt;
204
- readonly claimerBounty: FieldTypeEnum.BigInt;
205
- };
206
- export type FromBTCLNAutoResponseType = RequestSchemaResult<typeof FromBTCLNAutoResponseSchema>;
207
- export type FromBTCLNAutoInit = Omit<BaseFromBTCSwapInit, "feeRate"> & {
208
- paymentHash: Buffer;
209
- gasToken: string;
210
- description?: string;
211
- descriptionHash?: Buffer;
212
- gasAmount?: bigint;
213
- claimerBounty?: Promise<bigint>;
214
- };
215
- declare const SpvFromBTCPrepareResponseSchema: {
216
- readonly quoteId: FieldTypeEnum.String;
217
- readonly expiry: FieldTypeEnum.Number;
218
- readonly address: FieldTypeEnum.String;
219
- readonly vaultId: FieldTypeEnum.BigInt;
220
- readonly vaultBtcAddress: FieldTypeEnum.String;
221
- readonly btcAddress: FieldTypeEnum.String;
222
- readonly btcUtxo: FieldTypeEnum.String;
223
- readonly btcFeeRate: FieldTypeEnum.Number;
224
- readonly btcAmount: FieldTypeEnum.BigInt;
225
- readonly btcAmountSwap: FieldTypeEnum.BigInt;
226
- readonly btcAmountGas: FieldTypeEnum.BigInt;
227
- readonly total: FieldTypeEnum.BigInt;
228
- readonly totalGas: FieldTypeEnum.BigInt;
229
- readonly totalFeeBtc: FieldTypeEnum.BigInt;
230
- readonly swapFeeBtc: FieldTypeEnum.BigInt;
231
- readonly swapFee: FieldTypeEnum.BigInt;
232
- readonly gasSwapFeeBtc: FieldTypeEnum.BigInt;
233
- readonly gasSwapFee: FieldTypeEnum.BigInt;
234
- readonly callerFeeShare: FieldTypeEnum.BigInt;
235
- readonly frontingFeeShare: FieldTypeEnum.BigInt;
236
- readonly executionFeeShare: FieldTypeEnum.BigInt;
237
- };
238
- export type SpvFromBTCPrepareResponseType = RequestSchemaResult<typeof SpvFromBTCPrepareResponseSchema>;
239
- export type SpvFromBTCPrepare = SwapInit & {
240
- address: string;
241
- amount: bigint;
242
- gasAmount: bigint;
243
- gasToken: string;
244
- exactOut: boolean;
245
- callerFeeRate: Promise<bigint>;
246
- frontingFeeRate: bigint;
247
- stickyAddress?: boolean;
248
- };
249
- declare const SpvFromBTCInitResponseSchema: {
250
- readonly txId: FieldTypeEnum.String;
251
- };
252
- export type SpvFromBTCInitResponseType = RequestSchemaResult<typeof SpvFromBTCInitResponseSchema>;
253
- export type SpvFromBTCInit = {
254
- quoteId: string;
255
- psbtHex: string;
256
- };
257
- export declare class IntermediaryAPI {
258
- /**
259
- * Returns the information about a specific intermediary
260
- *
261
- * @param baseUrl Base URL of the intermediary
262
- * @param timeout Timeout in milliseconds for the HTTP request
263
- * @param abortSignal
264
- *
265
- * @throws {RequestError} If non-200 http response code is returned
266
- * @throws {Error} If the supplied nonce doesn't match the response
267
- */
268
- static getIntermediaryInfo(baseUrl: string, timeout?: number, abortSignal?: AbortSignal): Promise<InfoHandlerResponse>;
269
- /**
270
- * Returns the information about an outcome of the To BTC swap
271
- *
272
- * @param url URL of the intermediary
273
- * @param paymentHash Payment hash of the swap
274
- * @param sequence Swap's sequence number
275
- * @param timeout Timeout in milliseconds for the HTTP request
276
- * @param abortSignal
277
- *
278
- * @throws {RequestError} If non-200 http response code is returned
279
- */
280
- static getRefundAuthorization(url: string, paymentHash: string, sequence: bigint, timeout?: number, abortSignal?: AbortSignal): Promise<RefundAuthorizationResponse>;
281
- /**
282
- * Returns the information about the payment of the From BTCLN swaps
283
- *
284
- * @param url URL of the intermediary
285
- * @param paymentHash Payment hash of the swap
286
- * @param timeout Timeout in milliseconds for the HTTP request
287
- * @param abortSignal
288
- *
289
- * @throws {RequestError} If non-200 http response code is returned
290
- */
291
- static getPaymentAuthorization(url: string, paymentHash: string, timeout?: number, abortSignal?: AbortSignal): Promise<PaymentAuthorizationResponse>;
292
- /**
293
- * Returns the status of the payment of the From BTCLN swaps
294
- *
295
- * @param url URL of the intermediary
296
- * @param paymentHash Payment hash of the swap
297
- * @param timeout Timeout in milliseconds for the HTTP request
298
- * @param abortSignal
299
- *
300
- * @throws {RequestError} If non-200 http response code is returned
301
- */
302
- static getInvoiceStatus(url: string, paymentHash: string, timeout?: number, abortSignal?: AbortSignal): Promise<InvoiceStatusResponse>;
303
- /**
304
- * Initiate To BTC swap with an intermediary
305
- *
306
- * @param chainIdentifier
307
- * @param baseUrl Base URL of the intermediary
308
- * @param init Swap initialization parameters
309
- * @param timeout Timeout in milliseconds for the HTTP request
310
- * @param abortSignal
311
- * @param streamRequest Whether to force streaming (or not streaming) the request, default is autodetect
312
- *
313
- * @throws {RequestError} If non-200 http response code is returned
314
- */
315
- static initToBTC(chainIdentifier: string, baseUrl: string, init: ToBTCInit, timeout?: number, abortSignal?: AbortSignal, streamRequest?: boolean): {
316
- signDataPrefetch: Promise<any>;
317
- response: Promise<ToBTCResponseType>;
318
- };
319
- /**
320
- * Initiate From BTC swap with an intermediary
321
- *
322
- * @param chainIdentifier
323
- * @param baseUrl Base URL of the intermediary
324
- * @param depositToken
325
- * @param init Swap initialization parameters
326
- * @param timeout Timeout in milliseconds for the HTTP request
327
- * @param abortSignal
328
- * @param streamRequest Whether to force streaming (or not streaming) the request, default is autodetect
329
- *
330
- * @throws {RequestError} If non-200 http response code is returned
331
- */
332
- static initFromBTC(chainIdentifier: string, baseUrl: string, depositToken: string, init: FromBTCInit, timeout?: number, abortSignal?: AbortSignal, streamRequest?: boolean): {
333
- signDataPrefetch: Promise<any>;
334
- response: Promise<FromBTCResponseType>;
335
- };
336
- /**
337
- * Initiate From BTCLN swap with an intermediary
338
- *
339
- * @param chainIdentifier
340
- * @param baseUrl Base URL of the intermediary
341
- * @param depositToken
342
- * @param init Swap initialization parameters
343
- * @param timeout Timeout in milliseconds for the HTTP request
344
- * @param abortSignal
345
- * @param streamRequest Whether to force streaming (or not streaming) the request, default is autodetect
346
- *
347
- * @throws {RequestError} If non-200 http response code is returned
348
- */
349
- static initFromBTCLN(chainIdentifier: string, baseUrl: string, depositToken: string, init: FromBTCLNInit, timeout?: number, abortSignal?: AbortSignal, streamRequest?: boolean): {
350
- lnPublicKey: Promise<string | null>;
351
- response: Promise<FromBTCLNResponseType>;
352
- };
353
- /**
354
- * Initiate From BTCLN swap with auto-initilization by an intermediary
355
- *
356
- * @param chainIdentifier
357
- * @param baseUrl Base URL of the intermediary
358
- * @param init Swap initialization parameters
359
- * @param timeout Timeout in milliseconds for the HTTP request
360
- * @param abortSignal
361
- * @param streamRequest Whether to force streaming (or not streaming) the request, default is autodetect
362
- *
363
- * @throws {RequestError} If non-200 http response code is returned
364
- */
365
- static initFromBTCLNAuto(chainIdentifier: string, baseUrl: string, init: FromBTCLNAutoInit, timeout?: number, abortSignal?: AbortSignal, streamRequest?: boolean): {
366
- lnPublicKey: Promise<string | null>;
367
- response: Promise<FromBTCLNAutoResponseType>;
368
- };
369
- /**
370
- * Initiate To BTCLN swap with an intermediary
371
- *
372
- * @param chainIdentifier
373
- * @param baseUrl Base URL of the intermediary
374
- * @param init Swap initialization parameters
375
- * @param timeout Timeout in milliseconds for the HTTP request
376
- * @param abortSignal
377
- * @param streamRequest Whether to force streaming (or not streaming) the request, default is autodetect
378
- *
379
- * @throws {RequestError} If non-200 http response code is returned
380
- */
381
- static initToBTCLN(chainIdentifier: string, baseUrl: string, init: ToBTCLNInit, timeout?: number, abortSignal?: AbortSignal, streamRequest?: boolean): {
382
- signDataPrefetch: Promise<any>;
383
- response: Promise<ToBTCLNResponseType>;
384
- };
385
- /**
386
- * Initiate To BTCLN exact in swap with an intermediary
387
- *
388
- * @param baseUrl Base URL of the intermediary
389
- * @param init Swap initialization parameters
390
- * @param timeout Timeout in milliseconds for the HTTP request
391
- * @param abortSignal
392
- * @param streamRequest Whether to force streaming (or not streaming) the request, default is autodetect
393
- *
394
- * @throws {RequestError} If non-200 http response code is returned
395
- */
396
- static initToBTCLNExactIn(baseUrl: string, init: ToBTCLNInitExactIn, timeout?: number, abortSignal?: AbortSignal, streamRequest?: boolean): Promise<ToBTCLNResponseType>;
397
- /**
398
- * Prepare To BTCLN exact in swap with an intermediary
399
- *
400
- * @param chainIdentifier
401
- * @param baseUrl Base URL of the intermediary
402
- * @param init Swap initialization parameters
403
- * @param timeout Timeout in milliseconds for the HTTP request
404
- * @param abortSignal
405
- * @param streamRequest Whether to force streaming (or not streaming) the request, default is autodetect
406
- *
407
- * @throws {RequestError} If non-200 http response code is returned
408
- */
409
- static prepareToBTCLNExactIn(chainIdentifier: string, baseUrl: string, init: ToBTCLNPrepareExactIn, timeout?: number, abortSignal?: AbortSignal, streamRequest?: boolean): {
410
- signDataPrefetch: Promise<any>;
411
- response: Promise<ToBTCLNPrepareExactInResponseType>;
412
- };
413
- /**
414
- * Prepare From BTC swap via new spv vault swaps with an intermediary
415
- *
416
- * @param chainIdentifier
417
- * @param baseUrl Base URL of the intermediary
418
- * @param init Swap initialization parameters
419
- * @param timeout Timeout in milliseconds for the HTTP request
420
- * @param abortSignal
421
- * @param streamRequest Whether to force streaming (or not streaming) the request, default is autodetect
422
- *
423
- * @throws {RequestError} If non-200 http response code is returned
424
- */
425
- static prepareSpvFromBTC(chainIdentifier: string, baseUrl: string, init: SpvFromBTCPrepare, timeout?: number, abortSignal?: AbortSignal, streamRequest?: boolean): Promise<SpvFromBTCPrepareResponseType>;
426
- /**
427
- * Prepare From BTC swap via new spv vault swaps with an intermediary
428
- *
429
- * @param chainIdentifier
430
- * @param url
431
- * @param init Swap initialization parameters
432
- * @param timeout Timeout in milliseconds for the HTTP request
433
- * @param abortSignal
434
- * @param streamRequest Whether to force streaming (or not streaming) the request, default is autodetect
435
- *
436
- * @throws {RequestError} If non-200 http response code is returned
437
- */
438
- static initSpvFromBTC(chainIdentifier: string, url: string, init: SpvFromBTCInit, timeout?: number, abortSignal?: AbortSignal, streamRequest?: boolean): Promise<SpvFromBTCInitResponseType>;
439
- }
440
- export {};
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import { FieldTypeEnum, RequestSchemaResult } from "../../http/paramcoders/SchemaVerifier";
4
+ export type InfoHandlerResponse = {
5
+ envelope: string;
6
+ chains: {
7
+ [chainIdentifier: string]: {
8
+ address: string;
9
+ signature: string;
10
+ contractVersion?: string;
11
+ };
12
+ };
13
+ };
14
+ export declare enum RefundAuthorizationResponseCodes {
15
+ EXPIRED = 20010,
16
+ REFUND_DATA = 20000,
17
+ NOT_FOUND = 20007,
18
+ PENDING = 20008,
19
+ PAID = 20006
20
+ }
21
+ export declare enum PaymentAuthorizationResponseCodes {
22
+ AUTH_DATA = 10000,
23
+ EXPIRED = 10001,
24
+ PAID = 10002,
25
+ PENDING = 10003,
26
+ ALREADY_COMMITTED = 10004
27
+ }
28
+ export declare enum InvoiceStatusResponseCodes {
29
+ PAID = 10000,
30
+ EXPIRED = 10001,
31
+ SETTLED = 10002,
32
+ PENDING = 10003
33
+ }
34
+ export type RefundAuthorizationResponse = {
35
+ code: RefundAuthorizationResponseCodes.PAID;
36
+ msg: string;
37
+ data: {
38
+ secret?: string;
39
+ txId?: string;
40
+ };
41
+ } | {
42
+ code: RefundAuthorizationResponseCodes.REFUND_DATA;
43
+ msg: string;
44
+ data: {
45
+ address: string;
46
+ prefix: string;
47
+ timeout: string;
48
+ signature: string;
49
+ };
50
+ } | {
51
+ code: Exclude<RefundAuthorizationResponseCodes, RefundAuthorizationResponseCodes.PAID | RefundAuthorizationResponseCodes.REFUND_DATA>;
52
+ msg: string;
53
+ };
54
+ export type PaymentAuthorizationResponse = {
55
+ code: PaymentAuthorizationResponseCodes.AUTH_DATA;
56
+ msg: string;
57
+ data: {
58
+ address: string;
59
+ data: any;
60
+ nonce: number;
61
+ prefix: string;
62
+ timeout: string;
63
+ signature: string;
64
+ };
65
+ } | {
66
+ code: Exclude<PaymentAuthorizationResponseCodes, PaymentAuthorizationResponseCodes.AUTH_DATA>;
67
+ msg: string;
68
+ };
69
+ export type InvoiceStatusResponse = {
70
+ code: Exclude<InvoiceStatusResponseCodes, InvoiceStatusResponseCodes.PAID>;
71
+ msg: string;
72
+ } | {
73
+ code: InvoiceStatusResponseCodes.PAID;
74
+ msg: string;
75
+ data: {
76
+ data: any;
77
+ };
78
+ };
79
+ export type SwapInit = {
80
+ token: string;
81
+ additionalParams?: {
82
+ [name: string]: any;
83
+ };
84
+ };
85
+ export type BaseFromBTCSwapInit = SwapInit & {
86
+ claimer: string;
87
+ amount: bigint;
88
+ exactOut: boolean;
89
+ feeRate: Promise<string>;
90
+ };
91
+ export type BaseToBTCSwapInit = SwapInit & {
92
+ offerer: string;
93
+ };
94
+ declare const ToBTCResponseSchema: {
95
+ readonly data: FieldTypeEnum.Any;
96
+ readonly prefix: FieldTypeEnum.String;
97
+ readonly timeout: FieldTypeEnum.String;
98
+ readonly signature: FieldTypeEnum.String;
99
+ readonly amount: FieldTypeEnum.BigInt;
100
+ readonly address: FieldTypeEnum.String;
101
+ readonly satsPervByte: FieldTypeEnum.BigInt;
102
+ readonly networkFee: FieldTypeEnum.BigInt;
103
+ readonly swapFee: FieldTypeEnum.BigInt;
104
+ readonly totalFee: FieldTypeEnum.BigInt;
105
+ readonly total: FieldTypeEnum.BigInt;
106
+ readonly minRequiredExpiry: FieldTypeEnum.BigInt;
107
+ };
108
+ export type ToBTCResponseType = RequestSchemaResult<typeof ToBTCResponseSchema>;
109
+ export type ToBTCInit = BaseToBTCSwapInit & {
110
+ btcAddress: string;
111
+ exactIn: boolean;
112
+ amount: bigint;
113
+ confirmationTarget: number;
114
+ confirmations: number;
115
+ nonce: bigint;
116
+ feeRate: Promise<string>;
117
+ };
118
+ declare const ToBTCLNResponseSchema: {
119
+ readonly data: FieldTypeEnum.Any;
120
+ readonly prefix: FieldTypeEnum.String;
121
+ readonly timeout: FieldTypeEnum.String;
122
+ readonly signature: FieldTypeEnum.String;
123
+ readonly maxFee: FieldTypeEnum.BigInt;
124
+ readonly swapFee: FieldTypeEnum.BigInt;
125
+ readonly total: FieldTypeEnum.BigInt;
126
+ readonly confidence: FieldTypeEnum.Number;
127
+ readonly address: FieldTypeEnum.String;
128
+ readonly routingFeeSats: FieldTypeEnum.BigInt;
129
+ };
130
+ export type ToBTCLNResponseType = RequestSchemaResult<typeof ToBTCLNResponseSchema>;
131
+ export type ToBTCLNInit = BaseToBTCSwapInit & {
132
+ pr: string;
133
+ maxFee: bigint;
134
+ expiryTimestamp: bigint;
135
+ feeRate: Promise<string>;
136
+ };
137
+ declare const ToBTCLNPrepareExactInSchema: {
138
+ readonly amount: FieldTypeEnum.BigInt;
139
+ readonly reqId: FieldTypeEnum.String;
140
+ };
141
+ export type ToBTCLNPrepareExactInResponseType = RequestSchemaResult<typeof ToBTCLNPrepareExactInSchema>;
142
+ export type ToBTCLNPrepareExactIn = BaseToBTCSwapInit & {
143
+ pr: string;
144
+ amount: bigint;
145
+ maxFee: bigint;
146
+ expiryTimestamp: bigint;
147
+ };
148
+ export type ToBTCLNInitExactIn = {
149
+ pr: string;
150
+ reqId: string;
151
+ feeRate: Promise<string>;
152
+ additionalParams?: {
153
+ [name: string]: any;
154
+ };
155
+ };
156
+ declare const FromBTCResponseSchema: {
157
+ readonly data: FieldTypeEnum.Any;
158
+ readonly prefix: FieldTypeEnum.String;
159
+ readonly timeout: FieldTypeEnum.String;
160
+ readonly signature: FieldTypeEnum.String;
161
+ readonly amount: FieldTypeEnum.BigInt;
162
+ readonly btcAddress: FieldTypeEnum.String;
163
+ readonly address: FieldTypeEnum.String;
164
+ readonly swapFee: FieldTypeEnum.BigInt;
165
+ readonly total: FieldTypeEnum.BigInt;
166
+ readonly confirmations: FieldTypeEnum.Number;
167
+ };
168
+ export type FromBTCResponseType = RequestSchemaResult<typeof FromBTCResponseSchema>;
169
+ export type FromBTCInit = BaseFromBTCSwapInit & {
170
+ sequence: bigint;
171
+ claimerBounty: Promise<{
172
+ feePerBlock: bigint;
173
+ safetyFactor: bigint;
174
+ startTimestamp: bigint;
175
+ addBlock: bigint;
176
+ addFee: bigint;
177
+ }>;
178
+ };
179
+ declare const FromBTCLNResponseSchema: {
180
+ readonly pr: FieldTypeEnum.String;
181
+ readonly swapFee: FieldTypeEnum.BigInt;
182
+ readonly total: FieldTypeEnum.BigInt;
183
+ readonly intermediaryKey: FieldTypeEnum.String;
184
+ readonly securityDeposit: FieldTypeEnum.BigInt;
185
+ };
186
+ export type FromBTCLNResponseType = RequestSchemaResult<typeof FromBTCLNResponseSchema>;
187
+ export type FromBTCLNInit = BaseFromBTCSwapInit & {
188
+ paymentHash: Buffer;
189
+ description?: string;
190
+ descriptionHash?: Buffer;
191
+ };
192
+ declare const FromBTCLNAutoResponseSchema: {
193
+ readonly intermediaryKey: FieldTypeEnum.String;
194
+ readonly pr: FieldTypeEnum.String;
195
+ readonly btcAmountSwap: FieldTypeEnum.BigInt;
196
+ readonly btcAmountGas: FieldTypeEnum.BigInt;
197
+ readonly total: FieldTypeEnum.BigInt;
198
+ readonly totalGas: FieldTypeEnum.BigInt;
199
+ readonly totalFeeBtc: FieldTypeEnum.BigInt;
200
+ readonly swapFeeBtc: FieldTypeEnum.BigInt;
201
+ readonly swapFee: FieldTypeEnum.BigInt;
202
+ readonly gasSwapFeeBtc: FieldTypeEnum.BigInt;
203
+ readonly gasSwapFee: FieldTypeEnum.BigInt;
204
+ readonly claimerBounty: FieldTypeEnum.BigInt;
205
+ };
206
+ export type FromBTCLNAutoResponseType = RequestSchemaResult<typeof FromBTCLNAutoResponseSchema>;
207
+ export type FromBTCLNAutoInit = Omit<BaseFromBTCSwapInit, "feeRate"> & {
208
+ paymentHash: Buffer;
209
+ gasToken: string;
210
+ description?: string;
211
+ descriptionHash?: Buffer;
212
+ gasAmount?: bigint;
213
+ claimerBounty?: Promise<bigint>;
214
+ };
215
+ declare const SpvFromBTCPrepareResponseSchema: {
216
+ readonly quoteId: FieldTypeEnum.String;
217
+ readonly expiry: FieldTypeEnum.Number;
218
+ readonly address: FieldTypeEnum.String;
219
+ readonly vaultId: FieldTypeEnum.BigInt;
220
+ readonly vaultBtcAddress: FieldTypeEnum.String;
221
+ readonly btcAddress: FieldTypeEnum.String;
222
+ readonly btcUtxo: FieldTypeEnum.String;
223
+ readonly btcFeeRate: FieldTypeEnum.Number;
224
+ readonly btcAmount: FieldTypeEnum.BigInt;
225
+ readonly btcAmountSwap: FieldTypeEnum.BigInt;
226
+ readonly btcAmountGas: FieldTypeEnum.BigInt;
227
+ readonly total: FieldTypeEnum.BigInt;
228
+ readonly totalGas: FieldTypeEnum.BigInt;
229
+ readonly totalFeeBtc: FieldTypeEnum.BigInt;
230
+ readonly swapFeeBtc: FieldTypeEnum.BigInt;
231
+ readonly swapFee: FieldTypeEnum.BigInt;
232
+ readonly gasSwapFeeBtc: FieldTypeEnum.BigInt;
233
+ readonly gasSwapFee: FieldTypeEnum.BigInt;
234
+ readonly callerFeeShare: FieldTypeEnum.BigInt;
235
+ readonly frontingFeeShare: FieldTypeEnum.BigInt;
236
+ readonly executionFeeShare: FieldTypeEnum.BigInt;
237
+ readonly usedUtxoInputCalculation: FieldTypeEnum.BooleanOptional;
238
+ };
239
+ export type SpvFromBTCPrepareResponseType = RequestSchemaResult<typeof SpvFromBTCPrepareResponseSchema>;
240
+ export type SpvFromBTCPrepare = SwapInit & {
241
+ address: string;
242
+ amount: Promise<bigint>;
243
+ gasAmount: bigint;
244
+ gasToken: string;
245
+ exactOut: boolean;
246
+ callerFeeRate: Promise<bigint>;
247
+ frontingFeeRate: bigint;
248
+ stickyAddress?: boolean;
249
+ amountUtxos?: Promise<{
250
+ value: number;
251
+ vSize: number;
252
+ cpfp?: {
253
+ effectiveVSize: number;
254
+ effectiveFeeRate: number;
255
+ };
256
+ }[] | undefined>;
257
+ amountFeeRate?: Promise<number | undefined>;
258
+ };
259
+ declare const SpvFromBTCInitResponseSchema: {
260
+ readonly txId: FieldTypeEnum.String;
261
+ };
262
+ export type SpvFromBTCInitResponseType = RequestSchemaResult<typeof SpvFromBTCInitResponseSchema>;
263
+ export type SpvFromBTCInit = {
264
+ quoteId: string;
265
+ psbtHex: string;
266
+ };
267
+ export declare class IntermediaryAPI {
268
+ /**
269
+ * Returns the information about a specific intermediary
270
+ *
271
+ * @param baseUrl Base URL of the intermediary
272
+ * @param timeout Timeout in milliseconds for the HTTP request
273
+ * @param abortSignal
274
+ *
275
+ * @throws {RequestError} If non-200 http response code is returned
276
+ * @throws {Error} If the supplied nonce doesn't match the response
277
+ */
278
+ static getIntermediaryInfo(baseUrl: string, timeout?: number, abortSignal?: AbortSignal): Promise<InfoHandlerResponse>;
279
+ /**
280
+ * Returns the information about an outcome of the To BTC swap
281
+ *
282
+ * @param url URL of the intermediary
283
+ * @param paymentHash Payment hash of the swap
284
+ * @param sequence Swap's sequence number
285
+ * @param timeout Timeout in milliseconds for the HTTP request
286
+ * @param abortSignal
287
+ *
288
+ * @throws {RequestError} If non-200 http response code is returned
289
+ */
290
+ static getRefundAuthorization(url: string, paymentHash: string, sequence: bigint, timeout?: number, abortSignal?: AbortSignal): Promise<RefundAuthorizationResponse>;
291
+ /**
292
+ * Returns the information about the payment of the From BTCLN swaps
293
+ *
294
+ * @param url URL of the intermediary
295
+ * @param paymentHash Payment hash of the swap
296
+ * @param timeout Timeout in milliseconds for the HTTP request
297
+ * @param abortSignal
298
+ *
299
+ * @throws {RequestError} If non-200 http response code is returned
300
+ */
301
+ static getPaymentAuthorization(url: string, paymentHash: string, timeout?: number, abortSignal?: AbortSignal): Promise<PaymentAuthorizationResponse>;
302
+ /**
303
+ * Returns the status of the payment of the From BTCLN swaps
304
+ *
305
+ * @param url URL of the intermediary
306
+ * @param paymentHash Payment hash of the swap
307
+ * @param timeout Timeout in milliseconds for the HTTP request
308
+ * @param abortSignal
309
+ *
310
+ * @throws {RequestError} If non-200 http response code is returned
311
+ */
312
+ static getInvoiceStatus(url: string, paymentHash: string, timeout?: number, abortSignal?: AbortSignal): Promise<InvoiceStatusResponse>;
313
+ /**
314
+ * Initiate To BTC swap with an intermediary
315
+ *
316
+ * @param chainIdentifier
317
+ * @param baseUrl Base URL of the intermediary
318
+ * @param init Swap initialization parameters
319
+ * @param timeout Timeout in milliseconds for the HTTP request
320
+ * @param abortSignal
321
+ * @param streamRequest Whether to force streaming (or not streaming) the request, default is autodetect
322
+ *
323
+ * @throws {RequestError} If non-200 http response code is returned
324
+ */
325
+ static initToBTC(chainIdentifier: string, baseUrl: string, init: ToBTCInit, timeout?: number, abortSignal?: AbortSignal, streamRequest?: boolean): {
326
+ signDataPrefetch: Promise<any>;
327
+ response: Promise<ToBTCResponseType>;
328
+ };
329
+ /**
330
+ * Initiate From BTC swap with an intermediary
331
+ *
332
+ * @param chainIdentifier
333
+ * @param baseUrl Base URL of the intermediary
334
+ * @param depositToken
335
+ * @param init Swap initialization parameters
336
+ * @param timeout Timeout in milliseconds for the HTTP request
337
+ * @param abortSignal
338
+ * @param streamRequest Whether to force streaming (or not streaming) the request, default is autodetect
339
+ *
340
+ * @throws {RequestError} If non-200 http response code is returned
341
+ */
342
+ static initFromBTC(chainIdentifier: string, baseUrl: string, depositToken: string, init: FromBTCInit, timeout?: number, abortSignal?: AbortSignal, streamRequest?: boolean): {
343
+ signDataPrefetch: Promise<any>;
344
+ response: Promise<FromBTCResponseType>;
345
+ };
346
+ /**
347
+ * Initiate From BTCLN swap with an intermediary
348
+ *
349
+ * @param chainIdentifier
350
+ * @param baseUrl Base URL of the intermediary
351
+ * @param depositToken
352
+ * @param init Swap initialization parameters
353
+ * @param timeout Timeout in milliseconds for the HTTP request
354
+ * @param abortSignal
355
+ * @param streamRequest Whether to force streaming (or not streaming) the request, default is autodetect
356
+ *
357
+ * @throws {RequestError} If non-200 http response code is returned
358
+ */
359
+ static initFromBTCLN(chainIdentifier: string, baseUrl: string, depositToken: string, init: FromBTCLNInit, timeout?: number, abortSignal?: AbortSignal, streamRequest?: boolean): {
360
+ lnPublicKey: Promise<string | null>;
361
+ response: Promise<FromBTCLNResponseType>;
362
+ };
363
+ /**
364
+ * Initiate From BTCLN swap with auto-initilization by an intermediary
365
+ *
366
+ * @param chainIdentifier
367
+ * @param baseUrl Base URL of the intermediary
368
+ * @param init Swap initialization parameters
369
+ * @param timeout Timeout in milliseconds for the HTTP request
370
+ * @param abortSignal
371
+ * @param streamRequest Whether to force streaming (or not streaming) the request, default is autodetect
372
+ *
373
+ * @throws {RequestError} If non-200 http response code is returned
374
+ */
375
+ static initFromBTCLNAuto(chainIdentifier: string, baseUrl: string, init: FromBTCLNAutoInit, timeout?: number, abortSignal?: AbortSignal, streamRequest?: boolean): {
376
+ lnPublicKey: Promise<string | null>;
377
+ response: Promise<FromBTCLNAutoResponseType>;
378
+ };
379
+ /**
380
+ * Initiate To BTCLN swap with an intermediary
381
+ *
382
+ * @param chainIdentifier
383
+ * @param baseUrl Base URL of the intermediary
384
+ * @param init Swap initialization parameters
385
+ * @param timeout Timeout in milliseconds for the HTTP request
386
+ * @param abortSignal
387
+ * @param streamRequest Whether to force streaming (or not streaming) the request, default is autodetect
388
+ *
389
+ * @throws {RequestError} If non-200 http response code is returned
390
+ */
391
+ static initToBTCLN(chainIdentifier: string, baseUrl: string, init: ToBTCLNInit, timeout?: number, abortSignal?: AbortSignal, streamRequest?: boolean): {
392
+ signDataPrefetch: Promise<any>;
393
+ response: Promise<ToBTCLNResponseType>;
394
+ };
395
+ /**
396
+ * Initiate To BTCLN exact in swap with an intermediary
397
+ *
398
+ * @param baseUrl Base URL of the intermediary
399
+ * @param init Swap initialization parameters
400
+ * @param timeout Timeout in milliseconds for the HTTP request
401
+ * @param abortSignal
402
+ * @param streamRequest Whether to force streaming (or not streaming) the request, default is autodetect
403
+ *
404
+ * @throws {RequestError} If non-200 http response code is returned
405
+ */
406
+ static initToBTCLNExactIn(baseUrl: string, init: ToBTCLNInitExactIn, timeout?: number, abortSignal?: AbortSignal, streamRequest?: boolean): Promise<ToBTCLNResponseType>;
407
+ /**
408
+ * Prepare To BTCLN exact in swap with an intermediary
409
+ *
410
+ * @param chainIdentifier
411
+ * @param baseUrl Base URL of the intermediary
412
+ * @param init Swap initialization parameters
413
+ * @param timeout Timeout in milliseconds for the HTTP request
414
+ * @param abortSignal
415
+ * @param streamRequest Whether to force streaming (or not streaming) the request, default is autodetect
416
+ *
417
+ * @throws {RequestError} If non-200 http response code is returned
418
+ */
419
+ static prepareToBTCLNExactIn(chainIdentifier: string, baseUrl: string, init: ToBTCLNPrepareExactIn, timeout?: number, abortSignal?: AbortSignal, streamRequest?: boolean): {
420
+ signDataPrefetch: Promise<any>;
421
+ response: Promise<ToBTCLNPrepareExactInResponseType>;
422
+ };
423
+ /**
424
+ * Prepare From BTC swap via new spv vault swaps with an intermediary
425
+ *
426
+ * @param chainIdentifier
427
+ * @param baseUrl Base URL of the intermediary
428
+ * @param init Swap initialization parameters
429
+ * @param timeout Timeout in milliseconds for the HTTP request
430
+ * @param abortSignal
431
+ * @param streamRequest Whether to force streaming (or not streaming) the request, default is autodetect
432
+ *
433
+ * @throws {RequestError} If non-200 http response code is returned
434
+ */
435
+ static prepareSpvFromBTC(chainIdentifier: string, baseUrl: string, init: SpvFromBTCPrepare, timeout?: number, abortSignal?: AbortSignal, streamRequest?: boolean): Promise<SpvFromBTCPrepareResponseType>;
436
+ /**
437
+ * Prepare From BTC swap via new spv vault swaps with an intermediary
438
+ *
439
+ * @param chainIdentifier
440
+ * @param url
441
+ * @param init Swap initialization parameters
442
+ * @param timeout Timeout in milliseconds for the HTTP request
443
+ * @param abortSignal
444
+ * @param streamRequest Whether to force streaming (or not streaming) the request, default is autodetect
445
+ *
446
+ * @throws {RequestError} If non-200 http response code is returned
447
+ */
448
+ static initSpvFromBTC(chainIdentifier: string, url: string, init: SpvFromBTCInit, timeout?: number, abortSignal?: AbortSignal, streamRequest?: boolean): Promise<SpvFromBTCInitResponseType>;
449
+ }
450
+ export {};