@atomiqlabs/sdk 8.9.1 → 8.9.2

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 (366) hide show
  1. package/LICENSE +201 -201
  2. package/README.md +1760 -1760
  3. package/api/index.d.ts +1 -1
  4. package/api/index.js +3 -3
  5. package/dist/ApiList.d.ts +37 -37
  6. package/dist/ApiList.js +30 -30
  7. package/dist/SmartChainAssets.d.ts +181 -181
  8. package/dist/SmartChainAssets.js +181 -181
  9. package/dist/api/ApiEndpoints.d.ts +393 -393
  10. package/dist/api/ApiEndpoints.js +2 -2
  11. package/dist/api/ApiParser.d.ts +10 -10
  12. package/dist/api/ApiParser.js +134 -134
  13. package/dist/api/ApiTypes.d.ts +157 -157
  14. package/dist/api/ApiTypes.js +75 -75
  15. package/dist/api/SerializedAction.d.ts +40 -40
  16. package/dist/api/SerializedAction.js +59 -59
  17. package/dist/api/SwapperApi.d.ts +50 -50
  18. package/dist/api/SwapperApi.js +431 -431
  19. package/dist/api/index.d.ts +5 -5
  20. package/dist/api/index.js +24 -24
  21. package/dist/bitcoin/coinselect2/accumulative.d.ts +7 -7
  22. package/dist/bitcoin/coinselect2/accumulative.js +52 -52
  23. package/dist/bitcoin/coinselect2/blackjack.d.ts +7 -7
  24. package/dist/bitcoin/coinselect2/blackjack.js +38 -38
  25. package/dist/bitcoin/coinselect2/index.d.ts +20 -20
  26. package/dist/bitcoin/coinselect2/index.js +69 -69
  27. package/dist/bitcoin/coinselect2/utils.d.ts +82 -82
  28. package/dist/bitcoin/coinselect2/utils.js +158 -158
  29. package/dist/bitcoin/wallet/BitcoinWallet.d.ts +113 -113
  30. package/dist/bitcoin/wallet/BitcoinWallet.js +335 -335
  31. package/dist/bitcoin/wallet/IBitcoinWallet.d.ts +116 -116
  32. package/dist/bitcoin/wallet/IBitcoinWallet.js +21 -21
  33. package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.d.ts +106 -106
  34. package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.js +196 -196
  35. package/dist/enums/FeeType.d.ts +15 -15
  36. package/dist/enums/FeeType.js +19 -19
  37. package/dist/enums/SwapAmountType.d.ts +15 -15
  38. package/dist/enums/SwapAmountType.js +19 -19
  39. package/dist/enums/SwapDirection.d.ts +15 -15
  40. package/dist/enums/SwapDirection.js +19 -19
  41. package/dist/enums/SwapSide.d.ts +15 -15
  42. package/dist/enums/SwapSide.js +19 -19
  43. package/dist/enums/SwapType.d.ts +75 -75
  44. package/dist/enums/SwapType.js +79 -79
  45. package/dist/errors/IntermediaryError.d.ts +13 -13
  46. package/dist/errors/IntermediaryError.js +27 -27
  47. package/dist/errors/RequestError.d.ts +32 -32
  48. package/dist/errors/RequestError.js +54 -54
  49. package/dist/errors/UserError.d.ts +8 -8
  50. package/dist/errors/UserError.js +16 -16
  51. package/dist/events/UnifiedSwapEventListener.d.ts +24 -24
  52. package/dist/events/UnifiedSwapEventListener.js +138 -138
  53. package/dist/http/HttpUtils.d.ts +29 -29
  54. package/dist/http/HttpUtils.js +97 -97
  55. package/dist/http/paramcoders/IParamReader.d.ts +8 -8
  56. package/dist/http/paramcoders/IParamReader.js +2 -2
  57. package/dist/http/paramcoders/ParamDecoder.d.ts +44 -44
  58. package/dist/http/paramcoders/ParamDecoder.js +137 -137
  59. package/dist/http/paramcoders/ParamEncoder.d.ts +20 -20
  60. package/dist/http/paramcoders/ParamEncoder.js +36 -36
  61. package/dist/http/paramcoders/SchemaVerifier.d.ts +26 -26
  62. package/dist/http/paramcoders/SchemaVerifier.js +145 -145
  63. package/dist/http/paramcoders/client/ResponseParamDecoder.d.ts +11 -11
  64. package/dist/http/paramcoders/client/ResponseParamDecoder.js +57 -57
  65. package/dist/http/paramcoders/client/StreamParamEncoder.d.ts +13 -13
  66. package/dist/http/paramcoders/client/StreamParamEncoder.js +26 -26
  67. package/dist/http/paramcoders/client/StreamingFetchPromise.d.ts +17 -17
  68. package/dist/http/paramcoders/client/StreamingFetchPromise.js +175 -175
  69. package/dist/index.d.ts +86 -86
  70. package/dist/index.js +159 -159
  71. package/dist/intermediaries/Intermediary.d.ts +178 -178
  72. package/dist/intermediaries/Intermediary.js +166 -166
  73. package/dist/intermediaries/IntermediaryDiscovery.d.ts +216 -216
  74. package/dist/intermediaries/IntermediaryDiscovery.js +424 -424
  75. package/dist/intermediaries/apis/IntermediaryAPI.d.ts +607 -607
  76. package/dist/intermediaries/apis/IntermediaryAPI.js +764 -764
  77. package/dist/intermediaries/apis/TrustedIntermediaryAPI.d.ts +155 -155
  78. package/dist/intermediaries/apis/TrustedIntermediaryAPI.js +137 -137
  79. package/dist/intermediaries/auth/SignedKeyBasedAuth.d.ts +14 -14
  80. package/dist/intermediaries/auth/SignedKeyBasedAuth.js +68 -68
  81. package/dist/lnurl/LNURL.d.ts +102 -102
  82. package/dist/lnurl/LNURL.js +321 -321
  83. package/dist/prices/RedundantSwapPrice.d.ts +110 -110
  84. package/dist/prices/RedundantSwapPrice.js +222 -222
  85. package/dist/prices/SingleSwapPrice.d.ts +34 -34
  86. package/dist/prices/SingleSwapPrice.js +44 -44
  87. package/dist/prices/SwapPriceWithChain.d.ts +107 -107
  88. package/dist/prices/SwapPriceWithChain.js +128 -128
  89. package/dist/prices/abstract/ICachedSwapPrice.d.ts +28 -28
  90. package/dist/prices/abstract/ICachedSwapPrice.js +62 -62
  91. package/dist/prices/abstract/IPriceProvider.d.ts +81 -81
  92. package/dist/prices/abstract/IPriceProvider.js +74 -74
  93. package/dist/prices/abstract/ISwapPrice.d.ts +168 -168
  94. package/dist/prices/abstract/ISwapPrice.js +279 -279
  95. package/dist/prices/providers/BinancePriceProvider.d.ts +23 -23
  96. package/dist/prices/providers/BinancePriceProvider.js +30 -30
  97. package/dist/prices/providers/CoinGeckoPriceProvider.d.ts +23 -23
  98. package/dist/prices/providers/CoinGeckoPriceProvider.js +29 -29
  99. package/dist/prices/providers/CoinPaprikaPriceProvider.d.ts +25 -25
  100. package/dist/prices/providers/CoinPaprikaPriceProvider.js +29 -29
  101. package/dist/prices/providers/CustomPriceProvider.d.ts +24 -24
  102. package/dist/prices/providers/CustomPriceProvider.js +35 -35
  103. package/dist/prices/providers/KrakenPriceProvider.d.ts +38 -38
  104. package/dist/prices/providers/KrakenPriceProvider.js +45 -45
  105. package/dist/prices/providers/OKXPriceProvider.d.ts +34 -34
  106. package/dist/prices/providers/OKXPriceProvider.js +29 -29
  107. package/dist/prices/providers/abstract/ExchangePriceProvider.d.ts +17 -17
  108. package/dist/prices/providers/abstract/ExchangePriceProvider.js +21 -21
  109. package/dist/prices/providers/abstract/HttpPriceProvider.d.ts +7 -7
  110. package/dist/prices/providers/abstract/HttpPriceProvider.js +12 -12
  111. package/dist/storage/IUnifiedStorage.d.ts +127 -127
  112. package/dist/storage/IUnifiedStorage.js +2 -2
  113. package/dist/storage/UnifiedSwapStorage.d.ts +120 -120
  114. package/dist/storage/UnifiedSwapStorage.js +154 -154
  115. package/dist/storage-browser/IndexedDBUnifiedStorage.d.ts +63 -63
  116. package/dist/storage-browser/IndexedDBUnifiedStorage.js +298 -298
  117. package/dist/storage-browser/LocalStorageManager.d.ts +49 -49
  118. package/dist/storage-browser/LocalStorageManager.js +93 -93
  119. package/dist/swapper/Swapper.d.ts +765 -770
  120. package/dist/swapper/Swapper.js +1749 -1758
  121. package/dist/swapper/SwapperFactory.d.ts +135 -135
  122. package/dist/swapper/SwapperFactory.js +162 -162
  123. package/dist/swapper/SwapperUtils.d.ts +222 -222
  124. package/dist/swapper/SwapperUtils.js +519 -519
  125. package/dist/swapper/SwapperWithChain.d.ts +404 -404
  126. package/dist/swapper/SwapperWithChain.js +469 -469
  127. package/dist/swapper/SwapperWithSigner.d.ts +322 -322
  128. package/dist/swapper/SwapperWithSigner.js +318 -318
  129. package/dist/swaps/IAddressSwap.d.ts +22 -22
  130. package/dist/swaps/IAddressSwap.js +14 -14
  131. package/dist/swaps/IBTCWalletSwap.d.ts +73 -73
  132. package/dist/swaps/IBTCWalletSwap.js +18 -18
  133. package/dist/swaps/IClaimableSwap.d.ts +49 -49
  134. package/dist/swaps/IClaimableSwap.js +15 -15
  135. package/dist/swaps/IClaimableSwapWrapper.d.ts +15 -15
  136. package/dist/swaps/IClaimableSwapWrapper.js +2 -2
  137. package/dist/swaps/IRefundableSwap.d.ts +43 -43
  138. package/dist/swaps/IRefundableSwap.js +14 -14
  139. package/dist/swaps/ISwap.d.ts +453 -453
  140. package/dist/swaps/ISwap.js +371 -371
  141. package/dist/swaps/ISwapWithGasDrop.d.ts +21 -21
  142. package/dist/swaps/ISwapWithGasDrop.js +12 -12
  143. package/dist/swaps/ISwapWrapper.d.ts +295 -295
  144. package/dist/swaps/ISwapWrapper.js +373 -373
  145. package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.d.ts +98 -98
  146. package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.js +126 -126
  147. package/dist/swaps/escrow_swaps/IEscrowSwap.d.ts +139 -139
  148. package/dist/swaps/escrow_swaps/IEscrowSwap.js +172 -172
  149. package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.d.ts +129 -129
  150. package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.js +167 -167
  151. package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.d.ts +107 -107
  152. package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.js +130 -130
  153. package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.d.ts +162 -162
  154. package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.js +190 -190
  155. package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.d.ts +64 -64
  156. package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.js +82 -82
  157. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.d.ts +547 -547
  158. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.js +1419 -1419
  159. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.d.ts +192 -192
  160. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.js +432 -432
  161. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.d.ts +650 -650
  162. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.js +1577 -1577
  163. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.d.ts +237 -237
  164. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.js +525 -525
  165. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.d.ts +491 -491
  166. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.js +1463 -1463
  167. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.d.ts +204 -204
  168. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.js +406 -406
  169. package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.d.ts +446 -446
  170. package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.js +1097 -1097
  171. package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.d.ts +68 -68
  172. package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.js +117 -117
  173. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.d.ts +127 -127
  174. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.js +256 -256
  175. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.d.ts +252 -252
  176. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.js +535 -535
  177. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.d.ts +73 -73
  178. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.js +155 -155
  179. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.d.ts +134 -134
  180. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.js +286 -286
  181. package/dist/swaps/spv_swaps/SpvFromBTCSwap.d.ts +694 -694
  182. package/dist/swaps/spv_swaps/SpvFromBTCSwap.js +1687 -1687
  183. package/dist/swaps/spv_swaps/SpvFromBTCWrapper.d.ts +259 -259
  184. package/dist/swaps/spv_swaps/SpvFromBTCWrapper.js +947 -947
  185. package/dist/swaps/trusted/ln/LnForGasSwap.d.ts +302 -302
  186. package/dist/swaps/trusted/ln/LnForGasSwap.js +625 -625
  187. package/dist/swaps/trusted/ln/LnForGasWrapper.d.ts +40 -40
  188. package/dist/swaps/trusted/ln/LnForGasWrapper.js +82 -82
  189. package/dist/swaps/trusted/onchain/OnchainForGasSwap.d.ts +343 -343
  190. package/dist/swaps/trusted/onchain/OnchainForGasSwap.js +698 -698
  191. package/dist/swaps/trusted/onchain/OnchainForGasWrapper.d.ts +71 -71
  192. package/dist/swaps/trusted/onchain/OnchainForGasWrapper.js +93 -93
  193. package/dist/types/AmountData.d.ts +10 -10
  194. package/dist/types/AmountData.js +2 -2
  195. package/dist/types/CustomPriceFunction.d.ts +11 -11
  196. package/dist/types/CustomPriceFunction.js +2 -2
  197. package/dist/types/PriceInfoType.d.ts +28 -28
  198. package/dist/types/PriceInfoType.js +57 -57
  199. package/dist/types/SwapExecutionAction.d.ts +195 -195
  200. package/dist/types/SwapExecutionAction.js +106 -106
  201. package/dist/types/SwapExecutionStep.d.ts +144 -144
  202. package/dist/types/SwapExecutionStep.js +87 -87
  203. package/dist/types/SwapStateInfo.d.ts +5 -5
  204. package/dist/types/SwapStateInfo.js +2 -2
  205. package/dist/types/SwapWithSigner.d.ts +17 -17
  206. package/dist/types/SwapWithSigner.js +43 -43
  207. package/dist/types/Token.d.ts +99 -99
  208. package/dist/types/Token.js +76 -76
  209. package/dist/types/TokenAmount.d.ts +75 -75
  210. package/dist/types/TokenAmount.js +85 -85
  211. package/dist/types/fees/Fee.d.ts +50 -50
  212. package/dist/types/fees/Fee.js +2 -2
  213. package/dist/types/fees/FeeBreakdown.d.ts +11 -11
  214. package/dist/types/fees/FeeBreakdown.js +2 -2
  215. package/dist/types/fees/PercentagePPM.d.ts +17 -17
  216. package/dist/types/fees/PercentagePPM.js +18 -18
  217. package/dist/types/lnurl/LNURLPay.d.ts +61 -61
  218. package/dist/types/lnurl/LNURLPay.js +31 -31
  219. package/dist/types/lnurl/LNURLWithdraw.d.ts +48 -48
  220. package/dist/types/lnurl/LNURLWithdraw.js +27 -27
  221. package/dist/types/wallets/LightningInvoiceCreateService.d.ts +24 -24
  222. package/dist/types/wallets/LightningInvoiceCreateService.js +15 -15
  223. package/dist/types/wallets/MinimalBitcoinWalletInterface.d.ts +23 -23
  224. package/dist/types/wallets/MinimalBitcoinWalletInterface.js +2 -2
  225. package/dist/types/wallets/MinimalLightningNetworkWalletInterface.d.ts +9 -9
  226. package/dist/types/wallets/MinimalLightningNetworkWalletInterface.js +2 -2
  227. package/dist/utils/AutomaticClockDriftCorrection.d.ts +1 -1
  228. package/dist/utils/AutomaticClockDriftCorrection.js +70 -70
  229. package/dist/utils/BitcoinUtils.d.ts +18 -18
  230. package/dist/utils/BitcoinUtils.js +174 -174
  231. package/dist/utils/BitcoinWalletUtils.d.ts +7 -7
  232. package/dist/utils/BitcoinWalletUtils.js +14 -14
  233. package/dist/utils/Logger.d.ts +7 -7
  234. package/dist/utils/Logger.js +12 -12
  235. package/dist/utils/RetryUtils.d.ts +22 -22
  236. package/dist/utils/RetryUtils.js +67 -67
  237. package/dist/utils/SwapUtils.d.ts +88 -88
  238. package/dist/utils/SwapUtils.js +72 -72
  239. package/dist/utils/TimeoutUtils.d.ts +17 -17
  240. package/dist/utils/TimeoutUtils.js +55 -55
  241. package/dist/utils/TokenUtils.d.ts +19 -19
  242. package/dist/utils/TokenUtils.js +37 -37
  243. package/dist/utils/TypeUtils.d.ts +7 -7
  244. package/dist/utils/TypeUtils.js +2 -2
  245. package/dist/utils/Utils.d.ts +69 -69
  246. package/dist/utils/Utils.js +214 -214
  247. package/package.json +46 -46
  248. package/src/SmartChainAssets.ts +186 -186
  249. package/src/api/ApiEndpoints.ts +427 -427
  250. package/src/api/ApiParser.ts +138 -138
  251. package/src/api/ApiTypes.ts +229 -229
  252. package/src/api/SerializedAction.ts +97 -97
  253. package/src/api/SwapperApi.ts +545 -545
  254. package/src/api/index.ts +5 -5
  255. package/src/bitcoin/coinselect2/accumulative.ts +69 -69
  256. package/src/bitcoin/coinselect2/blackjack.ts +50 -50
  257. package/src/bitcoin/coinselect2/index.ts +93 -93
  258. package/src/bitcoin/coinselect2/utils.ts +236 -236
  259. package/src/bitcoin/wallet/BitcoinWallet.ts +439 -439
  260. package/src/bitcoin/wallet/IBitcoinWallet.ts +140 -140
  261. package/src/bitcoin/wallet/SingleAddressBitcoinWallet.ts +225 -225
  262. package/src/enums/FeeType.ts +15 -15
  263. package/src/enums/SwapAmountType.ts +16 -16
  264. package/src/enums/SwapDirection.ts +15 -15
  265. package/src/enums/SwapSide.ts +16 -16
  266. package/src/enums/SwapType.ts +75 -75
  267. package/src/errors/IntermediaryError.ts +28 -28
  268. package/src/errors/RequestError.ts +64 -64
  269. package/src/errors/UserError.ts +15 -15
  270. package/src/events/UnifiedSwapEventListener.ts +181 -181
  271. package/src/http/HttpUtils.ts +97 -97
  272. package/src/http/paramcoders/IParamReader.ts +9 -9
  273. package/src/http/paramcoders/ParamDecoder.ts +145 -145
  274. package/src/http/paramcoders/ParamEncoder.ts +40 -40
  275. package/src/http/paramcoders/SchemaVerifier.ts +153 -153
  276. package/src/http/paramcoders/client/ResponseParamDecoder.ts +57 -57
  277. package/src/http/paramcoders/client/StreamParamEncoder.ts +28 -28
  278. package/src/http/paramcoders/client/StreamingFetchPromise.ts +194 -194
  279. package/src/index.ts +141 -141
  280. package/src/intermediaries/Intermediary.ts +280 -280
  281. package/src/intermediaries/IntermediaryDiscovery.ts +548 -548
  282. package/src/intermediaries/apis/IntermediaryAPI.ts +1247 -1247
  283. package/src/intermediaries/auth/SignedKeyBasedAuth.ts +69 -69
  284. package/src/lnurl/LNURL.ts +402 -402
  285. package/src/prices/RedundantSwapPrice.ts +264 -264
  286. package/src/prices/SingleSwapPrice.ts +50 -50
  287. package/src/prices/SwapPriceWithChain.ts +194 -194
  288. package/src/prices/abstract/ICachedSwapPrice.ts +85 -85
  289. package/src/prices/abstract/IPriceProvider.ts +127 -127
  290. package/src/prices/abstract/ISwapPrice.ts +390 -390
  291. package/src/prices/providers/BinancePriceProvider.ts +48 -48
  292. package/src/prices/providers/CoinGeckoPriceProvider.ts +46 -46
  293. package/src/prices/providers/CoinPaprikaPriceProvider.ts +49 -49
  294. package/src/prices/providers/CustomPriceProvider.ts +40 -40
  295. package/src/prices/providers/KrakenPriceProvider.ts +83 -83
  296. package/src/prices/providers/OKXPriceProvider.ts +59 -59
  297. package/src/prices/providers/abstract/ExchangePriceProvider.ts +31 -31
  298. package/src/prices/providers/abstract/HttpPriceProvider.ts +14 -14
  299. package/src/storage/IUnifiedStorage.ts +136 -136
  300. package/src/storage/UnifiedSwapStorage.ts +175 -175
  301. package/src/storage-browser/IndexedDBUnifiedStorage.ts +350 -350
  302. package/src/storage-browser/LocalStorageManager.ts +106 -106
  303. package/src/swapper/Swapper.ts +2557 -2570
  304. package/src/swapper/SwapperFactory.ts +307 -307
  305. package/src/swapper/SwapperUtils.ts +610 -610
  306. package/src/swapper/SwapperWithChain.ts +707 -707
  307. package/src/swapper/SwapperWithSigner.ts +511 -511
  308. package/src/swaps/IAddressSwap.ts +30 -30
  309. package/src/swaps/IBTCWalletSwap.ts +92 -92
  310. package/src/swaps/IClaimableSwap.ts +65 -65
  311. package/src/swaps/IClaimableSwapWrapper.ts +17 -17
  312. package/src/swaps/IRefundableSwap.ts +58 -58
  313. package/src/swaps/ISwap.ts +775 -775
  314. package/src/swaps/ISwapWithGasDrop.ts +25 -25
  315. package/src/swaps/ISwapWrapper.ts +564 -564
  316. package/src/swaps/escrow_swaps/IEscrowSelfInitSwap.ts +217 -217
  317. package/src/swaps/escrow_swaps/IEscrowSwap.ts +271 -271
  318. package/src/swaps/escrow_swaps/IEscrowSwapWrapper.ts +284 -284
  319. package/src/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.ts +172 -172
  320. package/src/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.ts +300 -300
  321. package/src/swaps/escrow_swaps/frombtc/IFromBTCWrapper.ts +107 -107
  322. package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.ts +1670 -1671
  323. package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.ts +603 -603
  324. package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.ts +1883 -1883
  325. package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.ts +752 -752
  326. package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.ts +1753 -1753
  327. package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.ts +612 -612
  328. package/src/swaps/escrow_swaps/tobtc/IToBTCSwap.ts +1327 -1327
  329. package/src/swaps/escrow_swaps/tobtc/IToBTCWrapper.ts +138 -138
  330. package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.ts +304 -304
  331. package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.ts +787 -787
  332. package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.ts +206 -206
  333. package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.ts +403 -403
  334. package/src/swaps/spv_swaps/SpvFromBTCSwap.ts +2148 -2148
  335. package/src/swaps/spv_swaps/SpvFromBTCWrapper.ts +1238 -1238
  336. package/src/swaps/trusted/ln/LnForGasSwap.ts +753 -753
  337. package/src/swaps/trusted/ln/LnForGasWrapper.ts +90 -90
  338. package/src/swaps/trusted/onchain/OnchainForGasSwap.ts +843 -843
  339. package/src/swaps/trusted/onchain/OnchainForGasWrapper.ts +133 -133
  340. package/src/types/AmountData.ts +9 -9
  341. package/src/types/CustomPriceFunction.ts +11 -11
  342. package/src/types/PriceInfoType.ts +66 -66
  343. package/src/types/SwapExecutionAction.ts +323 -323
  344. package/src/types/SwapExecutionStep.ts +224 -224
  345. package/src/types/SwapStateInfo.ts +6 -6
  346. package/src/types/SwapWithSigner.ts +61 -61
  347. package/src/types/Token.ts +163 -163
  348. package/src/types/TokenAmount.ts +167 -167
  349. package/src/types/fees/Fee.ts +56 -56
  350. package/src/types/fees/FeeBreakdown.ts +11 -11
  351. package/src/types/fees/PercentagePPM.ts +26 -26
  352. package/src/types/lnurl/LNURLPay.ts +79 -79
  353. package/src/types/lnurl/LNURLWithdraw.ts +61 -61
  354. package/src/types/wallets/LightningInvoiceCreateService.ts +30 -30
  355. package/src/types/wallets/MinimalBitcoinWalletInterface.ts +21 -21
  356. package/src/types/wallets/MinimalLightningNetworkWalletInterface.ts +9 -9
  357. package/src/utils/AutomaticClockDriftCorrection.ts +71 -71
  358. package/src/utils/BitcoinUtils.ts +164 -164
  359. package/src/utils/BitcoinWalletUtils.ts +15 -15
  360. package/src/utils/Logger.ts +14 -14
  361. package/src/utils/RetryUtils.ts +78 -78
  362. package/src/utils/SwapUtils.ts +99 -99
  363. package/src/utils/TimeoutUtils.ts +49 -49
  364. package/src/utils/TokenUtils.ts +33 -33
  365. package/src/utils/TypeUtils.ts +8 -8
  366. package/src/utils/Utils.ts +221 -221
@@ -1,404 +1,404 @@
1
- import { IntermediaryDiscovery } from "../intermediaries/IntermediaryDiscovery";
2
- import { SwapType } from "../enums/SwapType";
3
- import { LnForGasSwap } from "../swaps/trusted/ln/LnForGasSwap";
4
- import { ISwap } from "../swaps/ISwap";
5
- import { IToBTCSwap } from "../swaps/escrow_swaps/tobtc/IToBTCSwap";
6
- import { ChainIds, MultiChain, SupportsSwapType, Swapper } from "./Swapper";
7
- import { FromBTCLNSwap } from "../swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap";
8
- import { FromBTCSwap } from "../swaps/escrow_swaps/frombtc/onchain/FromBTCSwap";
9
- import { ToBTCLNSwap } from "../swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap";
10
- import { ToBTCSwap } from "../swaps/escrow_swaps/tobtc/onchain/ToBTCSwap";
11
- import { SwapPriceWithChain } from "../prices/SwapPriceWithChain";
12
- import { ToBTCOptions } from "../swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper";
13
- import { ToBTCLNOptions } from "../swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper";
14
- import { FromBTCOptions } from "../swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper";
15
- import { FromBTCLNOptions } from "../swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper";
16
- import { SwapperUtils } from "./SwapperUtils";
17
- import { SpvFromBTCOptions } from "../swaps/spv_swaps/SpvFromBTCWrapper";
18
- import { SpvFromBTCSwap } from "../swaps/spv_swaps/SpvFromBTCSwap";
19
- import { OnchainForGasSwap } from "../swaps/trusted/onchain/OnchainForGasSwap";
20
- import { SwapperWithSigner } from "./SwapperWithSigner";
21
- import { FromBTCLNAutoOptions } from "../swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper";
22
- import { FromBTCLNAutoSwap } from "../swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap";
23
- import { SwapAmountType } from "../enums/SwapAmountType";
24
- import { IClaimableSwap } from "../swaps/IClaimableSwap";
25
- import { TokenAmount } from "../types/TokenAmount";
26
- import { BtcToken, SCToken, Token } from "../types/Token";
27
- import { LNURLWithdraw } from "../types/lnurl/LNURLWithdraw";
28
- import { LNURLPay } from "../types/lnurl/LNURLPay";
29
- import { LightningInvoiceCreateService } from "../types/wallets/LightningInvoiceCreateService";
30
- import { Intermediary } from "../intermediaries/Intermediary";
31
- import { SwapTypeMapping } from "../utils/SwapUtils";
32
- import { SwapSide } from "../enums/SwapSide";
33
- /**
34
- * Chain-specific wrapper around Swapper for a particular blockchain
35
- *
36
- * @category Core
37
- */
38
- export declare class SwapperWithChain<T extends MultiChain, ChainIdentifier extends ChainIds<T>> {
39
- /**
40
- * Underlying multichain swapper instance
41
- */
42
- private readonly swapper;
43
- /**
44
- * Smart chain identifier of this swapper with chain
45
- */
46
- readonly chainIdentifier: ChainIdentifier;
47
- /**
48
- * Pricing API used by the SDK
49
- */
50
- readonly prices: SwapPriceWithChain<T, ChainIdentifier>;
51
- /**
52
- * Intermediary discovery instance
53
- */
54
- get intermediaryDiscovery(): IntermediaryDiscovery;
55
- /**
56
- * Miscellaneous utility functions
57
- */
58
- get Utils(): SwapperUtils<T>;
59
- /**
60
- * Helper information about various swap protocol and their features:
61
- * - `requiresInputWallet`: Whether a swap requires a connected wallet on the input chain able to sign
62
- * arbitrary transaction
63
- * - `requiresOutputWallet`: Whether a swap requires a connected wallet on the output chain able to sign
64
- * arbitrary transactions
65
- * - `supportsGasDrop`: Whether a swap supports the "gas drop" feature, allowing to user to receive a small
66
- * amount of native token as part of the swap when swapping to smart chains
67
- *
68
- * Uses a `Record` type here, use the {@link SwapProtocolInfo} import for a literal readonly type, with
69
- * pre-filled exact values in the type.
70
- */
71
- get SwapTypeInfo(): Record<SwapType, {
72
- requiresInputWallet: boolean;
73
- requiresOutputWallet: boolean;
74
- supportsGasDrop: boolean;
75
- }>;
76
- constructor(swapper: Swapper<T>, chainIdentifier: ChainIdentifier);
77
- /**
78
- * Creates Smart chain -> Bitcoin ({@link SwapType.TO_BTC}) swap
79
- *
80
- * @param signer Signer's address on the source chain
81
- * @param tokenAddress Token address to pay with
82
- * @param address Recipient's bitcoin address
83
- * @param amount Amount to send in token based units (if `exactIn=true`) or receive in satoshis (if `exactIn=false`)
84
- * @param exactIn Whether to use exact in instead of exact out
85
- * @param additionalParams Additional parameters sent to the LP when creating the swap
86
- * @param options Additional options for the swap
87
- */
88
- createToBTCSwap(signer: string, tokenAddress: string, address: string, amount: bigint, exactIn?: boolean, additionalParams?: Record<string, any>, options?: ToBTCOptions): Promise<ToBTCSwap<T[ChainIdentifier]>>;
89
- /**
90
- * Creates Smart chain -> Bitcoin Lightning ({@link SwapType.TO_BTCLN}) swap
91
- *
92
- * @param signer Signer's address on the source chain
93
- * @param tokenAddress Token address to pay with
94
- * @param paymentRequest BOLT11 lightning network invoice to be paid (needs to have a fixed amount), and the swap
95
- * amount is taken from this fixed amount, hence only exact output swaps are supported
96
- * @param additionalParams Additional parameters sent to the LP when creating the swap
97
- * @param options Additional options for the swap
98
- */
99
- createToBTCLNSwap(signer: string, tokenAddress: string, paymentRequest: string, additionalParams?: Record<string, any>, options?: ToBTCLNOptions & {
100
- comment?: string;
101
- }): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
102
- /**
103
- * Creates Smart chain -> Bitcoin Lightning ({@link SwapType.TO_BTCLN}) swap via LNURL-pay link
104
- *
105
- * @param signer Signer's address on the source chain
106
- * @param tokenAddress Token address to pay with
107
- * @param lnurlPay LNURL-pay link to use for the payment
108
- * @param amount Amount to send in token based units (if `exactIn=true`) or receive in satoshis (if `exactIn=false`)
109
- * @param exactIn Whether to do an exact in swap instead of exact out
110
- * @param additionalParams Additional parameters sent to the LP when creating the swap
111
- * @param options Additional options for the swap
112
- */
113
- createToBTCLNSwapViaLNURL(signer: string, tokenAddress: string, lnurlPay: string | LNURLPay, amount: bigint, exactIn?: boolean, additionalParams?: Record<string, any>, options?: ToBTCLNOptions): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
114
- /**
115
- * Creates Smart chain -> Bitcoin Lightning ({@link SwapType.TO_BTCLN}) swap via {@link LightningInvoiceCreateService}
116
- *
117
- * @param signer Signer's address on the source chain
118
- * @param tokenAddress Token address to pay with
119
- * @param service Invoice create service object which facilitates the creation of fixed amount LN invoices
120
- * @param amount Amount to send in token based units (if `exactIn=true`) or receive in satoshis (if `exactIn=false`)
121
- * @param exactIn Whether to do an exact in swap instead of exact out
122
- * @param additionalParams Additional parameters sent to the LP when creating the swap
123
- * @param options Additional options for the swap
124
- */
125
- createToBTCLNSwapViaInvoiceCreateService(signer: string, tokenAddress: string, service: LightningInvoiceCreateService, amount: bigint, exactIn?: boolean, additionalParams?: Record<string, any>, options?: ToBTCLNOptions): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
126
- /**
127
- * Creates Bitcoin -> Smart chain ({@link SwapType.SPV_VAULT_FROM_BTC}) swap
128
- *
129
- * @param recipient Recipient address on the destination chain
130
- * @param tokenAddress Token address to receive
131
- * @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
132
- * @param exactOut Whether to use a exact out instead of exact in
133
- * @param additionalParams Additional parameters sent to the LP when creating the swap
134
- * @param options Additional options for the swap
135
- */
136
- createFromBTCSwapNew(recipient: string, tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any>, options?: SpvFromBTCOptions): Promise<SpvFromBTCSwap<T[ChainIdentifier]>>;
137
- /**
138
- * Creates LEGACY Bitcoin -> Smart chain ({@link SwapType.FROM_BTC}) swap
139
- *
140
- * @param recipient Recipient address on the destination chain
141
- * @param tokenAddress Token address to receive
142
- * @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
143
- * @param exactOut Whether to use a exact out instead of exact in
144
- * @param additionalParams Additional parameters sent to the LP when creating the swap
145
- * @param options Additional options for the swap
146
- */
147
- createFromBTCSwap(recipient: string, tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any>, options?: FromBTCOptions): Promise<FromBTCSwap<T[ChainIdentifier]>>;
148
- /**
149
- * Creates LEGACY Bitcoin Lightning -> Smart chain ({@link SwapType.FROM_BTCLN}) swap
150
- *
151
- * @param recipient Recipient address on the destination chain
152
- * @param tokenAddress Token address to receive
153
- * @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
154
- * @param exactOut Whether to use a exact out instead of exact in
155
- * @param additionalParams Additional parameters sent to the LP when creating the swap
156
- * @param options Additional options for the swap
157
- */
158
- createFromBTCLNSwap(recipient: string, tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any>, options?: FromBTCLNOptions): Promise<FromBTCLNSwap<T[ChainIdentifier]>>;
159
- /**
160
- * Creates LEGACY Bitcoin Lightning -> Smart chain ({@link SwapType.FROM_BTCLN}) swap, withdrawing from
161
- * an LNURL-withdraw link
162
- *
163
- * @param recipient Recipient address on the destination chain
164
- * @param tokenAddress Token address to receive
165
- * @param lnurl LNURL-withdraw link to pull the funds from
166
- * @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
167
- * @param exactOut Whether to use a exact out instead of exact in
168
- * @param additionalParams Additional parameters sent to the LP when creating the swap
169
- */
170
- createFromBTCLNSwapViaLNURL(recipient: string, tokenAddress: string, lnurl: string | LNURLWithdraw, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any>): Promise<FromBTCLNSwap<T[ChainIdentifier]>>;
171
- /**
172
- * Creates Bitcoin Lightning -> Smart chain ({@link SwapType.FROM_BTCLN_AUTO}) swap
173
- *
174
- * @param recipient Recipient address on the destination chain
175
- * @param tokenAddress Token address to receive
176
- * @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
177
- * @param exactOut Whether to use a exact out instead of exact in
178
- * @param additionalParams Additional parameters sent to the LP when creating the swap
179
- * @param options Additional options for the swap
180
- */
181
- createFromBTCLNSwapNew(recipient: string, tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any>, options?: FromBTCLNAutoOptions): Promise<FromBTCLNAutoSwap<T[ChainIdentifier]>>;
182
- /**
183
- * Creates Bitcoin Lightning -> Smart chain ({@link SwapType.FROM_BTCLN_AUTO}) swap, withdrawing from
184
- * an LNURL-withdraw link
185
- *
186
- * @param recipient Recipient address on the destination chain
187
- * @param tokenAddress Token address to receive
188
- * @param lnurl LNURL-withdraw link to pull the funds from
189
- * @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
190
- * @param exactOut Whether to use a exact out instead of exact in
191
- * @param additionalParams Additional parameters sent to the LP when creating the swap
192
- * @param options Additional options for the swap
193
- */
194
- createFromBTCLNSwapNewViaLNURL(recipient: string, tokenAddress: string, lnurl: string | LNURLWithdraw, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any>, options?: FromBTCLNAutoOptions): Promise<FromBTCLNAutoSwap<T[ChainIdentifier]>>;
195
- /**
196
- * Creates a trusted Bitcoin Lightning -> Smart chain ({@link SwapType.TRUSTED_FROM_BTCLN}) gas swap
197
- *
198
- * @param recipient Recipient address on the destination chain
199
- * @param amount Amount of native token to receive, in base units
200
- * @param trustedIntermediaryOrUrl URL or Intermediary object of the trusted intermediary to use, otherwise uses default
201
- * @throws {Error} If no trusted intermediary specified
202
- */
203
- createTrustedLNForGasSwap(recipient: string, amount: bigint, trustedIntermediaryOrUrl?: Intermediary | string): Promise<LnForGasSwap<T[ChainIdentifier]>>;
204
- /**
205
- * Creates a trusted Bitcoin -> Smart chain ({@link SwapType.TRUSTED_FROM_BTC}) gas swap
206
- *
207
- * @param recipient Recipient address on the destination chain
208
- * @param amount Amount of native token to receive, in base units
209
- * @param refundAddress Bitcoin refund address, in case the swap fails the funds are refunded here
210
- * @param trustedIntermediaryOrUrl URL or Intermediary object of the trusted intermediary to use, otherwise uses default
211
- * @throws {Error} If no trusted intermediary specified
212
- */
213
- createTrustedOnchainForGasSwap(recipient: string, amount: bigint, refundAddress?: string, trustedIntermediaryOrUrl?: Intermediary | string): Promise<OnchainForGasSwap<T[ChainIdentifier]>>;
214
- /**
215
- * @internal
216
- */
217
- create(signer: string, srcToken: BtcToken<true>, dstToken: SCToken<ChainIdentifier>, amount: bigint, exactIn: boolean, lnurlWithdraw?: string | LNURLWithdraw): Promise<SupportsSwapType<T[ChainIdentifier], SwapType.FROM_BTCLN_AUTO> extends true ? FromBTCLNAutoSwap<T[ChainIdentifier]> : FromBTCLNSwap<T[ChainIdentifier]>>;
218
- /**
219
- * @internal
220
- */
221
- create(signer: string, srcToken: BtcToken<false>, dstToken: SCToken<ChainIdentifier>, amount: bigint, exactIn: boolean): Promise<(SupportsSwapType<T[ChainIdentifier], SwapType.SPV_VAULT_FROM_BTC> extends true ? SpvFromBTCSwap<T[ChainIdentifier]> : FromBTCSwap<T[ChainIdentifier]>)>;
222
- /**
223
- * @internal
224
- */
225
- create(signer: string, srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<false>, amount: bigint, exactIn: boolean, address: string): Promise<ToBTCSwap<T[ChainIdentifier]>>;
226
- /**
227
- * @internal
228
- */
229
- create(signer: string, srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<true>, amount: bigint, exactIn: boolean, lnurlPay: string | LNURLPay): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
230
- /**
231
- * Creates a swap from srcToken to dstToken, of a specific token amount, either specifying input amount (exactIn=true)
232
- * or output amount (exactIn=false), NOTE: For regular -> BTC-LN (lightning) swaps the passed amount is ignored and
233
- * invoice's pre-set amount is used instead.
234
- * @deprecated Use swap() instead
235
- *
236
- * @param signer Smartchain (Solana, Starknet, etc.) address of the user
237
- * @param srcToken Source token of the swap, user pays this token
238
- * @param dstToken Destination token of the swap, user receives this token
239
- * @param amount Amount of the swap
240
- * @param exactIn Whether the amount specified is an input amount (exactIn=true) or an output amount (exactIn=false)
241
- * @param addressLnurlLightningInvoice Bitcoin on-chain address, lightning invoice, LNURL-pay to pay or
242
- * LNURL-withdrawal to withdraw money from
243
- */
244
- create(signer: string, srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<true>, amount: undefined, exactIn: false, addressLnurlLightningInvoice: string): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
245
- /**
246
- * @internal
247
- */
248
- swap(srcToken: BtcToken<true> | "BTCLN" | "BTC-LN" | "LIGHTNING-BTC", dstToken: SCToken<ChainIdentifier>, amount: bigint | string, exactIn: boolean | SwapAmountType, src: undefined | string | LNURLWithdraw, dstSmartchainWallet: string, options?: (SupportsSwapType<T[ChainIdentifier], SwapType.FROM_BTCLN_AUTO> extends true ? FromBTCLNAutoOptions : FromBTCLNOptions)): Promise<SupportsSwapType<T[ChainIdentifier], SwapType.FROM_BTCLN_AUTO> extends true ? FromBTCLNAutoSwap<T[ChainIdentifier]> : FromBTCLNSwap<T[ChainIdentifier]>>;
249
- /**
250
- * @internal
251
- */
252
- swap(srcToken: BtcToken<false> | "BTC" | "BITCOIN-BTC", dstToken: SCToken<ChainIdentifier>, amount: bigint | string, exactIn: boolean | SwapAmountType, src: undefined | string, dstSmartchainWallet: string, options?: (SupportsSwapType<T[ChainIdentifier], SwapType.SPV_VAULT_FROM_BTC> extends true ? SpvFromBTCOptions : FromBTCOptions)): Promise<(SupportsSwapType<T[ChainIdentifier], SwapType.SPV_VAULT_FROM_BTC> extends true ? SpvFromBTCSwap<T[ChainIdentifier]> : FromBTCSwap<T[ChainIdentifier]>)>;
253
- /**
254
- * @internal
255
- */
256
- swap(srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<false> | "BTC" | "BITCOIN-BTC", amount: bigint | string, exactIn: boolean | SwapAmountType, src: string, dstAddress: string, options?: ToBTCOptions): Promise<ToBTCSwap<T[ChainIdentifier]>>;
257
- /**
258
- * @internal
259
- */
260
- swap(srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<true> | "BTCLN" | "BTC-LN" | "LIGHTNING-BTC", amount: bigint | string, exactIn: boolean | SwapAmountType, src: string, dstLnurlPayOrInvoiceCreateService: string | LNURLPay | LightningInvoiceCreateService, options?: ToBTCLNOptions & {
261
- comment?: string;
262
- }): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
263
- /**
264
- * @internal
265
- */
266
- swap(srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<true> | "BTCLN" | "BTC-LN" | "LIGHTNING-BTC", amount: undefined, exactIn: false | SwapAmountType.EXACT_OUT, src: string, dstLightningInvoice: string, options?: ToBTCLNOptions): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
267
- /**
268
- * Creates a swap from srcToken to dstToken, of a specific token amount, either specifying input amount (exactIn=true)
269
- * or output amount (exactIn=false), NOTE: For regular SmartChain -> BTC-LN (lightning) swaps the passed amount is ignored and
270
- * invoice's pre-set amount is used instead, use LNURL-pay for dynamic amounts
271
- *
272
- * @param srcToken Source token of the swap, user pays this token
273
- * @param dstToken Destination token of the swap, user receives this token
274
- * @param amount Amount of the swap
275
- * @param exactIn Whether the amount specified is an input amount (exactIn=true) or an output amount (exactIn=false)
276
- * @param src Source wallet/lnurl-withdraw of the swap
277
- * @param dst Destination smart chain address, bitcoin on-chain address, lightning invoice, LNURL-pay
278
- * @param options Options for the swap
279
- */
280
- swap(srcToken: Token<ChainIdentifier> | string, dstToken: Token<ChainIdentifier> | string, amount: bigint | string | undefined, exactIn: boolean | SwapAmountType, src: undefined | string | LNURLWithdraw, dst: string | LNURLPay | LightningInvoiceCreateService, options?: FromBTCLNOptions | SpvFromBTCOptions | FromBTCOptions | ToBTCOptions | (ToBTCLNOptions & {
281
- comment?: string;
282
- }) | FromBTCLNAutoOptions): Promise<ISwap<T[ChainIdentifier]>>;
283
- /**
284
- * Returns swaps that are in-progress and are claimable for the specific chain, optionally also for a specific signer's address
285
- */
286
- getAllSwaps(signer?: string): Promise<ISwap<T[ChainIdentifier]>[]>;
287
- /**
288
- * Returns swaps that are in-progress and are claimable for the specific chain, optionally also for a specific signer's address
289
- */
290
- getActionableSwaps(signer?: string): Promise<ISwap<T[ChainIdentifier]>[]>;
291
- /**
292
- * Returns swaps that are refundable for the specific chain, optionally also for a specific signer's address
293
- */
294
- getRefundableSwaps(signer?: string): Promise<IToBTCSwap<T[ChainIdentifier]>[]>;
295
- /**
296
- * Returns swaps that are due to be claimed/settled manually for the specific chain,
297
- * optionally also for a specific signer's address
298
- */
299
- getClaimableSwaps(signer?: string): Promise<IClaimableSwap<T[ChainIdentifier]>[]>;
300
- /**
301
- * Returns swap with a specific id (identifier) on a specific chain and optionally with a signer
302
- */
303
- getSwapById(id: string, signer?: string): Promise<ISwap<T[ChainIdentifier]>>;
304
- /**
305
- * Returns the swap with a proper return type, or `undefined` if not found or has wrong type
306
- *
307
- * @param id An ID of the swap ({@link ISwap.getId})
308
- * @param swapType Type of the swap
309
- * @param signer An optional required smart chain signer address to fetch the swap for
310
- */
311
- getTypedSwapById<S extends SwapType>(id: string, swapType: S, signer?: string): Promise<SwapTypeMapping<T[ChainIdentifier]>[S] | undefined>;
312
- /**
313
- * Synchronizes swaps from on-chain, this is ran automatically when SDK is initialized, hence
314
- * should only be ran manually when `dontCheckPastSwaps=true` is passed in the swapper options,
315
- * also deletes expired quotes
316
- *
317
- * @param signer Optional signer to only run swap sync for swaps initiated by this signer
318
- */
319
- _syncSwaps(signer?: string): Promise<void>;
320
- /**
321
- * Recovers swaps from on-chain historical data.
322
- *
323
- * Please note that the recovered swaps might not be complete (i.e. missing amounts or addresses), as some
324
- * of the swap data is purely off-chain and can never be recovered purely from on-chain data. This
325
- * functions tries to recover as much swap data as possible.
326
- *
327
- * @param signer Signer address to recover the swaps for
328
- * @param startBlockheight Optional starting blockheight for swap data recovery, will only check swaps
329
- * initiated after this blockheight
330
- */
331
- recoverSwaps(signer: string, startBlockheight?: number): Promise<ISwap<T[ChainIdentifier]>[]>;
332
- getToken(ticker: "BTC" | "BITCOIN-BTC"): BtcToken<false>;
333
- getToken(ticker: "BTCLN" | "BTC-LN" | "LIGHTNING-BTC"): BtcToken<true>;
334
- getToken(ticker: `${ChainIdentifier}-${string}`): SCToken<ChainIdentifier>;
335
- getToken(tickerOrAddress: string): Token<ChainIdentifier>;
336
- /**
337
- * Returns whether the SDK supports a given swap type on this chain based on currently known LPs
338
- *
339
- * @param swapType Swap protocol type
340
- */
341
- supportsSwapType<Type extends SwapType>(swapType: Type): SupportsSwapType<T[ChainIdentifier], Type>;
342
- /**
343
- * @internal
344
- */
345
- getSwapType(srcToken: BtcToken<true>, dstToken: SCToken<ChainIdentifier>): (SupportsSwapType<T[ChainIdentifier], SwapType.FROM_BTCLN_AUTO> extends true ? SwapType.FROM_BTCLN_AUTO : SwapType.FROM_BTCLN);
346
- /**
347
- * @internal
348
- */
349
- getSwapType(srcToken: BtcToken<false>, dstToken: SCToken<ChainIdentifier>): (SupportsSwapType<T[ChainIdentifier], SwapType.SPV_VAULT_FROM_BTC> extends true ? SwapType.SPV_VAULT_FROM_BTC : SwapType.FROM_BTC);
350
- /**
351
- * @internal
352
- */
353
- getSwapType(srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<false>): SwapType.TO_BTC;
354
- /**
355
- * @internal
356
- */
357
- getSwapType(srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<true>): SwapType.TO_BTCLN;
358
- /**
359
- * Returns type of the swap based on input and output tokens specified
360
- *
361
- * @param srcToken Source token
362
- * @param dstToken Destination token
363
- */
364
- getSwapType(srcToken: Token<ChainIdentifier>, dstToken: Token<ChainIdentifier>): SwapType.FROM_BTCLN_AUTO | SwapType.FROM_BTCLN | SwapType.SPV_VAULT_FROM_BTC | SwapType.FROM_BTC | SwapType.TO_BTC | SwapType.TO_BTCLN;
365
- /**
366
- * Returns minimum/maximum limits for inputs and outputs for a swap between given tokens
367
- *
368
- * @param srcToken Source token
369
- * @param dstToken Destination token
370
- */
371
- getSwapLimits<A extends Token<ChainIdentifier>, B extends Token<ChainIdentifier>>(srcToken: A, dstToken: B): {
372
- input: {
373
- min: TokenAmount<A>;
374
- max?: TokenAmount<A>;
375
- };
376
- output: {
377
- min: TokenAmount<B>;
378
- max?: TokenAmount<B>;
379
- };
380
- };
381
- /**
382
- * Returns a set of supported tokens by all the intermediaries offering a specific swap service
383
- *
384
- * @param _swapType Swap service type to check supported tokens for
385
- */
386
- private getSupportedTokens;
387
- /**
388
- * Returns the set of supported tokens by all the intermediaries we know of offering a specific swapType service
389
- *
390
- * @param swapType Specific swap type for which to obtain supported tokens
391
- */
392
- private getSupportedTokenAddresses;
393
- /**
394
- * Returns tokens that you can swap to (if input=true) from a given token,
395
- * or tokens that you can swap from (if input=false) to a given token
396
- */
397
- getSwapCounterTokens(token: Token, input: SwapSide | boolean): Token<ChainIdentifier>[];
398
- /**
399
- * Creates a child swapper instance with a signer
400
- *
401
- * @param signer Signer to use for the new swapper instance
402
- */
403
- withSigner(signer: T[ChainIdentifier]["Signer"]): SwapperWithSigner<T, ChainIdentifier>;
404
- }
1
+ import { IntermediaryDiscovery } from "../intermediaries/IntermediaryDiscovery";
2
+ import { SwapType } from "../enums/SwapType";
3
+ import { LnForGasSwap } from "../swaps/trusted/ln/LnForGasSwap";
4
+ import { ISwap } from "../swaps/ISwap";
5
+ import { IToBTCSwap } from "../swaps/escrow_swaps/tobtc/IToBTCSwap";
6
+ import { ChainIds, MultiChain, SupportsSwapType, Swapper } from "./Swapper";
7
+ import { FromBTCLNSwap } from "../swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap";
8
+ import { FromBTCSwap } from "../swaps/escrow_swaps/frombtc/onchain/FromBTCSwap";
9
+ import { ToBTCLNSwap } from "../swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap";
10
+ import { ToBTCSwap } from "../swaps/escrow_swaps/tobtc/onchain/ToBTCSwap";
11
+ import { SwapPriceWithChain } from "../prices/SwapPriceWithChain";
12
+ import { ToBTCOptions } from "../swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper";
13
+ import { ToBTCLNOptions } from "../swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper";
14
+ import { FromBTCOptions } from "../swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper";
15
+ import { FromBTCLNOptions } from "../swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper";
16
+ import { SwapperUtils } from "./SwapperUtils";
17
+ import { SpvFromBTCOptions } from "../swaps/spv_swaps/SpvFromBTCWrapper";
18
+ import { SpvFromBTCSwap } from "../swaps/spv_swaps/SpvFromBTCSwap";
19
+ import { OnchainForGasSwap } from "../swaps/trusted/onchain/OnchainForGasSwap";
20
+ import { SwapperWithSigner } from "./SwapperWithSigner";
21
+ import { FromBTCLNAutoOptions } from "../swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper";
22
+ import { FromBTCLNAutoSwap } from "../swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap";
23
+ import { SwapAmountType } from "../enums/SwapAmountType";
24
+ import { IClaimableSwap } from "../swaps/IClaimableSwap";
25
+ import { TokenAmount } from "../types/TokenAmount";
26
+ import { BtcToken, SCToken, Token } from "../types/Token";
27
+ import { LNURLWithdraw } from "../types/lnurl/LNURLWithdraw";
28
+ import { LNURLPay } from "../types/lnurl/LNURLPay";
29
+ import { LightningInvoiceCreateService } from "../types/wallets/LightningInvoiceCreateService";
30
+ import { Intermediary } from "../intermediaries/Intermediary";
31
+ import { SwapTypeMapping } from "../utils/SwapUtils";
32
+ import { SwapSide } from "../enums/SwapSide";
33
+ /**
34
+ * Chain-specific wrapper around Swapper for a particular blockchain
35
+ *
36
+ * @category Core
37
+ */
38
+ export declare class SwapperWithChain<T extends MultiChain, ChainIdentifier extends ChainIds<T>> {
39
+ /**
40
+ * Underlying multichain swapper instance
41
+ */
42
+ private readonly swapper;
43
+ /**
44
+ * Smart chain identifier of this swapper with chain
45
+ */
46
+ readonly chainIdentifier: ChainIdentifier;
47
+ /**
48
+ * Pricing API used by the SDK
49
+ */
50
+ readonly prices: SwapPriceWithChain<T, ChainIdentifier>;
51
+ /**
52
+ * Intermediary discovery instance
53
+ */
54
+ get intermediaryDiscovery(): IntermediaryDiscovery;
55
+ /**
56
+ * Miscellaneous utility functions
57
+ */
58
+ get Utils(): SwapperUtils<T>;
59
+ /**
60
+ * Helper information about various swap protocol and their features:
61
+ * - `requiresInputWallet`: Whether a swap requires a connected wallet on the input chain able to sign
62
+ * arbitrary transaction
63
+ * - `requiresOutputWallet`: Whether a swap requires a connected wallet on the output chain able to sign
64
+ * arbitrary transactions
65
+ * - `supportsGasDrop`: Whether a swap supports the "gas drop" feature, allowing to user to receive a small
66
+ * amount of native token as part of the swap when swapping to smart chains
67
+ *
68
+ * Uses a `Record` type here, use the {@link SwapProtocolInfo} import for a literal readonly type, with
69
+ * pre-filled exact values in the type.
70
+ */
71
+ get SwapTypeInfo(): Record<SwapType, {
72
+ requiresInputWallet: boolean;
73
+ requiresOutputWallet: boolean;
74
+ supportsGasDrop: boolean;
75
+ }>;
76
+ constructor(swapper: Swapper<T>, chainIdentifier: ChainIdentifier);
77
+ /**
78
+ * Creates Smart chain -> Bitcoin ({@link SwapType.TO_BTC}) swap
79
+ *
80
+ * @param signer Signer's address on the source chain
81
+ * @param tokenAddress Token address to pay with
82
+ * @param address Recipient's bitcoin address
83
+ * @param amount Amount to send in token based units (if `exactIn=true`) or receive in satoshis (if `exactIn=false`)
84
+ * @param exactIn Whether to use exact in instead of exact out
85
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
86
+ * @param options Additional options for the swap
87
+ */
88
+ createToBTCSwap(signer: string, tokenAddress: string, address: string, amount: bigint, exactIn?: boolean, additionalParams?: Record<string, any>, options?: ToBTCOptions): Promise<ToBTCSwap<T[ChainIdentifier]>>;
89
+ /**
90
+ * Creates Smart chain -> Bitcoin Lightning ({@link SwapType.TO_BTCLN}) swap
91
+ *
92
+ * @param signer Signer's address on the source chain
93
+ * @param tokenAddress Token address to pay with
94
+ * @param paymentRequest BOLT11 lightning network invoice to be paid (needs to have a fixed amount), and the swap
95
+ * amount is taken from this fixed amount, hence only exact output swaps are supported
96
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
97
+ * @param options Additional options for the swap
98
+ */
99
+ createToBTCLNSwap(signer: string, tokenAddress: string, paymentRequest: string, additionalParams?: Record<string, any>, options?: ToBTCLNOptions & {
100
+ comment?: string;
101
+ }): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
102
+ /**
103
+ * Creates Smart chain -> Bitcoin Lightning ({@link SwapType.TO_BTCLN}) swap via LNURL-pay link
104
+ *
105
+ * @param signer Signer's address on the source chain
106
+ * @param tokenAddress Token address to pay with
107
+ * @param lnurlPay LNURL-pay link to use for the payment
108
+ * @param amount Amount to send in token based units (if `exactIn=true`) or receive in satoshis (if `exactIn=false`)
109
+ * @param exactIn Whether to do an exact in swap instead of exact out
110
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
111
+ * @param options Additional options for the swap
112
+ */
113
+ createToBTCLNSwapViaLNURL(signer: string, tokenAddress: string, lnurlPay: string | LNURLPay, amount: bigint, exactIn?: boolean, additionalParams?: Record<string, any>, options?: ToBTCLNOptions): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
114
+ /**
115
+ * Creates Smart chain -> Bitcoin Lightning ({@link SwapType.TO_BTCLN}) swap via {@link LightningInvoiceCreateService}
116
+ *
117
+ * @param signer Signer's address on the source chain
118
+ * @param tokenAddress Token address to pay with
119
+ * @param service Invoice create service object which facilitates the creation of fixed amount LN invoices
120
+ * @param amount Amount to send in token based units (if `exactIn=true`) or receive in satoshis (if `exactIn=false`)
121
+ * @param exactIn Whether to do an exact in swap instead of exact out
122
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
123
+ * @param options Additional options for the swap
124
+ */
125
+ createToBTCLNSwapViaInvoiceCreateService(signer: string, tokenAddress: string, service: LightningInvoiceCreateService, amount: bigint, exactIn?: boolean, additionalParams?: Record<string, any>, options?: ToBTCLNOptions): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
126
+ /**
127
+ * Creates Bitcoin -> Smart chain ({@link SwapType.SPV_VAULT_FROM_BTC}) swap
128
+ *
129
+ * @param recipient Recipient address on the destination chain
130
+ * @param tokenAddress Token address to receive
131
+ * @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
132
+ * @param exactOut Whether to use a exact out instead of exact in
133
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
134
+ * @param options Additional options for the swap
135
+ */
136
+ createFromBTCSwapNew(recipient: string, tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any>, options?: SpvFromBTCOptions): Promise<SpvFromBTCSwap<T[ChainIdentifier]>>;
137
+ /**
138
+ * Creates LEGACY Bitcoin -> Smart chain ({@link SwapType.FROM_BTC}) swap
139
+ *
140
+ * @param recipient Recipient address on the destination chain
141
+ * @param tokenAddress Token address to receive
142
+ * @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
143
+ * @param exactOut Whether to use a exact out instead of exact in
144
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
145
+ * @param options Additional options for the swap
146
+ */
147
+ createFromBTCSwap(recipient: string, tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any>, options?: FromBTCOptions): Promise<FromBTCSwap<T[ChainIdentifier]>>;
148
+ /**
149
+ * Creates LEGACY Bitcoin Lightning -> Smart chain ({@link SwapType.FROM_BTCLN}) swap
150
+ *
151
+ * @param recipient Recipient address on the destination chain
152
+ * @param tokenAddress Token address to receive
153
+ * @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
154
+ * @param exactOut Whether to use a exact out instead of exact in
155
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
156
+ * @param options Additional options for the swap
157
+ */
158
+ createFromBTCLNSwap(recipient: string, tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any>, options?: FromBTCLNOptions): Promise<FromBTCLNSwap<T[ChainIdentifier]>>;
159
+ /**
160
+ * Creates LEGACY Bitcoin Lightning -> Smart chain ({@link SwapType.FROM_BTCLN}) swap, withdrawing from
161
+ * an LNURL-withdraw link
162
+ *
163
+ * @param recipient Recipient address on the destination chain
164
+ * @param tokenAddress Token address to receive
165
+ * @param lnurl LNURL-withdraw link to pull the funds from
166
+ * @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
167
+ * @param exactOut Whether to use a exact out instead of exact in
168
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
169
+ */
170
+ createFromBTCLNSwapViaLNURL(recipient: string, tokenAddress: string, lnurl: string | LNURLWithdraw, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any>): Promise<FromBTCLNSwap<T[ChainIdentifier]>>;
171
+ /**
172
+ * Creates Bitcoin Lightning -> Smart chain ({@link SwapType.FROM_BTCLN_AUTO}) swap
173
+ *
174
+ * @param recipient Recipient address on the destination chain
175
+ * @param tokenAddress Token address to receive
176
+ * @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
177
+ * @param exactOut Whether to use a exact out instead of exact in
178
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
179
+ * @param options Additional options for the swap
180
+ */
181
+ createFromBTCLNSwapNew(recipient: string, tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any>, options?: FromBTCLNAutoOptions): Promise<FromBTCLNAutoSwap<T[ChainIdentifier]>>;
182
+ /**
183
+ * Creates Bitcoin Lightning -> Smart chain ({@link SwapType.FROM_BTCLN_AUTO}) swap, withdrawing from
184
+ * an LNURL-withdraw link
185
+ *
186
+ * @param recipient Recipient address on the destination chain
187
+ * @param tokenAddress Token address to receive
188
+ * @param lnurl LNURL-withdraw link to pull the funds from
189
+ * @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
190
+ * @param exactOut Whether to use a exact out instead of exact in
191
+ * @param additionalParams Additional parameters sent to the LP when creating the swap
192
+ * @param options Additional options for the swap
193
+ */
194
+ createFromBTCLNSwapNewViaLNURL(recipient: string, tokenAddress: string, lnurl: string | LNURLWithdraw, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any>, options?: FromBTCLNAutoOptions): Promise<FromBTCLNAutoSwap<T[ChainIdentifier]>>;
195
+ /**
196
+ * Creates a trusted Bitcoin Lightning -> Smart chain ({@link SwapType.TRUSTED_FROM_BTCLN}) gas swap
197
+ *
198
+ * @param recipient Recipient address on the destination chain
199
+ * @param amount Amount of native token to receive, in base units
200
+ * @param trustedIntermediaryOrUrl URL or Intermediary object of the trusted intermediary to use, otherwise uses default
201
+ * @throws {Error} If no trusted intermediary specified
202
+ */
203
+ createTrustedLNForGasSwap(recipient: string, amount: bigint, trustedIntermediaryOrUrl?: Intermediary | string): Promise<LnForGasSwap<T[ChainIdentifier]>>;
204
+ /**
205
+ * Creates a trusted Bitcoin -> Smart chain ({@link SwapType.TRUSTED_FROM_BTC}) gas swap
206
+ *
207
+ * @param recipient Recipient address on the destination chain
208
+ * @param amount Amount of native token to receive, in base units
209
+ * @param refundAddress Bitcoin refund address, in case the swap fails the funds are refunded here
210
+ * @param trustedIntermediaryOrUrl URL or Intermediary object of the trusted intermediary to use, otherwise uses default
211
+ * @throws {Error} If no trusted intermediary specified
212
+ */
213
+ createTrustedOnchainForGasSwap(recipient: string, amount: bigint, refundAddress?: string, trustedIntermediaryOrUrl?: Intermediary | string): Promise<OnchainForGasSwap<T[ChainIdentifier]>>;
214
+ /**
215
+ * @internal
216
+ */
217
+ create(signer: string, srcToken: BtcToken<true>, dstToken: SCToken<ChainIdentifier>, amount: bigint, exactIn: boolean, lnurlWithdraw?: string | LNURLWithdraw): Promise<SupportsSwapType<T[ChainIdentifier], SwapType.FROM_BTCLN_AUTO> extends true ? FromBTCLNAutoSwap<T[ChainIdentifier]> : FromBTCLNSwap<T[ChainIdentifier]>>;
218
+ /**
219
+ * @internal
220
+ */
221
+ create(signer: string, srcToken: BtcToken<false>, dstToken: SCToken<ChainIdentifier>, amount: bigint, exactIn: boolean): Promise<(SupportsSwapType<T[ChainIdentifier], SwapType.SPV_VAULT_FROM_BTC> extends true ? SpvFromBTCSwap<T[ChainIdentifier]> : FromBTCSwap<T[ChainIdentifier]>)>;
222
+ /**
223
+ * @internal
224
+ */
225
+ create(signer: string, srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<false>, amount: bigint, exactIn: boolean, address: string): Promise<ToBTCSwap<T[ChainIdentifier]>>;
226
+ /**
227
+ * @internal
228
+ */
229
+ create(signer: string, srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<true>, amount: bigint, exactIn: boolean, lnurlPay: string | LNURLPay): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
230
+ /**
231
+ * Creates a swap from srcToken to dstToken, of a specific token amount, either specifying input amount (exactIn=true)
232
+ * or output amount (exactIn=false), NOTE: For regular -> BTC-LN (lightning) swaps the passed amount is ignored and
233
+ * invoice's pre-set amount is used instead.
234
+ * @deprecated Use swap() instead
235
+ *
236
+ * @param signer Smartchain (Solana, Starknet, etc.) address of the user
237
+ * @param srcToken Source token of the swap, user pays this token
238
+ * @param dstToken Destination token of the swap, user receives this token
239
+ * @param amount Amount of the swap
240
+ * @param exactIn Whether the amount specified is an input amount (exactIn=true) or an output amount (exactIn=false)
241
+ * @param addressLnurlLightningInvoice Bitcoin on-chain address, lightning invoice, LNURL-pay to pay or
242
+ * LNURL-withdrawal to withdraw money from
243
+ */
244
+ create(signer: string, srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<true>, amount: undefined, exactIn: false, addressLnurlLightningInvoice: string): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
245
+ /**
246
+ * @internal
247
+ */
248
+ swap(srcToken: BtcToken<true> | "BTCLN" | "BTC-LN" | "LIGHTNING-BTC", dstToken: SCToken<ChainIdentifier>, amount: bigint | string, exactIn: boolean | SwapAmountType, src: undefined | string | LNURLWithdraw, dstSmartchainWallet: string, options?: (SupportsSwapType<T[ChainIdentifier], SwapType.FROM_BTCLN_AUTO> extends true ? FromBTCLNAutoOptions : FromBTCLNOptions)): Promise<SupportsSwapType<T[ChainIdentifier], SwapType.FROM_BTCLN_AUTO> extends true ? FromBTCLNAutoSwap<T[ChainIdentifier]> : FromBTCLNSwap<T[ChainIdentifier]>>;
249
+ /**
250
+ * @internal
251
+ */
252
+ swap(srcToken: BtcToken<false> | "BTC" | "BITCOIN-BTC", dstToken: SCToken<ChainIdentifier>, amount: bigint | string, exactIn: boolean | SwapAmountType, src: undefined | string, dstSmartchainWallet: string, options?: (SupportsSwapType<T[ChainIdentifier], SwapType.SPV_VAULT_FROM_BTC> extends true ? SpvFromBTCOptions : FromBTCOptions)): Promise<(SupportsSwapType<T[ChainIdentifier], SwapType.SPV_VAULT_FROM_BTC> extends true ? SpvFromBTCSwap<T[ChainIdentifier]> : FromBTCSwap<T[ChainIdentifier]>)>;
253
+ /**
254
+ * @internal
255
+ */
256
+ swap(srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<false> | "BTC" | "BITCOIN-BTC", amount: bigint | string, exactIn: boolean | SwapAmountType, src: string, dstAddress: string, options?: ToBTCOptions): Promise<ToBTCSwap<T[ChainIdentifier]>>;
257
+ /**
258
+ * @internal
259
+ */
260
+ swap(srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<true> | "BTCLN" | "BTC-LN" | "LIGHTNING-BTC", amount: bigint | string, exactIn: boolean | SwapAmountType, src: string, dstLnurlPayOrInvoiceCreateService: string | LNURLPay | LightningInvoiceCreateService, options?: ToBTCLNOptions & {
261
+ comment?: string;
262
+ }): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
263
+ /**
264
+ * @internal
265
+ */
266
+ swap(srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<true> | "BTCLN" | "BTC-LN" | "LIGHTNING-BTC", amount: undefined, exactIn: false | SwapAmountType.EXACT_OUT, src: string, dstLightningInvoice: string, options?: ToBTCLNOptions): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
267
+ /**
268
+ * Creates a swap from srcToken to dstToken, of a specific token amount, either specifying input amount (exactIn=true)
269
+ * or output amount (exactIn=false), NOTE: For regular SmartChain -> BTC-LN (lightning) swaps the passed amount is ignored and
270
+ * invoice's pre-set amount is used instead, use LNURL-pay for dynamic amounts
271
+ *
272
+ * @param srcToken Source token of the swap, user pays this token
273
+ * @param dstToken Destination token of the swap, user receives this token
274
+ * @param amount Amount of the swap
275
+ * @param exactIn Whether the amount specified is an input amount (exactIn=true) or an output amount (exactIn=false)
276
+ * @param src Source wallet/lnurl-withdraw of the swap
277
+ * @param dst Destination smart chain address, bitcoin on-chain address, lightning invoice, LNURL-pay
278
+ * @param options Options for the swap
279
+ */
280
+ swap(srcToken: Token<ChainIdentifier> | string, dstToken: Token<ChainIdentifier> | string, amount: bigint | string | undefined, exactIn: boolean | SwapAmountType, src: undefined | string | LNURLWithdraw, dst: string | LNURLPay | LightningInvoiceCreateService, options?: FromBTCLNOptions | SpvFromBTCOptions | FromBTCOptions | ToBTCOptions | (ToBTCLNOptions & {
281
+ comment?: string;
282
+ }) | FromBTCLNAutoOptions): Promise<ISwap<T[ChainIdentifier]>>;
283
+ /**
284
+ * Returns swaps that are in-progress and are claimable for the specific chain, optionally also for a specific signer's address
285
+ */
286
+ getAllSwaps(signer?: string): Promise<ISwap<T[ChainIdentifier]>[]>;
287
+ /**
288
+ * Returns swaps that are in-progress and are claimable for the specific chain, optionally also for a specific signer's address
289
+ */
290
+ getActionableSwaps(signer?: string): Promise<ISwap<T[ChainIdentifier]>[]>;
291
+ /**
292
+ * Returns swaps that are refundable for the specific chain, optionally also for a specific signer's address
293
+ */
294
+ getRefundableSwaps(signer?: string): Promise<IToBTCSwap<T[ChainIdentifier]>[]>;
295
+ /**
296
+ * Returns swaps that are due to be claimed/settled manually for the specific chain,
297
+ * optionally also for a specific signer's address
298
+ */
299
+ getClaimableSwaps(signer?: string): Promise<IClaimableSwap<T[ChainIdentifier]>[]>;
300
+ /**
301
+ * Returns swap with a specific id (identifier) on a specific chain and optionally with a signer
302
+ */
303
+ getSwapById(id: string, signer?: string): Promise<ISwap<T[ChainIdentifier]>>;
304
+ /**
305
+ * Returns the swap with a proper return type, or `undefined` if not found or has wrong type
306
+ *
307
+ * @param id An ID of the swap ({@link ISwap.getId})
308
+ * @param swapType Type of the swap
309
+ * @param signer An optional required smart chain signer address to fetch the swap for
310
+ */
311
+ getTypedSwapById<S extends SwapType>(id: string, swapType: S, signer?: string): Promise<SwapTypeMapping<T[ChainIdentifier]>[S] | undefined>;
312
+ /**
313
+ * Synchronizes swaps from on-chain, this is ran automatically when SDK is initialized, hence
314
+ * should only be ran manually when `dontCheckPastSwaps=true` is passed in the swapper options,
315
+ * also deletes expired quotes
316
+ *
317
+ * @param signer Optional signer to only run swap sync for swaps initiated by this signer
318
+ */
319
+ _syncSwaps(signer?: string): Promise<void>;
320
+ /**
321
+ * Recovers swaps from on-chain historical data.
322
+ *
323
+ * Please note that the recovered swaps might not be complete (i.e. missing amounts or addresses), as some
324
+ * of the swap data is purely off-chain and can never be recovered purely from on-chain data. This
325
+ * functions tries to recover as much swap data as possible.
326
+ *
327
+ * @param signer Signer address to recover the swaps for
328
+ * @param startBlockheight Optional starting blockheight for swap data recovery, will only check swaps
329
+ * initiated after this blockheight
330
+ */
331
+ recoverSwaps(signer: string, startBlockheight?: number): Promise<ISwap<T[ChainIdentifier]>[]>;
332
+ getToken(ticker: "BTC" | "BITCOIN-BTC"): BtcToken<false>;
333
+ getToken(ticker: "BTCLN" | "BTC-LN" | "LIGHTNING-BTC"): BtcToken<true>;
334
+ getToken(ticker: `${ChainIdentifier}-${string}`): SCToken<ChainIdentifier>;
335
+ getToken(tickerOrAddress: string): Token<ChainIdentifier>;
336
+ /**
337
+ * Returns whether the SDK supports a given swap type on this chain based on currently known LPs
338
+ *
339
+ * @param swapType Swap protocol type
340
+ */
341
+ supportsSwapType<Type extends SwapType>(swapType: Type): SupportsSwapType<T[ChainIdentifier], Type>;
342
+ /**
343
+ * @internal
344
+ */
345
+ getSwapType(srcToken: BtcToken<true>, dstToken: SCToken<ChainIdentifier>): (SupportsSwapType<T[ChainIdentifier], SwapType.FROM_BTCLN_AUTO> extends true ? SwapType.FROM_BTCLN_AUTO : SwapType.FROM_BTCLN);
346
+ /**
347
+ * @internal
348
+ */
349
+ getSwapType(srcToken: BtcToken<false>, dstToken: SCToken<ChainIdentifier>): (SupportsSwapType<T[ChainIdentifier], SwapType.SPV_VAULT_FROM_BTC> extends true ? SwapType.SPV_VAULT_FROM_BTC : SwapType.FROM_BTC);
350
+ /**
351
+ * @internal
352
+ */
353
+ getSwapType(srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<false>): SwapType.TO_BTC;
354
+ /**
355
+ * @internal
356
+ */
357
+ getSwapType(srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<true>): SwapType.TO_BTCLN;
358
+ /**
359
+ * Returns type of the swap based on input and output tokens specified
360
+ *
361
+ * @param srcToken Source token
362
+ * @param dstToken Destination token
363
+ */
364
+ getSwapType(srcToken: Token<ChainIdentifier>, dstToken: Token<ChainIdentifier>): SwapType.FROM_BTCLN_AUTO | SwapType.FROM_BTCLN | SwapType.SPV_VAULT_FROM_BTC | SwapType.FROM_BTC | SwapType.TO_BTC | SwapType.TO_BTCLN;
365
+ /**
366
+ * Returns minimum/maximum limits for inputs and outputs for a swap between given tokens
367
+ *
368
+ * @param srcToken Source token
369
+ * @param dstToken Destination token
370
+ */
371
+ getSwapLimits<A extends Token<ChainIdentifier>, B extends Token<ChainIdentifier>>(srcToken: A, dstToken: B): {
372
+ input: {
373
+ min: TokenAmount<A>;
374
+ max?: TokenAmount<A>;
375
+ };
376
+ output: {
377
+ min: TokenAmount<B>;
378
+ max?: TokenAmount<B>;
379
+ };
380
+ };
381
+ /**
382
+ * Returns a set of supported tokens by all the intermediaries offering a specific swap service
383
+ *
384
+ * @param _swapType Swap service type to check supported tokens for
385
+ */
386
+ private getSupportedTokens;
387
+ /**
388
+ * Returns the set of supported tokens by all the intermediaries we know of offering a specific swapType service
389
+ *
390
+ * @param swapType Specific swap type for which to obtain supported tokens
391
+ */
392
+ private getSupportedTokenAddresses;
393
+ /**
394
+ * Returns tokens that you can swap to (if input=true) from a given token,
395
+ * or tokens that you can swap from (if input=false) to a given token
396
+ */
397
+ getSwapCounterTokens(token: Token, input: SwapSide | boolean): Token<ChainIdentifier>[];
398
+ /**
399
+ * Creates a child swapper instance with a signer
400
+ *
401
+ * @param signer Signer to use for the new swapper instance
402
+ */
403
+ withSigner(signer: T[ChainIdentifier]["Signer"]): SwapperWithSigner<T, ChainIdentifier>;
404
+ }