@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,199 +1,198 @@
1
- /// <reference types="node" />
2
- import { Intermediary } from "./Intermediary";
3
- import { SwapType } from "../enums/SwapType";
4
- import { SwapContract } from "@atomiqlabs/base";
5
- import { EventEmitter } from "events";
6
- /**
7
- * Swap handler type mapping for intermediary communication
8
- *
9
- * @category LPs
10
- */
11
- export declare enum SwapHandlerType {
12
- TO_BTC = "TO_BTC",
13
- FROM_BTC = "FROM_BTC",
14
- TO_BTCLN = "TO_BTCLN",
15
- FROM_BTCLN = "FROM_BTCLN",
16
- FROM_BTC_TRUSTED = "FROM_BTC_TRUSTED",
17
- FROM_BTCLN_TRUSTED = "FROM_BTCLN_TRUSTED",
18
- FROM_BTC_SPV = "FROM_BTC_SPV",
19
- FROM_BTCLN_AUTO = "FROM_BTCLN_AUTO"
20
- }
21
- /**
22
- * Swap handler information type
23
- *
24
- * @category LPs
25
- */
26
- export type SwapHandlerInfoType = {
27
- swapFeePPM: number;
28
- swapBaseFee: number;
29
- min: number;
30
- max: number;
31
- tokens: string[];
32
- chainTokens?: {
33
- [chainId: string]: string[];
34
- };
35
- data?: any;
36
- };
37
- /**
38
- * Token bounds (min/max) for swaps
39
- *
40
- * @category LPs
41
- */
42
- export type TokenBounds = {
43
- [token: string]: {
44
- min: bigint;
45
- max: bigint;
46
- };
47
- };
48
- /**
49
- * Multi-chain token bounds (min/max) for swaps
50
- *
51
- * @category LPs
52
- */
53
- export type MultichainTokenBounds = {
54
- [chainId: string]: TokenBounds;
55
- };
56
- /**
57
- * Swap bounds by swap protocol type
58
- *
59
- * @category LPs
60
- */
61
- export type SwapBounds = {
62
- [key in SwapType]?: TokenBounds;
63
- };
64
- /**
65
- * Multi-chain swap bounds
66
- *
67
- * @category LPs
68
- */
69
- export type MultichainSwapBounds = {
70
- [key in SwapType]?: MultichainTokenBounds;
71
- };
72
- /**
73
- * Discovery service for available intermediaries (liquidity providers)
74
- *
75
- * @category LPs
76
- */
77
- export declare class IntermediaryDiscovery extends EventEmitter {
78
- /**
79
- * A current list of active intermediaries
80
- */
81
- intermediaries: Intermediary[];
82
- /**
83
- * Swap contracts for checking intermediary signatures
84
- */
85
- swapContracts: {
86
- [key: string]: SwapContract;
87
- };
88
- /**
89
- * Registry URL used as a source for the list of intermediaries, this should be a link to a
90
- * github-hosted JSON file
91
- */
92
- registryUrl: string;
93
- /**
94
- * Timeout for the HTTP handshake (/info) requests sent to the intermediaries
95
- */
96
- httpRequestTimeout?: number;
97
- /**
98
- * Maximum time (in millis) to wait for other intermediary's responses after the first one was founds
99
- */
100
- maxWaitForOthersTimeout?: number;
101
- /**
102
- * The intermediary URLs passed in the constructor, to be used instead of querying the registry
103
- *
104
- * @private
105
- */
106
- private overrideNodeUrls?;
107
- constructor(swapContracts: {
108
- [key: string]: SwapContract;
109
- }, registryUrl?: string, nodeUrls?: string[], httpRequestTimeout?: number, maxWaitForOthersTimeout?: number);
110
- /**
111
- * Fetches the URLs of swap intermediaries from registry or from a pre-defined array of node urls
112
- *
113
- * @param abortSignal
114
- */
115
- private getIntermediaryUrls;
116
- /**
117
- * Returns data as reported by a specific node (as identified by its URL). This function is specifically made
118
- * in a way, that in case the abortSignal fires AFTER the LP response was received (and during signature checking),
119
- * it proceeds with the addresses it was able to verify already. Hence after calling abort, this function is guaranteed
120
- * to either reject or resolve instantly.
121
- *
122
- * @param url
123
- * @param abortSignal
124
- */
125
- private getNodeInfo;
126
- /**
127
- * Inherits abort signal logic from `getNodeInfo()`, check those function docs to better understand
128
- *
129
- * @param url
130
- * @param abortSignal
131
- * @private
132
- */
133
- private loadIntermediary;
134
- /**
135
- * Returns the intermediary at the provided URL, either from the already fetched list of LPs
136
- * or fetches the data on-demand, by sending the handshake HTTP request (/info) to the LP.
137
- *
138
- * Doesn't save the fetched intermediary to the list of intermediaries if it isn't already
139
- * part of the known intermediaries
140
- *
141
- * @param url Base URL of the intermediary, which accepts HTTP requests
142
- * @param abortSignal
143
- */
144
- getIntermediary(url: string, abortSignal?: AbortSignal): Promise<Intermediary | null>;
145
- /**
146
- * Reloads the saves a list of intermediaries
147
- *
148
- * @param abortSignal
149
- */
150
- reloadIntermediaries(abortSignal?: AbortSignal): Promise<void>;
151
- /**
152
- * Initializes the discovery by fetching/reloading intermediaries
153
- *
154
- * @param abortSignal
155
- */
156
- init(abortSignal?: AbortSignal): Promise<void>;
157
- /**
158
- * Returns known swap bounds (in satoshis - BTC) by aggregating values from all known intermediaries
159
- */
160
- getMultichainSwapBounds(): MultichainSwapBounds;
161
- /**
162
- * Returns aggregate swap bounds (in satoshis - BTC) as indicated by the intermediaries
163
- */
164
- getSwapBounds(chainIdentifier: string): SwapBounds;
165
- /**
166
- * Returns the aggregate swap minimum (in satoshis - BTC) for a specific swap type & token
167
- * as indicated by the intermediaries
168
- *
169
- * @param chainIdentifier Chain identifier of the smart chain
170
- * @param swapType Swap protocol type
171
- * @param tokenAddress Token address
172
- */
173
- getSwapMinimum(chainIdentifier: string, swapType: SwapType, tokenAddress: string): number | null;
174
- /**
175
- * Returns the aggregate swap maximum (in satoshis - BTC) for a specific swap type & token
176
- * as indicated by the intermediaries
177
- *
178
- * @param chainIdentifier Chain identifier of the smart chain
179
- * @param swapType Swap protocol type
180
- * @param tokenAddress Token address
181
- */
182
- getSwapMaximum(chainIdentifier: string, swapType: SwapType, tokenAddress: string): number | null;
183
- /**
184
- * Returns swap candidates for a specific swap type & token address
185
- *
186
- * @param chainIdentifier Chain identifier of the smart chain
187
- * @param swapType Swap protocol type
188
- * @param tokenAddress Token address
189
- * @param amount Amount to be swapped in sats - BTC
190
- * @param count How many intermediaries to return at most
191
- */
192
- getSwapCandidates(chainIdentifier: string, swapType: SwapType, tokenAddress: string, amount?: bigint, count?: number): Intermediary[];
193
- /**
194
- * Removes a specific intermediary from the list of active intermediaries (used for blacklisting)
195
- *
196
- * @param intermediary
197
- */
198
- removeIntermediary(intermediary: Intermediary): boolean;
199
- }
1
+ import { Intermediary } from "./Intermediary";
2
+ import { SwapType } from "../enums/SwapType";
3
+ import { SwapContract } from "@atomiqlabs/base";
4
+ import { EventEmitter } from "events";
5
+ /**
6
+ * Swap handler type mapping for intermediary communication
7
+ *
8
+ * @category LPs
9
+ */
10
+ export declare enum SwapHandlerType {
11
+ TO_BTC = "TO_BTC",
12
+ FROM_BTC = "FROM_BTC",
13
+ TO_BTCLN = "TO_BTCLN",
14
+ FROM_BTCLN = "FROM_BTCLN",
15
+ FROM_BTC_TRUSTED = "FROM_BTC_TRUSTED",
16
+ FROM_BTCLN_TRUSTED = "FROM_BTCLN_TRUSTED",
17
+ FROM_BTC_SPV = "FROM_BTC_SPV",
18
+ FROM_BTCLN_AUTO = "FROM_BTCLN_AUTO"
19
+ }
20
+ /**
21
+ * Swap handler information type
22
+ *
23
+ * @category LPs
24
+ */
25
+ export type SwapHandlerInfoType = {
26
+ swapFeePPM: number;
27
+ swapBaseFee: number;
28
+ min: number;
29
+ max: number;
30
+ tokens: string[];
31
+ chainTokens?: {
32
+ [chainId: string]: string[];
33
+ };
34
+ data?: any;
35
+ };
36
+ /**
37
+ * Token bounds (min/max) for swaps
38
+ *
39
+ * @category LPs
40
+ */
41
+ export type TokenBounds = {
42
+ [token: string]: {
43
+ min: bigint;
44
+ max: bigint;
45
+ };
46
+ };
47
+ /**
48
+ * Multi-chain token bounds (min/max) for swaps
49
+ *
50
+ * @category LPs
51
+ */
52
+ export type MultichainTokenBounds = {
53
+ [chainId: string]: TokenBounds;
54
+ };
55
+ /**
56
+ * Swap bounds by swap protocol type
57
+ *
58
+ * @category LPs
59
+ */
60
+ export type SwapBounds = {
61
+ [key in SwapType]?: TokenBounds;
62
+ };
63
+ /**
64
+ * Multi-chain swap bounds
65
+ *
66
+ * @category LPs
67
+ */
68
+ export type MultichainSwapBounds = {
69
+ [key in SwapType]?: MultichainTokenBounds;
70
+ };
71
+ /**
72
+ * Discovery service for available intermediaries (liquidity providers)
73
+ *
74
+ * @category LPs
75
+ */
76
+ export declare class IntermediaryDiscovery extends EventEmitter {
77
+ /**
78
+ * A current list of active intermediaries
79
+ */
80
+ intermediaries: Intermediary[];
81
+ /**
82
+ * Swap contracts for checking intermediary signatures
83
+ */
84
+ swapContracts: {
85
+ [key: string]: SwapContract;
86
+ };
87
+ /**
88
+ * Registry URL used as a source for the list of intermediaries, this should be a link to a
89
+ * github-hosted JSON file
90
+ */
91
+ registryUrl: string;
92
+ /**
93
+ * Timeout for the HTTP handshake (/info) requests sent to the intermediaries
94
+ */
95
+ httpRequestTimeout?: number;
96
+ /**
97
+ * Maximum time (in millis) to wait for other intermediary's responses after the first one was founds
98
+ */
99
+ maxWaitForOthersTimeout?: number;
100
+ /**
101
+ * The intermediary URLs passed in the constructor, to be used instead of querying the registry
102
+ *
103
+ * @private
104
+ */
105
+ private overrideNodeUrls?;
106
+ constructor(swapContracts: {
107
+ [key: string]: SwapContract;
108
+ }, registryUrl?: string, nodeUrls?: string[], httpRequestTimeout?: number, maxWaitForOthersTimeout?: number);
109
+ /**
110
+ * Fetches the URLs of swap intermediaries from registry or from a pre-defined array of node urls
111
+ *
112
+ * @param abortSignal
113
+ */
114
+ private getIntermediaryUrls;
115
+ /**
116
+ * Returns data as reported by a specific node (as identified by its URL). This function is specifically made
117
+ * in a way, that in case the abortSignal fires AFTER the LP response was received (and during signature checking),
118
+ * it proceeds with the addresses it was able to verify already. Hence after calling abort, this function is guaranteed
119
+ * to either reject or resolve instantly.
120
+ *
121
+ * @param url
122
+ * @param abortSignal
123
+ */
124
+ private getNodeInfo;
125
+ /**
126
+ * Inherits abort signal logic from `getNodeInfo()`, check those function docs to better understand
127
+ *
128
+ * @param url
129
+ * @param abortSignal
130
+ * @private
131
+ */
132
+ private loadIntermediary;
133
+ /**
134
+ * Returns the intermediary at the provided URL, either from the already fetched list of LPs
135
+ * or fetches the data on-demand, by sending the handshake HTTP request (/info) to the LP.
136
+ *
137
+ * Doesn't save the fetched intermediary to the list of intermediaries if it isn't already
138
+ * part of the known intermediaries
139
+ *
140
+ * @param url Base URL of the intermediary, which accepts HTTP requests
141
+ * @param abortSignal
142
+ */
143
+ getIntermediary(url: string, abortSignal?: AbortSignal): Promise<Intermediary | null>;
144
+ /**
145
+ * Reloads the saves a list of intermediaries
146
+ *
147
+ * @param abortSignal
148
+ */
149
+ reloadIntermediaries(abortSignal?: AbortSignal): Promise<void>;
150
+ /**
151
+ * Initializes the discovery by fetching/reloading intermediaries
152
+ *
153
+ * @param abortSignal
154
+ */
155
+ init(abortSignal?: AbortSignal): Promise<void>;
156
+ /**
157
+ * Returns known swap bounds (in satoshis - BTC) by aggregating values from all known intermediaries
158
+ */
159
+ getMultichainSwapBounds(): MultichainSwapBounds;
160
+ /**
161
+ * Returns aggregate swap bounds (in satoshis - BTC) as indicated by the intermediaries
162
+ */
163
+ getSwapBounds(chainIdentifier: string): SwapBounds;
164
+ /**
165
+ * Returns the aggregate swap minimum (in satoshis - BTC) for a specific swap type & token
166
+ * as indicated by the intermediaries
167
+ *
168
+ * @param chainIdentifier Chain identifier of the smart chain
169
+ * @param swapType Swap protocol type
170
+ * @param tokenAddress Token address
171
+ */
172
+ getSwapMinimum(chainIdentifier: string, swapType: SwapType, tokenAddress: string): number | null;
173
+ /**
174
+ * Returns the aggregate swap maximum (in satoshis - BTC) for a specific swap type & token
175
+ * as indicated by the intermediaries
176
+ *
177
+ * @param chainIdentifier Chain identifier of the smart chain
178
+ * @param swapType Swap protocol type
179
+ * @param tokenAddress Token address
180
+ */
181
+ getSwapMaximum(chainIdentifier: string, swapType: SwapType, tokenAddress: string): number | null;
182
+ /**
183
+ * Returns swap candidates for a specific swap type & token address
184
+ *
185
+ * @param chainIdentifier Chain identifier of the smart chain
186
+ * @param swapType Swap protocol type
187
+ * @param tokenAddress Token address
188
+ * @param amount Amount to be swapped in sats - BTC
189
+ * @param count How many intermediaries to return at most
190
+ */
191
+ getSwapCandidates(chainIdentifier: string, swapType: SwapType, tokenAddress: string, amount?: bigint, count?: number): Intermediary[];
192
+ /**
193
+ * Removes a specific intermediary from the list of active intermediaries (used for blacklisting)
194
+ *
195
+ * @param intermediary
196
+ */
197
+ removeIntermediary(intermediary: Intermediary): boolean;
198
+ }