@atomiqlabs/sdk 8.6.4 → 8.6.6

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 (239) hide show
  1. package/dist/SmartChainAssets.d.ts +181 -181
  2. package/dist/SmartChainAssets.js +181 -181
  3. package/dist/bitcoin/coinselect2/accumulative.d.ts +6 -6
  4. package/dist/bitcoin/coinselect2/accumulative.js +51 -52
  5. package/dist/bitcoin/coinselect2/blackjack.d.ts +6 -6
  6. package/dist/bitcoin/coinselect2/blackjack.js +37 -38
  7. package/dist/bitcoin/coinselect2/index.d.ts +17 -19
  8. package/dist/bitcoin/coinselect2/index.js +69 -69
  9. package/dist/bitcoin/coinselect2/utils.d.ts +75 -77
  10. package/dist/bitcoin/coinselect2/utils.js +123 -123
  11. package/dist/bitcoin/wallet/BitcoinWallet.d.ts +128 -130
  12. package/dist/bitcoin/wallet/BitcoinWallet.js +322 -322
  13. package/dist/bitcoin/wallet/IBitcoinWallet.d.ts +78 -78
  14. package/dist/bitcoin/wallet/IBitcoinWallet.js +20 -21
  15. package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.d.ts +99 -101
  16. package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.js +176 -176
  17. package/dist/enums/FeeType.d.ts +15 -15
  18. package/dist/enums/FeeType.js +19 -19
  19. package/dist/enums/SwapAmountType.d.ts +15 -15
  20. package/dist/enums/SwapAmountType.js +19 -19
  21. package/dist/enums/SwapDirection.d.ts +15 -15
  22. package/dist/enums/SwapDirection.js +19 -19
  23. package/dist/enums/SwapSide.d.ts +15 -15
  24. package/dist/enums/SwapSide.js +19 -19
  25. package/dist/enums/SwapType.d.ts +75 -75
  26. package/dist/enums/SwapType.js +79 -79
  27. package/dist/errors/IntermediaryError.d.ts +13 -13
  28. package/dist/errors/IntermediaryError.js +27 -27
  29. package/dist/errors/RequestError.d.ts +32 -32
  30. package/dist/errors/RequestError.js +54 -54
  31. package/dist/errors/UserError.d.ts +8 -8
  32. package/dist/errors/UserError.js +16 -16
  33. package/dist/events/UnifiedSwapEventListener.d.ts +23 -23
  34. package/dist/events/UnifiedSwapEventListener.js +130 -130
  35. package/dist/http/HttpUtils.d.ts +27 -27
  36. package/dist/http/HttpUtils.js +90 -91
  37. package/dist/http/paramcoders/IParamReader.d.ts +8 -8
  38. package/dist/http/paramcoders/IParamReader.js +2 -2
  39. package/dist/http/paramcoders/ParamDecoder.d.ts +42 -44
  40. package/dist/http/paramcoders/ParamDecoder.js +137 -137
  41. package/dist/http/paramcoders/ParamEncoder.d.ts +18 -20
  42. package/dist/http/paramcoders/ParamEncoder.js +36 -36
  43. package/dist/http/paramcoders/SchemaVerifier.d.ts +26 -26
  44. package/dist/http/paramcoders/SchemaVerifier.js +145 -145
  45. package/dist/http/paramcoders/client/ResponseParamDecoder.d.ts +11 -11
  46. package/dist/http/paramcoders/client/ResponseParamDecoder.js +57 -57
  47. package/dist/http/paramcoders/client/StreamParamEncoder.d.ts +11 -13
  48. package/dist/http/paramcoders/client/StreamParamEncoder.js +26 -26
  49. package/dist/http/paramcoders/client/StreamingFetchPromise.d.ts +16 -16
  50. package/dist/http/paramcoders/client/StreamingFetchPromise.js +173 -174
  51. package/dist/index.d.ts +85 -85
  52. package/dist/index.js +158 -158
  53. package/dist/intermediaries/Intermediary.d.ts +157 -157
  54. package/dist/intermediaries/Intermediary.js +142 -142
  55. package/dist/intermediaries/IntermediaryDiscovery.d.ts +198 -199
  56. package/dist/intermediaries/IntermediaryDiscovery.js +406 -406
  57. package/dist/intermediaries/apis/IntermediaryAPI.d.ts +437 -438
  58. package/dist/intermediaries/apis/IntermediaryAPI.js +603 -602
  59. package/dist/intermediaries/apis/TrustedIntermediaryAPI.d.ts +155 -155
  60. package/dist/intermediaries/apis/TrustedIntermediaryAPI.js +137 -137
  61. package/dist/lnurl/LNURL.d.ts +102 -102
  62. package/dist/lnurl/LNURL.js +321 -321
  63. package/dist/prices/RedundantSwapPrice.d.ts +110 -110
  64. package/dist/prices/RedundantSwapPrice.js +222 -222
  65. package/dist/prices/SingleSwapPrice.d.ts +34 -34
  66. package/dist/prices/SingleSwapPrice.js +44 -44
  67. package/dist/prices/SwapPriceWithChain.d.ts +107 -107
  68. package/dist/prices/SwapPriceWithChain.js +128 -128
  69. package/dist/prices/abstract/ICachedSwapPrice.d.ts +28 -28
  70. package/dist/prices/abstract/ICachedSwapPrice.js +62 -62
  71. package/dist/prices/abstract/IPriceProvider.d.ts +81 -81
  72. package/dist/prices/abstract/IPriceProvider.js +74 -74
  73. package/dist/prices/abstract/ISwapPrice.d.ts +168 -166
  74. package/dist/prices/abstract/ISwapPrice.js +279 -267
  75. package/dist/prices/providers/BinancePriceProvider.d.ts +23 -23
  76. package/dist/prices/providers/BinancePriceProvider.js +30 -30
  77. package/dist/prices/providers/CoinGeckoPriceProvider.d.ts +23 -23
  78. package/dist/prices/providers/CoinGeckoPriceProvider.js +29 -29
  79. package/dist/prices/providers/CoinPaprikaPriceProvider.d.ts +25 -25
  80. package/dist/prices/providers/CoinPaprikaPriceProvider.js +29 -29
  81. package/dist/prices/providers/CustomPriceProvider.d.ts +24 -24
  82. package/dist/prices/providers/CustomPriceProvider.js +35 -35
  83. package/dist/prices/providers/KrakenPriceProvider.d.ts +38 -38
  84. package/dist/prices/providers/KrakenPriceProvider.js +45 -45
  85. package/dist/prices/providers/OKXPriceProvider.d.ts +34 -34
  86. package/dist/prices/providers/OKXPriceProvider.js +29 -29
  87. package/dist/prices/providers/abstract/ExchangePriceProvider.d.ts +17 -17
  88. package/dist/prices/providers/abstract/ExchangePriceProvider.js +21 -21
  89. package/dist/prices/providers/abstract/HttpPriceProvider.d.ts +7 -7
  90. package/dist/prices/providers/abstract/HttpPriceProvider.js +12 -12
  91. package/dist/storage/IUnifiedStorage.d.ts +85 -85
  92. package/dist/storage/IUnifiedStorage.js +2 -2
  93. package/dist/storage/UnifiedSwapStorage.d.ts +114 -114
  94. package/dist/storage/UnifiedSwapStorage.js +116 -116
  95. package/dist/storage-browser/IndexedDBUnifiedStorage.d.ts +63 -63
  96. package/dist/storage-browser/IndexedDBUnifiedStorage.js +298 -298
  97. package/dist/storage-browser/LocalStorageManager.d.ts +49 -49
  98. package/dist/storage-browser/LocalStorageManager.js +93 -93
  99. package/dist/swapper/Swapper.d.ts +686 -687
  100. package/dist/swapper/Swapper.js +1603 -1603
  101. package/dist/swapper/SwapperFactory.d.ts +135 -135
  102. package/dist/swapper/SwapperFactory.js +162 -162
  103. package/dist/swapper/SwapperUtils.d.ts +200 -200
  104. package/dist/swapper/SwapperUtils.js +467 -467
  105. package/dist/swapper/SwapperWithChain.d.ts +404 -404
  106. package/dist/swapper/SwapperWithChain.js +469 -469
  107. package/dist/swapper/SwapperWithSigner.d.ts +322 -322
  108. package/dist/swapper/SwapperWithSigner.js +318 -318
  109. package/dist/swaps/IAddressSwap.d.ts +22 -22
  110. package/dist/swaps/IAddressSwap.js +13 -14
  111. package/dist/swaps/IBTCWalletSwap.d.ts +73 -73
  112. package/dist/swaps/IBTCWalletSwap.js +17 -18
  113. package/dist/swaps/IClaimableSwap.d.ts +49 -49
  114. package/dist/swaps/IClaimableSwap.js +14 -15
  115. package/dist/swaps/IClaimableSwapWrapper.d.ts +15 -15
  116. package/dist/swaps/IClaimableSwapWrapper.js +2 -2
  117. package/dist/swaps/IRefundableSwap.d.ts +43 -43
  118. package/dist/swaps/IRefundableSwap.js +13 -14
  119. package/dist/swaps/ISwap.d.ts +386 -387
  120. package/dist/swaps/ISwap.js +346 -341
  121. package/dist/swaps/ISwapWithGasDrop.d.ts +21 -21
  122. package/dist/swaps/ISwapWithGasDrop.js +11 -12
  123. package/dist/swaps/ISwapWrapper.d.ts +283 -284
  124. package/dist/swaps/ISwapWrapper.js +353 -353
  125. package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.d.ts +98 -98
  126. package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.js +126 -126
  127. package/dist/swaps/escrow_swaps/IEscrowSwap.d.ts +133 -135
  128. package/dist/swaps/escrow_swaps/IEscrowSwap.js +169 -169
  129. package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.d.ts +114 -115
  130. package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.js +134 -134
  131. package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.d.ts +98 -101
  132. package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.js +130 -130
  133. package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.d.ts +162 -162
  134. package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.js +190 -190
  135. package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.d.ts +58 -58
  136. package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.js +78 -78
  137. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.d.ts +529 -531
  138. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.js +1285 -1285
  139. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.d.ts +181 -184
  140. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.js +418 -417
  141. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.d.ts +581 -583
  142. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.js +1371 -1371
  143. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.d.ts +225 -228
  144. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.js +506 -506
  145. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.d.ts +458 -458
  146. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.js +1126 -1126
  147. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.d.ts +190 -191
  148. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.js +378 -377
  149. package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.d.ts +403 -403
  150. package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.js +924 -924
  151. package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.d.ts +62 -62
  152. package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.js +112 -112
  153. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.d.ts +125 -127
  154. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.js +256 -256
  155. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.d.ts +241 -242
  156. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.js +520 -520
  157. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.d.ts +73 -73
  158. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.js +155 -155
  159. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.d.ts +127 -128
  160. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.js +278 -278
  161. package/dist/swaps/spv_swaps/SpvFromBTCSwap.d.ts +630 -630
  162. package/dist/swaps/spv_swaps/SpvFromBTCSwap.js +1443 -1443
  163. package/dist/swaps/spv_swaps/SpvFromBTCWrapper.d.ts +213 -207
  164. package/dist/swaps/spv_swaps/SpvFromBTCWrapper.js +756 -755
  165. package/dist/swaps/trusted/ln/LnForGasSwap.d.ts +261 -261
  166. package/dist/swaps/trusted/ln/LnForGasSwap.js +511 -511
  167. package/dist/swaps/trusted/ln/LnForGasWrapper.d.ts +40 -40
  168. package/dist/swaps/trusted/ln/LnForGasWrapper.js +82 -82
  169. package/dist/swaps/trusted/onchain/OnchainForGasSwap.d.ts +342 -342
  170. package/dist/swaps/trusted/onchain/OnchainForGasSwap.js +715 -715
  171. package/dist/swaps/trusted/onchain/OnchainForGasWrapper.d.ts +68 -69
  172. package/dist/swaps/trusted/onchain/OnchainForGasWrapper.js +92 -92
  173. package/dist/types/AmountData.d.ts +10 -10
  174. package/dist/types/AmountData.js +2 -2
  175. package/dist/types/CustomPriceFunction.d.ts +11 -11
  176. package/dist/types/CustomPriceFunction.js +2 -2
  177. package/dist/types/PriceInfoType.d.ts +28 -28
  178. package/dist/types/PriceInfoType.js +56 -57
  179. package/dist/types/SwapExecutionAction.d.ts +88 -88
  180. package/dist/types/SwapExecutionAction.js +2 -2
  181. package/dist/types/SwapStateInfo.d.ts +5 -5
  182. package/dist/types/SwapStateInfo.js +2 -2
  183. package/dist/types/SwapWithSigner.d.ts +17 -17
  184. package/dist/types/SwapWithSigner.js +42 -43
  185. package/dist/types/Token.d.ts +99 -99
  186. package/dist/types/Token.js +76 -76
  187. package/dist/types/TokenAmount.d.ts +69 -69
  188. package/dist/types/TokenAmount.js +59 -60
  189. package/dist/types/fees/Fee.d.ts +50 -50
  190. package/dist/types/fees/Fee.js +2 -2
  191. package/dist/types/fees/FeeBreakdown.d.ts +11 -11
  192. package/dist/types/fees/FeeBreakdown.js +2 -2
  193. package/dist/types/fees/PercentagePPM.d.ts +17 -17
  194. package/dist/types/fees/PercentagePPM.js +17 -18
  195. package/dist/types/lnurl/LNURLPay.d.ts +61 -61
  196. package/dist/types/lnurl/LNURLPay.js +30 -31
  197. package/dist/types/lnurl/LNURLWithdraw.d.ts +48 -48
  198. package/dist/types/lnurl/LNURLWithdraw.js +26 -27
  199. package/dist/types/wallets/LightningInvoiceCreateService.d.ts +24 -24
  200. package/dist/types/wallets/LightningInvoiceCreateService.js +14 -15
  201. package/dist/types/wallets/MinimalBitcoinWalletInterface.d.ts +23 -23
  202. package/dist/types/wallets/MinimalBitcoinWalletInterface.js +2 -2
  203. package/dist/types/wallets/MinimalLightningNetworkWalletInterface.d.ts +9 -9
  204. package/dist/types/wallets/MinimalLightningNetworkWalletInterface.js +2 -2
  205. package/dist/utils/AutomaticClockDriftCorrection.d.ts +1 -1
  206. package/dist/utils/AutomaticClockDriftCorrection.js +69 -70
  207. package/dist/utils/BitcoinUtils.d.ts +12 -14
  208. package/dist/utils/BitcoinUtils.js +101 -102
  209. package/dist/utils/BitcoinWalletUtils.d.ts +7 -7
  210. package/dist/utils/BitcoinWalletUtils.js +13 -14
  211. package/dist/utils/Logger.d.ts +7 -7
  212. package/dist/utils/Logger.js +11 -12
  213. package/dist/utils/RetryUtils.d.ts +22 -22
  214. package/dist/utils/RetryUtils.js +66 -67
  215. package/dist/utils/SwapUtils.d.ts +88 -88
  216. package/dist/utils/SwapUtils.js +72 -72
  217. package/dist/utils/TimeoutUtils.d.ts +17 -17
  218. package/dist/utils/TimeoutUtils.js +54 -55
  219. package/dist/utils/TokenUtils.d.ts +19 -19
  220. package/dist/utils/TokenUtils.js +36 -37
  221. package/dist/utils/TypeUtils.d.ts +7 -7
  222. package/dist/utils/TypeUtils.js +2 -2
  223. package/dist/utils/Utils.d.ts +56 -58
  224. package/dist/utils/Utils.js +193 -194
  225. package/package.json +1 -1
  226. package/src/intermediaries/apis/IntermediaryAPI.ts +4 -2
  227. package/src/prices/abstract/ISwapPrice.ts +19 -6
  228. package/src/swaps/ISwap.ts +17 -6
  229. package/src/swaps/ISwapWrapper.ts +4 -3
  230. package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.ts +4 -2
  231. package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.ts +4 -1
  232. package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.ts +2 -2
  233. package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.ts +4 -2
  234. package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.ts +6 -6
  235. package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.ts +5 -5
  236. package/src/swaps/spv_swaps/SpvFromBTCSwap.ts +4 -1
  237. package/src/swaps/spv_swaps/SpvFromBTCWrapper.ts +10 -2
  238. package/src/swaps/trusted/ln/LnForGasWrapper.ts +1 -1
  239. package/src/swaps/trusted/onchain/OnchainForGasWrapper.ts +1 -1
@@ -1,228 +1,225 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- /// <reference types="node" />
4
- import { ChainType, ClaimEvent, InitializeEvent, LightningNetworkApi, Messenger, RefundEvent, SwapCommitState } from "@atomiqlabs/base";
5
- import { Intermediary } from "../../../../intermediaries/Intermediary";
6
- import { Buffer } from "buffer";
7
- import { SwapType } from "../../../../enums/SwapType";
8
- import { ISwapPrice } from "../../../../prices/abstract/ISwapPrice";
9
- import { EventEmitter } from "events";
10
- import { ISwapWrapperOptions, WrapperCtorTokens } from "../../../ISwapWrapper";
11
- import { UnifiedSwapEventListener } from "../../../../events/UnifiedSwapEventListener";
12
- import { UnifiedSwapStorage } from "../../../../storage/UnifiedSwapStorage";
13
- import { ISwap } from "../../../ISwap";
14
- import { FromBTCLNAutoSwap, FromBTCLNAutoSwapState } from "./FromBTCLNAutoSwap";
15
- import { IFromBTCLNDefinition, IFromBTCLNWrapper } from "../IFromBTCLNWrapper";
16
- import { IClaimableSwapWrapper } from "../../../IClaimableSwapWrapper";
17
- import { AmountData } from "../../../../types/AmountData";
18
- import { LNURLWithdrawParamsWithUrl } from "../../../../types/lnurl/LNURLWithdraw";
19
- import { AllOptional } from "../../../../utils/TypeUtils";
20
- export type FromBTCLNAutoOptions = {
21
- /**
22
- * Instead of letting the SDK generate the preimage/paymentHash pair internally you can pass your computed
23
- * paymentHash here, this will create the swap with the provided payment hash. Note that swaps created this way
24
- * won't settle automatically (as the SDK is missing the preimage). Once the HTLC towards the user is created in
25
- * the {@link FromBTCLNAutoSwapState.CLAIM_COMMITED} state, you should pass the secret preimage manually in the
26
- * {@link FromBTCLNAutoSwap.waitTillClaimed}, {@link FromBTCLNAutoSwap.claim} or {@link FromBTCLNAutoSwap.txsClaim}
27
- * functions.
28
- *
29
- * Accepts both, a {@link Buffer} and a hexadecimal `string`
30
- */
31
- paymentHash?: Buffer | string;
32
- /**
33
- * Optional description to use for the swap lightning network invoice, keep the invoice length below 500 characters
34
- */
35
- description?: string;
36
- /**
37
- * Optional description hash to use for the lightning network invoice, useful when returning the invoice as part of
38
- * an LNURL-pay service endpoint.
39
- *
40
- * Accepts both, a {@link Buffer} and a hexadecimal `string`
41
- */
42
- descriptionHash?: Buffer | string;
43
- /**
44
- * Optional additional native token to receive as an output of the swap (e.g. STRK on Starknet or cBTC on Citrea).
45
- * When passed as a `bigint` it is specified in base units of the token and in `string` it is the human readable
46
- * decimal format.
47
- */
48
- gasAmount?: bigint | string;
49
- /**
50
- * A flag to skip checking whether the lightning network node of the LP has enough channel liquidity to facilitate
51
- * the swap.
52
- */
53
- unsafeSkipLnNodeCheck?: boolean;
54
- /**
55
- * A flag to attach 0 watchtower fee to the swap, this would make the settlement unattractive for the watchtowers
56
- * and therefore automatic settlement for such swaps will not be possible, you will have to settle manually
57
- * with {@link FromBTCLNSwap.claim} or {@link FromBTCLNSwap.txsClaim} functions.
58
- */
59
- unsafeZeroWatchtowerFee?: boolean;
60
- /**
61
- * A safety factor to use when estimating the watchtower fee to attach to the swap (this has to cover the gas fee
62
- * of watchtowers settling the swap). A higher multiple here would mean that a swap is more attractive for
63
- * watchtowers to settle automatically.
64
- *
65
- * Uses a `1.25` multiple by default (i.e. the current network fee is multiplied by 1.25 and then used to estimate
66
- * the settlement gas fee cost)
67
- */
68
- feeSafetyFactor?: number;
69
- };
70
- export type FromBTCLNAutoWrapperOptions = ISwapWrapperOptions & {
71
- safetyFactor: number;
72
- bitcoinBlocktime: number;
73
- unsafeSkipLnNodeCheck: boolean;
74
- };
75
- export type FromBTCLNAutoDefinition<T extends ChainType> = IFromBTCLNDefinition<T, FromBTCLNAutoWrapper<T>, FromBTCLNAutoSwap<T>>;
76
- /**
77
- * New escrow based (HTLC) swaps for Bitcoin Lightning -> Smart chain swaps not requiring manual settlement on
78
- * the destination by the user, and instead letting the LP initiate the escrow. Permissionless watchtower network
79
- * handles the claiming of HTLC, with the swap secret broadcasted over Nostr. Also adds a possibility for the user
80
- * to receive a native token on the destination chain as part of the swap (a "gas drop" feature).
81
- *
82
- * @category Swaps/Lightning → Smart chain
83
- */
84
- export declare class FromBTCLNAutoWrapper<T extends ChainType> extends IFromBTCLNWrapper<T, FromBTCLNAutoDefinition<T>, FromBTCLNAutoWrapperOptions> implements IClaimableSwapWrapper<FromBTCLNAutoSwap<T>> {
85
- readonly TYPE: SwapType.FROM_BTCLN_AUTO;
86
- /**
87
- * @internal
88
- */
89
- protected readonly tickSwapState: FromBTCLNAutoSwapState[];
90
- /**
91
- * @internal
92
- */
93
- readonly _pendingSwapStates: FromBTCLNAutoSwapState[];
94
- /**
95
- * @internal
96
- */
97
- readonly _claimableSwapStates: FromBTCLNAutoSwapState[];
98
- /**
99
- * @internal
100
- */
101
- readonly _swapDeserializer: typeof FromBTCLNAutoSwap;
102
- /**
103
- * @internal
104
- */
105
- readonly _messenger: Messenger;
106
- /**
107
- * @param chainIdentifier
108
- * @param unifiedStorage Storage interface for the current environment
109
- * @param unifiedChainEvents On-chain event listener
110
- * @param chain
111
- * @param contract Underlying contract handling the swaps
112
- * @param prices Swap pricing handler
113
- * @param tokens
114
- * @param swapDataDeserializer Deserializer for SwapData
115
- * @param lnApi
116
- * @param messenger
117
- * @param options
118
- * @param events Instance to use for emitting events
119
- */
120
- constructor(chainIdentifier: string, unifiedStorage: UnifiedSwapStorage<T>, unifiedChainEvents: UnifiedSwapEventListener<T>, chain: T["ChainInterface"], contract: T["Contract"], prices: ISwapPrice, tokens: WrapperCtorTokens, swapDataDeserializer: new (data: any) => T["Data"], lnApi: LightningNetworkApi, messenger: Messenger, options?: AllOptional<FromBTCLNAutoWrapperOptions>, events?: EventEmitter<{
121
- swapState: [ISwap];
122
- }>);
123
- /**
124
- * @inheritDoc
125
- * @internal
126
- */
127
- protected processEventInitialize(swap: FromBTCLNAutoSwap<T>, event: InitializeEvent<T["Data"]>): Promise<boolean>;
128
- /**
129
- * @inheritDoc
130
- * @internal
131
- */
132
- protected processEventClaim(swap: FromBTCLNAutoSwap<T>, event: ClaimEvent<T["Data"]>): Promise<boolean>;
133
- /**
134
- * @inheritDoc
135
- * @internal
136
- */
137
- protected processEventRefund(swap: FromBTCLNAutoSwap<T>, event: RefundEvent<T["Data"]>): Promise<boolean>;
138
- /**
139
- * Pre-fetches claimer (watchtower) bounty data for the swap. Doesn't throw, instead returns null and aborts the
140
- * provided abortController
141
- *
142
- * @param signer Smartchain signer address initiating the swap
143
- * @param amountData
144
- * @param options Options as passed to the swap creation function
145
- * @param abortController
146
- *
147
- * @private
148
- */
149
- private preFetchClaimerBounty;
150
- /**
151
- * Verifies response returned from intermediary
152
- *
153
- * @param resp Response as returned by the intermediary
154
- * @param amountData
155
- * @param lp Intermediary
156
- * @param options Options as passed to the swap creation function
157
- * @param decodedPr Decoded bolt11 lightning network invoice
158
- * @param paymentHash Expected payment hash of the bolt11 lightning network invoice
159
- * @param claimerBounty Claimer bounty as request by the user
160
- *
161
- * @throws {IntermediaryError} in case the response is invalid
162
- *
163
- * @private
164
- */
165
- private verifyReturnedData;
166
- /**
167
- * Returns a newly created Lightning -> Smart chain swap using the HTLC based escrow swap protocol,
168
- * where watchtowers handle the automatic settlement of the swap on the destination chain. Also allows
169
- * specifying additional "gas drop" native token that the receipient receives on the destination chain
170
- * in the `options` argument. The user has to pay a bolt11 invoice on the input lightning network side.
171
- *
172
- * @param recipient Recipient's address on the destination chain
173
- * @param amountData Amount, token and exact input/output data for to swap
174
- * @param lps An array of intermediaries (LPs) to get the quotes from
175
- * @param options Optional additional quote options
176
- * @param additionalParams Optional additional parameters sent to the LP when creating the swap
177
- * @param abortSignal Abort signal
178
- * @param preFetches Optional pre-fetches for speeding up the quoting process (mainly used internally)
179
- */
180
- create(recipient: string, amountData: AmountData, lps: Intermediary[], options?: FromBTCLNAutoOptions, additionalParams?: Record<string, any>, abortSignal?: AbortSignal, preFetches?: {
181
- pricePrefetchPromise?: Promise<bigint | undefined>;
182
- usdPricePrefetchPromise?: Promise<number | undefined>;
183
- gasTokenPricePrefetchPromise?: Promise<bigint | undefined>;
184
- claimerBountyPrefetch?: Promise<bigint | undefined>;
185
- }): {
186
- quote: Promise<FromBTCLNAutoSwap<T>>;
187
- intermediary: Intermediary;
188
- }[];
189
- /**
190
- * Returns a newly created Lightning -> Smart chain swap using the HTLC based escrow swap protocol,
191
- * where watchtowers handle the automatic settlement of the swap on the destination chain. Also allows
192
- * specifying additional "gas drop" native token that the receipient receives on the destination chain
193
- * in the `options` argument. The swap is created with an LNURL-withdraw link which will be used to pay
194
- * the generated bolt11 invoice automatically when {@link FromBTCLNSwap.waitForPayment} is called on the
195
- * swap.
196
- *
197
- * @param recipient Recipient's address on the destination chain
198
- * @param lnurl LNURL-withdraw link to pull the funds from
199
- * @param amountData Amount, token and exact input/output data for to swap
200
- * @param lps An array of intermediaries (LPs) to get the quotes from
201
- * @param options Optional additional quote options
202
- * @param additionalParams Optional additional parameters sent to the LP when creating the swap
203
- * @param abortSignal Abort signal
204
- */
205
- createViaLNURL(recipient: string, lnurl: string | LNURLWithdrawParamsWithUrl, amountData: AmountData, lps: Intermediary[], options?: FromBTCLNAutoOptions, additionalParams?: Record<string, any>, abortSignal?: AbortSignal): Promise<{
206
- quote: Promise<FromBTCLNAutoSwap<T>>;
207
- intermediary: Intermediary;
208
- }[]>;
209
- /**
210
- * @inheritDoc
211
- * @internal
212
- */
213
- protected _checkPastSwaps(pastSwaps: FromBTCLNAutoSwap<T>[]): Promise<{
214
- changedSwaps: FromBTCLNAutoSwap<T>[];
215
- removeSwaps: FromBTCLNAutoSwap<T>[];
216
- }>;
217
- /**
218
- * @inheritDoc
219
- */
220
- recoverFromSwapDataAndState(init: {
221
- data: T["Data"];
222
- getInitTxId: () => Promise<string>;
223
- getTxBlock: () => Promise<{
224
- blockTime: number;
225
- blockHeight: number;
226
- }>;
227
- }, state: SwapCommitState, lp?: Intermediary): Promise<FromBTCLNAutoSwap<T> | null>;
228
- }
1
+ import { ChainType, ClaimEvent, InitializeEvent, LightningNetworkApi, Messenger, RefundEvent, SwapCommitState } from "@atomiqlabs/base";
2
+ import { Intermediary } from "../../../../intermediaries/Intermediary";
3
+ import { Buffer } from "buffer";
4
+ import { SwapType } from "../../../../enums/SwapType";
5
+ import { ISwapPrice } from "../../../../prices/abstract/ISwapPrice";
6
+ import { EventEmitter } from "events";
7
+ import { ISwapWrapperOptions, WrapperCtorTokens } from "../../../ISwapWrapper";
8
+ import { UnifiedSwapEventListener } from "../../../../events/UnifiedSwapEventListener";
9
+ import { UnifiedSwapStorage } from "../../../../storage/UnifiedSwapStorage";
10
+ import { ISwap } from "../../../ISwap";
11
+ import { FromBTCLNAutoSwap, FromBTCLNAutoSwapState } from "./FromBTCLNAutoSwap";
12
+ import { IFromBTCLNDefinition, IFromBTCLNWrapper } from "../IFromBTCLNWrapper";
13
+ import { IClaimableSwapWrapper } from "../../../IClaimableSwapWrapper";
14
+ import { AmountData } from "../../../../types/AmountData";
15
+ import { LNURLWithdrawParamsWithUrl } from "../../../../types/lnurl/LNURLWithdraw";
16
+ import { AllOptional } from "../../../../utils/TypeUtils";
17
+ export type FromBTCLNAutoOptions = {
18
+ /**
19
+ * Instead of letting the SDK generate the preimage/paymentHash pair internally you can pass your computed
20
+ * paymentHash here, this will create the swap with the provided payment hash. Note that swaps created this way
21
+ * won't settle automatically (as the SDK is missing the preimage). Once the HTLC towards the user is created in
22
+ * the {@link FromBTCLNAutoSwapState.CLAIM_COMMITED} state, you should pass the secret preimage manually in the
23
+ * {@link FromBTCLNAutoSwap.waitTillClaimed}, {@link FromBTCLNAutoSwap.claim} or {@link FromBTCLNAutoSwap.txsClaim}
24
+ * functions.
25
+ *
26
+ * Accepts both, a {@link Buffer} and a hexadecimal `string`
27
+ */
28
+ paymentHash?: Buffer | string;
29
+ /**
30
+ * Optional description to use for the swap lightning network invoice, keep the invoice length below 500 characters
31
+ */
32
+ description?: string;
33
+ /**
34
+ * Optional description hash to use for the lightning network invoice, useful when returning the invoice as part of
35
+ * an LNURL-pay service endpoint.
36
+ *
37
+ * Accepts both, a {@link Buffer} and a hexadecimal `string`
38
+ */
39
+ descriptionHash?: Buffer | string;
40
+ /**
41
+ * Optional additional native token to receive as an output of the swap (e.g. STRK on Starknet or cBTC on Citrea).
42
+ * When passed as a `bigint` it is specified in base units of the token and in `string` it is the human readable
43
+ * decimal format.
44
+ */
45
+ gasAmount?: bigint | string;
46
+ /**
47
+ * A flag to skip checking whether the lightning network node of the LP has enough channel liquidity to facilitate
48
+ * the swap.
49
+ */
50
+ unsafeSkipLnNodeCheck?: boolean;
51
+ /**
52
+ * A flag to attach 0 watchtower fee to the swap, this would make the settlement unattractive for the watchtowers
53
+ * and therefore automatic settlement for such swaps will not be possible, you will have to settle manually
54
+ * with {@link FromBTCLNSwap.claim} or {@link FromBTCLNSwap.txsClaim} functions.
55
+ */
56
+ unsafeZeroWatchtowerFee?: boolean;
57
+ /**
58
+ * A safety factor to use when estimating the watchtower fee to attach to the swap (this has to cover the gas fee
59
+ * of watchtowers settling the swap). A higher multiple here would mean that a swap is more attractive for
60
+ * watchtowers to settle automatically.
61
+ *
62
+ * Uses a `1.25` multiple by default (i.e. the current network fee is multiplied by 1.25 and then used to estimate
63
+ * the settlement gas fee cost)
64
+ */
65
+ feeSafetyFactor?: number;
66
+ };
67
+ export type FromBTCLNAutoWrapperOptions = ISwapWrapperOptions & {
68
+ safetyFactor: number;
69
+ bitcoinBlocktime: number;
70
+ unsafeSkipLnNodeCheck: boolean;
71
+ };
72
+ export type FromBTCLNAutoDefinition<T extends ChainType> = IFromBTCLNDefinition<T, FromBTCLNAutoWrapper<T>, FromBTCLNAutoSwap<T>>;
73
+ /**
74
+ * New escrow based (HTLC) swaps for Bitcoin Lightning -> Smart chain swaps not requiring manual settlement on
75
+ * the destination by the user, and instead letting the LP initiate the escrow. Permissionless watchtower network
76
+ * handles the claiming of HTLC, with the swap secret broadcasted over Nostr. Also adds a possibility for the user
77
+ * to receive a native token on the destination chain as part of the swap (a "gas drop" feature).
78
+ *
79
+ * @category Swaps/Lightning Smart chain
80
+ */
81
+ export declare class FromBTCLNAutoWrapper<T extends ChainType> extends IFromBTCLNWrapper<T, FromBTCLNAutoDefinition<T>, FromBTCLNAutoWrapperOptions> implements IClaimableSwapWrapper<FromBTCLNAutoSwap<T>> {
82
+ readonly TYPE: SwapType.FROM_BTCLN_AUTO;
83
+ /**
84
+ * @internal
85
+ */
86
+ protected readonly tickSwapState: FromBTCLNAutoSwapState[];
87
+ /**
88
+ * @internal
89
+ */
90
+ readonly _pendingSwapStates: FromBTCLNAutoSwapState[];
91
+ /**
92
+ * @internal
93
+ */
94
+ readonly _claimableSwapStates: FromBTCLNAutoSwapState[];
95
+ /**
96
+ * @internal
97
+ */
98
+ readonly _swapDeserializer: typeof FromBTCLNAutoSwap;
99
+ /**
100
+ * @internal
101
+ */
102
+ readonly _messenger: Messenger;
103
+ /**
104
+ * @param chainIdentifier
105
+ * @param unifiedStorage Storage interface for the current environment
106
+ * @param unifiedChainEvents On-chain event listener
107
+ * @param chain
108
+ * @param contract Underlying contract handling the swaps
109
+ * @param prices Swap pricing handler
110
+ * @param tokens
111
+ * @param swapDataDeserializer Deserializer for SwapData
112
+ * @param lnApi
113
+ * @param messenger
114
+ * @param options
115
+ * @param events Instance to use for emitting events
116
+ */
117
+ constructor(chainIdentifier: string, unifiedStorage: UnifiedSwapStorage<T>, unifiedChainEvents: UnifiedSwapEventListener<T>, chain: T["ChainInterface"], contract: T["Contract"], prices: ISwapPrice, tokens: WrapperCtorTokens, swapDataDeserializer: new (data: any) => T["Data"], lnApi: LightningNetworkApi, messenger: Messenger, options?: AllOptional<FromBTCLNAutoWrapperOptions>, events?: EventEmitter<{
118
+ swapState: [ISwap];
119
+ }>);
120
+ /**
121
+ * @inheritDoc
122
+ * @internal
123
+ */
124
+ protected processEventInitialize(swap: FromBTCLNAutoSwap<T>, event: InitializeEvent<T["Data"]>): Promise<boolean>;
125
+ /**
126
+ * @inheritDoc
127
+ * @internal
128
+ */
129
+ protected processEventClaim(swap: FromBTCLNAutoSwap<T>, event: ClaimEvent<T["Data"]>): Promise<boolean>;
130
+ /**
131
+ * @inheritDoc
132
+ * @internal
133
+ */
134
+ protected processEventRefund(swap: FromBTCLNAutoSwap<T>, event: RefundEvent<T["Data"]>): Promise<boolean>;
135
+ /**
136
+ * Pre-fetches claimer (watchtower) bounty data for the swap. Doesn't throw, instead returns null and aborts the
137
+ * provided abortController
138
+ *
139
+ * @param signer Smartchain signer address initiating the swap
140
+ * @param amountData
141
+ * @param options Options as passed to the swap creation function
142
+ * @param abortController
143
+ *
144
+ * @private
145
+ */
146
+ private preFetchClaimerBounty;
147
+ /**
148
+ * Verifies response returned from intermediary
149
+ *
150
+ * @param resp Response as returned by the intermediary
151
+ * @param amountData
152
+ * @param lp Intermediary
153
+ * @param options Options as passed to the swap creation function
154
+ * @param decodedPr Decoded bolt11 lightning network invoice
155
+ * @param paymentHash Expected payment hash of the bolt11 lightning network invoice
156
+ * @param claimerBounty Claimer bounty as request by the user
157
+ *
158
+ * @throws {IntermediaryError} in case the response is invalid
159
+ *
160
+ * @private
161
+ */
162
+ private verifyReturnedData;
163
+ /**
164
+ * Returns a newly created Lightning -> Smart chain swap using the HTLC based escrow swap protocol,
165
+ * where watchtowers handle the automatic settlement of the swap on the destination chain. Also allows
166
+ * specifying additional "gas drop" native token that the receipient receives on the destination chain
167
+ * in the `options` argument. The user has to pay a bolt11 invoice on the input lightning network side.
168
+ *
169
+ * @param recipient Recipient's address on the destination chain
170
+ * @param amountData Amount, token and exact input/output data for to swap
171
+ * @param lps An array of intermediaries (LPs) to get the quotes from
172
+ * @param options Optional additional quote options
173
+ * @param additionalParams Optional additional parameters sent to the LP when creating the swap
174
+ * @param abortSignal Abort signal
175
+ * @param preFetches Optional pre-fetches for speeding up the quoting process (mainly used internally)
176
+ */
177
+ create(recipient: string, amountData: AmountData, lps: Intermediary[], options?: FromBTCLNAutoOptions, additionalParams?: Record<string, any>, abortSignal?: AbortSignal, preFetches?: {
178
+ pricePrefetchPromise?: Promise<bigint | undefined>;
179
+ usdPricePrefetchPromise?: Promise<number | undefined>;
180
+ gasTokenPricePrefetchPromise?: Promise<bigint | undefined>;
181
+ claimerBountyPrefetch?: Promise<bigint | undefined>;
182
+ }): {
183
+ quote: Promise<FromBTCLNAutoSwap<T>>;
184
+ intermediary: Intermediary;
185
+ }[];
186
+ /**
187
+ * Returns a newly created Lightning -> Smart chain swap using the HTLC based escrow swap protocol,
188
+ * where watchtowers handle the automatic settlement of the swap on the destination chain. Also allows
189
+ * specifying additional "gas drop" native token that the receipient receives on the destination chain
190
+ * in the `options` argument. The swap is created with an LNURL-withdraw link which will be used to pay
191
+ * the generated bolt11 invoice automatically when {@link FromBTCLNSwap.waitForPayment} is called on the
192
+ * swap.
193
+ *
194
+ * @param recipient Recipient's address on the destination chain
195
+ * @param lnurl LNURL-withdraw link to pull the funds from
196
+ * @param amountData Amount, token and exact input/output data for to swap
197
+ * @param lps An array of intermediaries (LPs) to get the quotes from
198
+ * @param options Optional additional quote options
199
+ * @param additionalParams Optional additional parameters sent to the LP when creating the swap
200
+ * @param abortSignal Abort signal
201
+ */
202
+ createViaLNURL(recipient: string, lnurl: string | LNURLWithdrawParamsWithUrl, amountData: AmountData, lps: Intermediary[], options?: FromBTCLNAutoOptions, additionalParams?: Record<string, any>, abortSignal?: AbortSignal): Promise<{
203
+ quote: Promise<FromBTCLNAutoSwap<T>>;
204
+ intermediary: Intermediary;
205
+ }[]>;
206
+ /**
207
+ * @inheritDoc
208
+ * @internal
209
+ */
210
+ protected _checkPastSwaps(pastSwaps: FromBTCLNAutoSwap<T>[]): Promise<{
211
+ changedSwaps: FromBTCLNAutoSwap<T>[];
212
+ removeSwaps: FromBTCLNAutoSwap<T>[];
213
+ }>;
214
+ /**
215
+ * @inheritDoc
216
+ */
217
+ recoverFromSwapDataAndState(init: {
218
+ data: T["Data"];
219
+ getInitTxId: () => Promise<string>;
220
+ getTxBlock: () => Promise<{
221
+ blockTime: number;
222
+ blockHeight: number;
223
+ }>;
224
+ }, state: SwapCommitState, lp?: Intermediary): Promise<FromBTCLNAutoSwap<T> | null>;
225
+ }