@atomiqlabs/sdk 8.1.8 → 8.3.5

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 (261) hide show
  1. package/dist/bitcoin/coinselect2/utils.d.ts +6 -0
  2. package/dist/bitcoin/wallet/BitcoinWallet.d.ts +41 -5
  3. package/dist/bitcoin/wallet/BitcoinWallet.js +36 -1
  4. package/dist/bitcoin/wallet/IBitcoinWallet.d.ts +52 -2
  5. package/dist/bitcoin/wallet/IBitcoinWallet.js +2 -1
  6. package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.d.ts +42 -7
  7. package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.js +36 -1
  8. package/dist/enums/FeeType.d.ts +8 -1
  9. package/dist/enums/FeeType.js +8 -1
  10. package/dist/enums/SwapAmountType.d.ts +7 -0
  11. package/dist/enums/SwapAmountType.js +7 -0
  12. package/dist/enums/SwapDirection.d.ts +7 -0
  13. package/dist/enums/SwapDirection.js +7 -0
  14. package/dist/enums/SwapType.d.ts +62 -1
  15. package/dist/enums/SwapType.js +62 -1
  16. package/dist/errors/IntermediaryError.d.ts +4 -0
  17. package/dist/errors/IntermediaryError.js +1 -0
  18. package/dist/errors/RequestError.d.ts +15 -1
  19. package/dist/errors/RequestError.js +8 -0
  20. package/dist/errors/UserError.d.ts +1 -0
  21. package/dist/errors/UserError.js +1 -0
  22. package/dist/index.d.ts +5 -5
  23. package/dist/index.js +7 -6
  24. package/dist/intermediaries/Intermediary.d.ts +61 -14
  25. package/dist/intermediaries/Intermediary.js +38 -11
  26. package/dist/intermediaries/IntermediaryDiscovery.d.ts +62 -29
  27. package/dist/intermediaries/IntermediaryDiscovery.js +39 -24
  28. package/dist/prices/RedundantSwapPrice.d.ts +26 -5
  29. package/dist/prices/RedundantSwapPrice.js +22 -2
  30. package/dist/prices/SingleSwapPrice.d.ts +10 -7
  31. package/dist/prices/SingleSwapPrice.js +11 -8
  32. package/dist/prices/SwapPriceWithChain.d.ts +56 -19
  33. package/dist/prices/SwapPriceWithChain.js +62 -25
  34. package/dist/prices/abstract/IPriceProvider.d.ts +4 -4
  35. package/dist/prices/abstract/IPriceProvider.js +1 -1
  36. package/dist/prices/abstract/ISwapPrice.d.ts +95 -46
  37. package/dist/prices/abstract/ISwapPrice.js +104 -56
  38. package/dist/prices/providers/BinancePriceProvider.d.ts +8 -1
  39. package/dist/prices/providers/BinancePriceProvider.js +8 -1
  40. package/dist/prices/providers/CoinGeckoPriceProvider.d.ts +7 -1
  41. package/dist/prices/providers/CoinGeckoPriceProvider.js +7 -1
  42. package/dist/prices/providers/CoinPaprikaPriceProvider.d.ts +7 -1
  43. package/dist/prices/providers/CoinPaprikaPriceProvider.js +7 -1
  44. package/dist/prices/providers/CustomPriceProvider.d.ts +12 -1
  45. package/dist/prices/providers/CustomPriceProvider.js +12 -1
  46. package/dist/prices/providers/KrakenPriceProvider.d.ts +10 -1
  47. package/dist/prices/providers/KrakenPriceProvider.js +10 -1
  48. package/dist/prices/providers/OKXPriceProvider.d.ts +7 -1
  49. package/dist/prices/providers/OKXPriceProvider.js +7 -1
  50. package/dist/prices/providers/abstract/ExchangePriceProvider.d.ts +3 -0
  51. package/dist/prices/providers/abstract/ExchangePriceProvider.js +3 -0
  52. package/dist/storage/IUnifiedStorage.d.ts +19 -7
  53. package/dist/storage/UnifiedSwapStorage.d.ts +33 -3
  54. package/dist/storage/UnifiedSwapStorage.js +29 -1
  55. package/dist/storage-browser/IndexedDBUnifiedStorage.d.ts +31 -7
  56. package/dist/storage-browser/IndexedDBUnifiedStorage.js +29 -6
  57. package/dist/storage-browser/LocalStorageManager.d.ts +25 -1
  58. package/dist/storage-browser/LocalStorageManager.js +25 -1
  59. package/dist/swapper/Swapper.d.ts +380 -226
  60. package/dist/swapper/Swapper.js +383 -349
  61. package/dist/swapper/SwapperFactory.d.ts +66 -18
  62. package/dist/swapper/SwapperFactory.js +24 -3
  63. package/dist/swapper/SwapperUtils.d.ts +75 -28
  64. package/dist/swapper/SwapperUtils.js +107 -60
  65. package/dist/swapper/SwapperWithChain.d.ts +286 -91
  66. package/dist/swapper/SwapperWithChain.js +218 -64
  67. package/dist/swapper/SwapperWithSigner.d.ts +229 -80
  68. package/dist/swapper/SwapperWithSigner.js +190 -44
  69. package/dist/swaps/IAddressSwap.d.ts +12 -3
  70. package/dist/swaps/IAddressSwap.js +3 -2
  71. package/dist/swaps/IBTCWalletSwap.d.ts +26 -8
  72. package/dist/swaps/IBTCWalletSwap.js +3 -2
  73. package/dist/swaps/IClaimableSwap.d.ts +38 -6
  74. package/dist/swaps/IClaimableSwap.js +3 -2
  75. package/dist/swaps/IClaimableSwapWrapper.d.ts +11 -1
  76. package/dist/swaps/IRefundableSwap.d.ts +31 -5
  77. package/dist/swaps/IRefundableSwap.js +3 -2
  78. package/dist/swaps/ISwap.d.ts +162 -24
  79. package/dist/swaps/ISwap.js +92 -35
  80. package/dist/swaps/ISwapWithGasDrop.d.ts +8 -2
  81. package/dist/swaps/ISwapWithGasDrop.js +2 -1
  82. package/dist/swaps/ISwapWrapper.d.ts +161 -52
  83. package/dist/swaps/ISwapWrapper.js +131 -73
  84. package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.d.ts +51 -6
  85. package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.js +22 -12
  86. package/dist/swaps/escrow_swaps/IEscrowSwap.d.ts +65 -12
  87. package/dist/swaps/escrow_swaps/IEscrowSwap.js +38 -19
  88. package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.d.ts +39 -9
  89. package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.js +30 -21
  90. package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.d.ts +31 -15
  91. package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.js +33 -18
  92. package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.d.ts +97 -28
  93. package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.js +91 -27
  94. package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.d.ts +22 -9
  95. package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.js +24 -11
  96. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.d.ts +278 -60
  97. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.js +519 -241
  98. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.d.ts +77 -26
  99. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.js +132 -50
  100. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.d.ts +313 -52
  101. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.js +544 -194
  102. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.d.ts +87 -26
  103. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.js +147 -58
  104. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.d.ts +222 -55
  105. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.js +462 -244
  106. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.d.ts +77 -23
  107. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.js +116 -46
  108. package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.d.ts +195 -58
  109. package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.js +324 -191
  110. package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.d.ts +30 -5
  111. package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.js +44 -19
  112. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.d.ts +61 -20
  113. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.js +75 -32
  114. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.d.ts +76 -50
  115. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.js +106 -101
  116. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.d.ts +37 -14
  117. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.js +66 -20
  118. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.d.ts +46 -17
  119. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.js +82 -27
  120. package/dist/swaps/spv_swaps/SpvFromBTCSwap.d.ts +350 -88
  121. package/dist/swaps/spv_swaps/SpvFromBTCSwap.js +482 -215
  122. package/dist/swaps/spv_swaps/SpvFromBTCWrapper.d.ts +76 -24
  123. package/dist/swaps/spv_swaps/SpvFromBTCWrapper.js +247 -124
  124. package/dist/swaps/trusted/ln/LnForGasSwap.d.ts +148 -20
  125. package/dist/swaps/trusted/ln/LnForGasSwap.js +175 -45
  126. package/dist/swaps/trusted/ln/LnForGasWrapper.d.ts +29 -10
  127. package/dist/swaps/trusted/ln/LnForGasWrapper.js +30 -11
  128. package/dist/swaps/trusted/onchain/OnchainForGasSwap.d.ts +202 -49
  129. package/dist/swaps/trusted/onchain/OnchainForGasSwap.js +232 -80
  130. package/dist/swaps/trusted/onchain/OnchainForGasWrapper.d.ts +34 -12
  131. package/dist/swaps/trusted/onchain/OnchainForGasWrapper.js +33 -14
  132. package/dist/types/AmountData.d.ts +2 -1
  133. package/dist/types/CustomPriceFunction.d.ts +8 -2
  134. package/dist/types/PriceInfoType.d.ts +4 -4
  135. package/dist/types/PriceInfoType.js +3 -3
  136. package/dist/types/SwapExecutionAction.d.ts +85 -4
  137. package/dist/types/SwapWithSigner.d.ts +5 -2
  138. package/dist/types/SwapWithSigner.js +5 -2
  139. package/dist/types/Token.d.ts +11 -5
  140. package/dist/types/Token.js +6 -3
  141. package/dist/types/TokenAmount.d.ts +3 -0
  142. package/dist/types/TokenAmount.js +2 -0
  143. package/dist/types/fees/Fee.d.ts +3 -2
  144. package/dist/types/fees/FeeBreakdown.d.ts +3 -2
  145. package/dist/types/fees/PercentagePPM.d.ts +4 -2
  146. package/dist/types/fees/PercentagePPM.js +2 -1
  147. package/dist/types/lnurl/LNURLPay.d.ts +20 -12
  148. package/dist/types/lnurl/LNURLPay.js +8 -4
  149. package/dist/types/lnurl/LNURLWithdraw.d.ts +17 -10
  150. package/dist/types/lnurl/LNURLWithdraw.js +8 -4
  151. package/dist/types/wallets/LightningInvoiceCreateService.d.ts +24 -0
  152. package/dist/types/wallets/LightningInvoiceCreateService.js +15 -0
  153. package/dist/types/wallets/MinimalBitcoinWalletInterface.d.ts +3 -1
  154. package/dist/types/wallets/MinimalLightningNetworkWalletInterface.d.ts +4 -2
  155. package/dist/utils/BitcoinUtils.d.ts +1 -0
  156. package/dist/utils/BitcoinUtils.js +5 -1
  157. package/dist/utils/SwapUtils.d.ts +58 -1
  158. package/dist/utils/SwapUtils.js +55 -1
  159. package/dist/utils/TokenUtils.d.ts +10 -2
  160. package/dist/utils/TokenUtils.js +12 -4
  161. package/package.json +3 -3
  162. package/src/bitcoin/coinselect2/utils.ts +6 -0
  163. package/src/bitcoin/wallet/BitcoinWallet.ts +41 -5
  164. package/src/bitcoin/wallet/IBitcoinWallet.ts +57 -2
  165. package/src/bitcoin/wallet/SingleAddressBitcoinWallet.ts +42 -6
  166. package/src/enums/FeeType.ts +8 -1
  167. package/src/enums/SwapAmountType.ts +7 -0
  168. package/src/enums/SwapDirection.ts +7 -0
  169. package/src/enums/SwapType.ts +62 -2
  170. package/src/errors/IntermediaryError.ts +4 -0
  171. package/src/errors/RequestError.ts +15 -1
  172. package/src/errors/UserError.ts +1 -0
  173. package/src/index.ts +12 -5
  174. package/src/intermediaries/Intermediary.ts +61 -14
  175. package/src/intermediaries/IntermediaryDiscovery.ts +69 -34
  176. package/src/prices/RedundantSwapPrice.ts +26 -6
  177. package/src/prices/SingleSwapPrice.ts +11 -8
  178. package/src/prices/SwapPriceWithChain.ts +63 -26
  179. package/src/prices/abstract/IPriceProvider.ts +4 -4
  180. package/src/prices/abstract/ISwapPrice.ts +115 -66
  181. package/src/prices/providers/BinancePriceProvider.ts +8 -1
  182. package/src/prices/providers/CoinGeckoPriceProvider.ts +7 -1
  183. package/src/prices/providers/CoinPaprikaPriceProvider.ts +7 -1
  184. package/src/prices/providers/CustomPriceProvider.ts +12 -1
  185. package/src/prices/providers/KrakenPriceProvider.ts +10 -1
  186. package/src/prices/providers/OKXPriceProvider.ts +7 -1
  187. package/src/prices/providers/abstract/ExchangePriceProvider.ts +3 -0
  188. package/src/storage/IUnifiedStorage.ts +19 -7
  189. package/src/storage/UnifiedSwapStorage.ts +33 -3
  190. package/src/storage-browser/IndexedDBUnifiedStorage.ts +31 -8
  191. package/src/storage-browser/LocalStorageManager.ts +25 -1
  192. package/src/swapper/Swapper.ts +599 -390
  193. package/src/swapper/SwapperFactory.ts +73 -24
  194. package/src/swapper/SwapperUtils.ts +107 -60
  195. package/src/swapper/SwapperWithChain.ts +320 -81
  196. package/src/swapper/SwapperWithSigner.ts +263 -56
  197. package/src/swaps/IAddressSwap.ts +13 -3
  198. package/src/swaps/IBTCWalletSwap.ts +26 -10
  199. package/src/swaps/IClaimableSwap.ts +41 -6
  200. package/src/swaps/IClaimableSwapWrapper.ts +11 -2
  201. package/src/swaps/IRefundableSwap.ts +34 -5
  202. package/src/swaps/ISwap.ts +224 -85
  203. package/src/swaps/ISwapWithGasDrop.ts +8 -2
  204. package/src/swaps/ISwapWrapper.ts +216 -98
  205. package/src/swaps/escrow_swaps/IEscrowSelfInitSwap.ts +64 -18
  206. package/src/swaps/escrow_swaps/IEscrowSwap.ts +83 -37
  207. package/src/swaps/escrow_swaps/IEscrowSwapWrapper.ts +61 -30
  208. package/src/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.ts +37 -19
  209. package/src/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.ts +123 -50
  210. package/src/swaps/escrow_swaps/frombtc/IFromBTCWrapper.ts +24 -11
  211. package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.ts +562 -258
  212. package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.ts +156 -62
  213. package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.ts +592 -227
  214. package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.ts +177 -74
  215. package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.ts +483 -245
  216. package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.ts +141 -59
  217. package/src/swaps/escrow_swaps/tobtc/IToBTCSwap.ts +350 -195
  218. package/src/swaps/escrow_swaps/tobtc/IToBTCWrapper.ts +48 -23
  219. package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.ts +87 -40
  220. package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.ts +110 -110
  221. package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.ts +89 -34
  222. package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.ts +101 -31
  223. package/src/swaps/spv_swaps/SpvFromBTCSwap.ts +556 -259
  224. package/src/swaps/spv_swaps/SpvFromBTCWrapper.ts +292 -148
  225. package/src/swaps/trusted/ln/LnForGasSwap.ts +186 -47
  226. package/src/swaps/trusted/ln/LnForGasWrapper.ts +34 -15
  227. package/src/swaps/trusted/onchain/OnchainForGasSwap.ts +262 -88
  228. package/src/swaps/trusted/onchain/OnchainForGasWrapper.ts +41 -19
  229. package/src/types/AmountData.ts +2 -1
  230. package/src/types/CustomPriceFunction.ts +8 -2
  231. package/src/types/PriceInfoType.ts +4 -4
  232. package/src/types/SwapExecutionAction.ts +97 -5
  233. package/src/types/SwapWithSigner.ts +8 -4
  234. package/src/types/Token.ts +12 -5
  235. package/src/types/TokenAmount.ts +3 -0
  236. package/src/types/fees/Fee.ts +3 -2
  237. package/src/types/fees/FeeBreakdown.ts +3 -2
  238. package/src/types/fees/PercentagePPM.ts +4 -2
  239. package/src/types/lnurl/LNURLPay.ts +20 -12
  240. package/src/types/lnurl/LNURLWithdraw.ts +17 -10
  241. package/src/types/wallets/LightningInvoiceCreateService.ts +30 -0
  242. package/src/types/wallets/MinimalBitcoinWalletInterface.ts +3 -1
  243. package/src/types/wallets/MinimalLightningNetworkWalletInterface.ts +4 -2
  244. package/src/utils/BitcoinUtils.ts +5 -0
  245. package/src/utils/SwapUtils.ts +63 -1
  246. package/src/utils/TokenUtils.ts +12 -4
  247. package/dist/bitcoin/BitcoinRpcWithAddressIndex.d.ts +0 -68
  248. package/dist/bitcoin/BitcoinRpcWithAddressIndex.js +0 -2
  249. package/dist/bitcoin/LightningNetworkApi.d.ts +0 -12
  250. package/dist/bitcoin/LightningNetworkApi.js +0 -2
  251. package/dist/bitcoin/mempool/MempoolApi.d.ts +0 -350
  252. package/dist/bitcoin/mempool/MempoolApi.js +0 -311
  253. package/dist/bitcoin/mempool/MempoolBitcoinBlock.d.ts +0 -44
  254. package/dist/bitcoin/mempool/MempoolBitcoinBlock.js +0 -48
  255. package/dist/bitcoin/mempool/MempoolBitcoinRpc.d.ts +0 -119
  256. package/dist/bitcoin/mempool/MempoolBitcoinRpc.js +0 -361
  257. package/dist/bitcoin/mempool/synchronizer/MempoolBtcRelaySynchronizer.d.ts +0 -22
  258. package/dist/bitcoin/mempool/synchronizer/MempoolBtcRelaySynchronizer.js +0 -105
  259. package/dist/errors/PaymentAuthError.d.ts +0 -11
  260. package/dist/errors/PaymentAuthError.js +0 -23
  261. package/src/errors/PaymentAuthError.ts +0 -26
@@ -1,13 +1,21 @@
1
1
  /**
2
- * Query parameters for storage operations
2
+ * Params for querying the storage
3
+ *
3
4
  * @category Storage
4
5
  */
5
6
  export type QueryParams = {
7
+ /**
8
+ * Key that should be matched
9
+ */
6
10
  key: string;
11
+ /**
12
+ * A value that the key needs to have, if an array is passed, the conditions are `OR`-ed
13
+ */
7
14
  value: any | any[];
8
15
  };
9
16
  /**
10
- * Base type for stored objects
17
+ * Base type for stored objects, every storage object MUST have an `id` field
18
+ *
11
19
  * @category Storage
12
20
  */
13
21
  export type UnifiedStoredObject = {
@@ -15,6 +23,7 @@ export type UnifiedStoredObject = {
15
23
  } & any;
16
24
  /**
17
25
  * Defines simple indexes (for queries that use a single key)
26
+ *
18
27
  * @category Storage
19
28
  */
20
29
  export type UnifiedStorageIndexes = readonly {
@@ -25,6 +34,7 @@ export type UnifiedStorageIndexes = readonly {
25
34
  }[];
26
35
  /**
27
36
  * Defines composite indexes (for queries that use multiple keys)
37
+ *
28
38
  * @category Storage
29
39
  */
30
40
  export type UnifiedStorageCompositeIndexes = readonly {
@@ -32,12 +42,14 @@ export type UnifiedStorageCompositeIndexes = readonly {
32
42
  unique: boolean;
33
43
  }[];
34
44
  /**
35
- * Interface for unified storage implementations
45
+ * Interface for a generic unified storage implementations
46
+ *
36
47
  * @category Storage
37
48
  */
38
49
  export interface IUnifiedStorage<I extends UnifiedStorageIndexes, C extends UnifiedStorageCompositeIndexes> {
39
50
  /**
40
51
  * Initializes the storage with given indexes and composite indexes
52
+ *
41
53
  * @param indexes
42
54
  * @param compositeIndexes
43
55
  */
@@ -52,22 +64,22 @@ export interface IUnifiedStorage<I extends UnifiedStorageIndexes, C extends Unif
52
64
  query(params: Array<Array<QueryParams>>): Promise<Array<UnifiedStoredObject>>;
53
65
  /**
54
66
  * Saves an object to storage, updating indexes as needed
55
- * @param value - Object to save (must have an id property)
67
+ * @param value Object to save (must have an id property)
56
68
  */
57
69
  save(value: UnifiedStoredObject): Promise<void>;
58
70
  /**
59
71
  * Saves multiple objects to storage in a batch operation
60
- * @param value - Array of objects to save
72
+ * @param value Array of objects to save
61
73
  */
62
74
  saveAll(value: UnifiedStoredObject[]): Promise<void>;
63
75
  /**
64
76
  * Removes an object from storage
65
- * @param value - Object to remove (must have an id property)
77
+ * @param value Object to remove (must have an id property)
66
78
  */
67
79
  remove(value: UnifiedStoredObject): Promise<void>;
68
80
  /**
69
81
  * Removes multiple objects from storage in a batch operation
70
- * @param value - Array of objects to remove
82
+ * @param value Array of objects to remove
71
83
  */
72
84
  removeAll(value: UnifiedStoredObject[]): Promise<void>;
73
85
  }
@@ -33,7 +33,8 @@ declare const indexes: readonly [{
33
33
  readonly nullable: true;
34
34
  }];
35
35
  /**
36
- * Index types for swap storage
36
+ * Simple index types for SDK swap storage
37
+ *
37
38
  * @category Storage
38
39
  */
39
40
  export type UnifiedSwapStorageIndexes = typeof indexes;
@@ -51,19 +52,31 @@ declare const compositeIndexes: readonly [{
51
52
  readonly unique: false;
52
53
  }];
53
54
  /**
54
- * Composite index types for swap storage
55
+ * Composite index types for SDK swap storage
56
+ *
55
57
  * @category Storage
56
58
  */
57
59
  export type UnifiedSwapStorageCompositeIndexes = typeof compositeIndexes;
58
60
  /**
59
- * Unified swap persistence layer with caching
61
+ * Unified swap persistence layer for the SDK utilizing an underlying {@link IUnifiedStorage} instance
62
+ * with optional in-memory caching via weak refs {@link WeakRef}
63
+ *
60
64
  * @category Storage
61
65
  */
62
66
  export declare class UnifiedSwapStorage<T extends ChainType> {
63
67
  readonly storage: IUnifiedStorage<UnifiedSwapStorageIndexes, UnifiedSwapStorageCompositeIndexes>;
64
68
  readonly weakRefCache: Map<string, WeakRef<ISwap<T>>>;
65
69
  readonly noWeakRefMap?: boolean;
70
+ /**
71
+ * @param storage Underlying storage persistence layer
72
+ * @param noWeakRefMap Whether to disable caching of the swap objects in the weak ref map, this
73
+ * should be set when you need multiple different clients accessing the same swap database (such
74
+ * as when running the SDK in a serverless environment like AWS or Azure)
75
+ */
66
76
  constructor(storage: IUnifiedStorage<UnifiedSwapStorageIndexes, UnifiedSwapStorageCompositeIndexes>, noWeakRefMap?: boolean);
77
+ /**
78
+ * Initializes the underlying storage
79
+ */
67
80
  init(): Promise<void>;
68
81
  /**
69
82
  * Params are specified in the following way:
@@ -74,9 +87,26 @@ export declare class UnifiedSwapStorage<T extends ChainType> {
74
87
  * @param reviver
75
88
  */
76
89
  query<S extends ISwap<T>>(params: Array<Array<QueryParams>>, reviver: (obj: any) => S | null | undefined): Promise<Array<S>>;
90
+ /**
91
+ * Saves the swap to storage, updating indexes as needed
92
+ *
93
+ * @param value Swap to save
94
+ */
77
95
  save<S extends ISwap<T>>(value: S): Promise<void>;
96
+ /**
97
+ * Saves multiple swaps to storage in a batch operation
98
+ * @param values Array of swaps to save
99
+ */
78
100
  saveAll<S extends ISwap<T>>(values: S[]): Promise<void>;
101
+ /**
102
+ * Removes a swap from storage
103
+ * @param value Swap to remove
104
+ */
79
105
  remove<S extends ISwap<T>>(value: S): Promise<void>;
106
+ /**
107
+ * Removes multiple swaps from storage in a batch operation
108
+ * @param values Array of swaps to remove
109
+ */
80
110
  removeAll<S extends ISwap<T>>(values: S[]): Promise<void>;
81
111
  }
82
112
  export {};
@@ -18,15 +18,26 @@ const compositeIndexes = [
18
18
  { keys: ["type", "initiator", "state"], unique: false }
19
19
  ];
20
20
  /**
21
- * Unified swap persistence layer with caching
21
+ * Unified swap persistence layer for the SDK utilizing an underlying {@link IUnifiedStorage} instance
22
+ * with optional in-memory caching via weak refs {@link WeakRef}
23
+ *
22
24
  * @category Storage
23
25
  */
24
26
  class UnifiedSwapStorage {
27
+ /**
28
+ * @param storage Underlying storage persistence layer
29
+ * @param noWeakRefMap Whether to disable caching of the swap objects in the weak ref map, this
30
+ * should be set when you need multiple different clients accessing the same swap database (such
31
+ * as when running the SDK in a serverless environment like AWS or Azure)
32
+ */
25
33
  constructor(storage, noWeakRefMap) {
26
34
  this.weakRefCache = new Map();
27
35
  this.storage = storage;
28
36
  this.noWeakRefMap = noWeakRefMap;
29
37
  }
38
+ /**
39
+ * Initializes the underlying storage
40
+ */
30
41
  init() {
31
42
  return this.storage.init(indexes, compositeIndexes);
32
43
  }
@@ -59,21 +70,38 @@ class UnifiedSwapStorage {
59
70
  });
60
71
  return result;
61
72
  }
73
+ /**
74
+ * Saves the swap to storage, updating indexes as needed
75
+ *
76
+ * @param value Swap to save
77
+ */
62
78
  save(value) {
63
79
  if (!this.noWeakRefMap)
64
80
  this.weakRefCache.set(value.getId(), new WeakRef(value));
65
81
  return this.storage.save(value.serialize());
66
82
  }
83
+ /**
84
+ * Saves multiple swaps to storage in a batch operation
85
+ * @param values Array of swaps to save
86
+ */
67
87
  saveAll(values) {
68
88
  if (!this.noWeakRefMap)
69
89
  values.forEach(value => this.weakRefCache.set(value.getId(), new WeakRef(value)));
70
90
  return this.storage.saveAll(values.map(obj => obj.serialize()));
71
91
  }
92
+ /**
93
+ * Removes a swap from storage
94
+ * @param value Swap to remove
95
+ */
72
96
  remove(value) {
73
97
  if (!this.noWeakRefMap)
74
98
  this.weakRefCache.delete(value.getId());
75
99
  return this.storage.remove(value.serialize());
76
100
  }
101
+ /**
102
+ * Removes multiple swaps from storage in a batch operation
103
+ * @param values Array of swaps to remove
104
+ */
77
105
  removeAll(values) {
78
106
  if (!this.noWeakRefMap)
79
107
  values.forEach(value => this.weakRefCache.delete(value.getId()));
@@ -9,31 +9,55 @@ export type QuerySetCondition = {
9
9
  };
10
10
  /**
11
11
  * Browser IndexedDB storage implementation
12
+ *
12
13
  * @category Storage
13
14
  */
14
15
  export declare class IndexedDBUnifiedStorage implements IUnifiedStorage<UnifiedSwapStorageIndexes, UnifiedStorageCompositeIndexes> {
15
16
  protected readonly logger: LoggerType;
16
- storageKey: string;
17
+ readonly storageKey: string;
17
18
  db?: IDBDatabase;
18
19
  constructor(storageKey: string);
19
20
  private tryMigrateLocalStorage;
20
21
  private tryMigrateOldIndexedDB;
22
+ /**
23
+ * Attempts to migrate the swap database from old implementations (either using prior version of IndexedDB or
24
+ * Local Storage)
25
+ *
26
+ * NOTE: Reviver also needs to update the swap to the latest version
27
+ *
28
+ * @param storageKeys An array of tuples of storage keys used for the corresponding swap types
29
+ * @param reviver Swap data deserializer
30
+ */
21
31
  tryMigrate(storageKeys: [string, SwapType][], reviver: (obj: any) => ISwap): Promise<boolean>;
22
32
  private executeTransaction;
23
33
  private executeTransactionArr;
24
34
  private executeTransactionWithCursor;
35
+ /**
36
+ * @inheritDoc
37
+ */
25
38
  init(): Promise<void>;
26
39
  /**
27
- * Params are specified in the following way:
28
- * - [[condition1, condition2]] - returns all rows where condition1 AND condition2 is met
29
- * - [[condition1], [condition2]] - returns all rows where condition1 OR condition2 is met
30
- * - [[condition1, condition2], [condition3]] - returns all rows where (condition1 AND condition2) OR condition3 is met
31
- * @param params
40
+ * @inheritDoc
32
41
  */
33
42
  query(params: Array<Array<QueryParams>>): Promise<Array<UnifiedStoredObject>>;
34
- querySingle(params: Array<QueryParams>): Promise<Array<UnifiedStoredObject>>;
43
+ /**
44
+ * @internal
45
+ */
46
+ protected querySingle(params: Array<QueryParams>): Promise<Array<UnifiedStoredObject>>;
47
+ /**
48
+ * @inheritDoc
49
+ */
35
50
  remove(object: UnifiedStoredObject): Promise<void>;
51
+ /**
52
+ * @inheritDoc
53
+ */
36
54
  removeAll(arr: UnifiedStoredObject[]): Promise<void>;
55
+ /**
56
+ * @inheritDoc
57
+ */
37
58
  save(object: UnifiedStoredObject): Promise<void>;
59
+ /**
60
+ * @inheritDoc
61
+ */
38
62
  saveAll(arr: UnifiedStoredObject[]): Promise<void>;
39
63
  }
@@ -47,6 +47,7 @@ const indexes = {
47
47
  };
48
48
  /**
49
49
  * Browser IndexedDB storage implementation
50
+ *
50
51
  * @category Storage
51
52
  */
52
53
  class IndexedDBUnifiedStorage {
@@ -130,7 +131,15 @@ class IndexedDBUnifiedStorage {
130
131
  return false;
131
132
  }
132
133
  }
133
- //NOTE: Reviver also needs to update the swap to the latest version
134
+ /**
135
+ * Attempts to migrate the swap database from old implementations (either using prior version of IndexedDB or
136
+ * Local Storage)
137
+ *
138
+ * NOTE: Reviver also needs to update the swap to the latest version
139
+ *
140
+ * @param storageKeys An array of tuples of storage keys used for the corresponding swap types
141
+ * @param reviver Swap data deserializer
142
+ */
134
143
  async tryMigrate(storageKeys, reviver) {
135
144
  let someMigrated = false;
136
145
  for (let storageKey of storageKeys) {
@@ -188,6 +197,9 @@ class IndexedDBUnifiedStorage {
188
197
  const result = await Promise.all(promises);
189
198
  return result.flat();
190
199
  }
200
+ /**
201
+ * @inheritDoc
202
+ */
191
203
  async init() {
192
204
  if (this.db == null) {
193
205
  this.db = await new Promise((resolve, reject) => {
@@ -206,11 +218,7 @@ class IndexedDBUnifiedStorage {
206
218
  }
207
219
  }
208
220
  /**
209
- * Params are specified in the following way:
210
- * - [[condition1, condition2]] - returns all rows where condition1 AND condition2 is met
211
- * - [[condition1], [condition2]] - returns all rows where condition1 OR condition2 is met
212
- * - [[condition1, condition2], [condition3]] - returns all rows where (condition1 AND condition2) OR condition3 is met
213
- * @param params
221
+ * @inheritDoc
214
222
  */
215
223
  async query(params) {
216
224
  if (params.length === 0)
@@ -219,6 +227,9 @@ class IndexedDBUnifiedStorage {
219
227
  const resultSet = new Set(results.flat()); //Deduplicate
220
228
  return Array.from(resultSet);
221
229
  }
230
+ /**
231
+ * @internal
232
+ */
222
233
  async querySingle(params) {
223
234
  if (params.length === 0) {
224
235
  return await this.executeTransaction((objectStore) => objectStore.getAll(), true);
@@ -250,10 +261,16 @@ class IndexedDBUnifiedStorage {
250
261
  return await this.executeTransactionWithCursor(objectStore => [objectStore.openCursor()], (val) => matches(setConditions, val));
251
262
  }
252
263
  }
264
+ /**
265
+ * @inheritDoc
266
+ */
253
267
  async remove(object) {
254
268
  await this.executeTransaction(store => store.delete(object.id), false)
255
269
  .catch(() => null);
256
270
  }
271
+ /**
272
+ * @inheritDoc
273
+ */
257
274
  async removeAll(arr) {
258
275
  if (arr.length === 0)
259
276
  return;
@@ -261,9 +278,15 @@ class IndexedDBUnifiedStorage {
261
278
  return store.delete(object.id);
262
279
  }), false);
263
280
  }
281
+ /**
282
+ * @inheritDoc
283
+ */
264
284
  async save(object) {
265
285
  await this.executeTransaction(store => store.put(object), false);
266
286
  }
287
+ /**
288
+ * @inheritDoc
289
+ */
267
290
  async saveAll(arr) {
268
291
  if (arr.length === 0)
269
292
  return;
@@ -1,6 +1,8 @@
1
1
  import { IStorageManager, StorageObject } from "@atomiqlabs/base";
2
2
  /**
3
- * StorageManager using browser's local storage API
3
+ * {@link IStorageManager} implementation using browser's local storage API, this is used as general purpose
4
+ * key-value storage, not used for storing swaps! See {@link IUnifiedStorage} for swap storage interface.
5
+ *
4
6
  * @category Storage
5
7
  */
6
8
  export declare class LocalStorageManager<T extends StorageObject> implements IStorageManager<T> {
@@ -11,15 +13,37 @@ export declare class LocalStorageManager<T extends StorageObject> implements ISt
11
13
  data: {
12
14
  [hash: string]: T;
13
15
  };
16
+ /**
17
+ * @param storageKey The key-value store is stored as JSON serialized parameter of the Local Storage under
18
+ * the specified `storageKey`
19
+ */
14
20
  constructor(storageKey: string);
21
+ /**
22
+ * @inheritDoc
23
+ */
15
24
  init(): Promise<void>;
25
+ /**
26
+ * @inheritDoc
27
+ */
16
28
  saveData(hash: string, object: T): Promise<void>;
29
+ /**
30
+ * @inheritDoc
31
+ */
17
32
  saveDataArr(arr: {
18
33
  id: string;
19
34
  object: T;
20
35
  }[]): Promise<void>;
36
+ /**
37
+ * @inheritDoc
38
+ */
21
39
  removeData(hash: string): Promise<void>;
40
+ /**
41
+ * @inheritDoc
42
+ */
22
43
  removeDataArr(hashArr: string[]): Promise<void>;
44
+ /**
45
+ * @inheritDoc
46
+ */
23
47
  loadData(type: new (data: any) => T): Promise<T[]>;
24
48
  private save;
25
49
  }
@@ -2,15 +2,24 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LocalStorageManager = void 0;
4
4
  /**
5
- * StorageManager using browser's local storage API
5
+ * {@link IStorageManager} implementation using browser's local storage API, this is used as general purpose
6
+ * key-value storage, not used for storing swaps! See {@link IUnifiedStorage} for swap storage interface.
7
+ *
6
8
  * @category Storage
7
9
  */
8
10
  class LocalStorageManager {
11
+ /**
12
+ * @param storageKey The key-value store is stored as JSON serialized parameter of the Local Storage under
13
+ * the specified `storageKey`
14
+ */
9
15
  constructor(storageKey) {
10
16
  this.rawData = {};
11
17
  this.data = {};
12
18
  this.storageKey = storageKey;
13
19
  }
20
+ /**
21
+ * @inheritDoc
22
+ */
14
23
  init() {
15
24
  const completedTxt = window.localStorage.getItem(this.storageKey);
16
25
  if (completedTxt != null) {
@@ -23,11 +32,17 @@ class LocalStorageManager {
23
32
  }
24
33
  return Promise.resolve();
25
34
  }
35
+ /**
36
+ * @inheritDoc
37
+ */
26
38
  saveData(hash, object) {
27
39
  this.data[hash] = object;
28
40
  this.rawData[hash] = object.serialize();
29
41
  return this.save();
30
42
  }
43
+ /**
44
+ * @inheritDoc
45
+ */
31
46
  saveDataArr(arr) {
32
47
  arr.forEach(e => {
33
48
  this.data[e.id] = e.object;
@@ -35,6 +50,9 @@ class LocalStorageManager {
35
50
  });
36
51
  return this.save();
37
52
  }
53
+ /**
54
+ * @inheritDoc
55
+ */
38
56
  removeData(hash) {
39
57
  if (this.rawData[hash] != null) {
40
58
  if (this.data[hash] != null)
@@ -44,6 +62,9 @@ class LocalStorageManager {
44
62
  }
45
63
  return Promise.resolve();
46
64
  }
65
+ /**
66
+ * @inheritDoc
67
+ */
47
68
  removeDataArr(hashArr) {
48
69
  hashArr.forEach(hash => {
49
70
  if (this.rawData[hash] != null) {
@@ -54,6 +75,9 @@ class LocalStorageManager {
54
75
  });
55
76
  return this.save();
56
77
  }
78
+ /**
79
+ * @inheritDoc
80
+ */
57
81
  loadData(type) {
58
82
  return Promise.resolve(Object.keys(this.rawData).map(e => {
59
83
  const deserialized = new type(this.rawData[e]);