@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.
- package/dist/bitcoin/coinselect2/utils.d.ts +6 -0
- package/dist/bitcoin/wallet/BitcoinWallet.d.ts +41 -5
- package/dist/bitcoin/wallet/BitcoinWallet.js +36 -1
- package/dist/bitcoin/wallet/IBitcoinWallet.d.ts +52 -2
- package/dist/bitcoin/wallet/IBitcoinWallet.js +2 -1
- package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.d.ts +42 -7
- package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.js +36 -1
- package/dist/enums/FeeType.d.ts +8 -1
- package/dist/enums/FeeType.js +8 -1
- package/dist/enums/SwapAmountType.d.ts +7 -0
- package/dist/enums/SwapAmountType.js +7 -0
- package/dist/enums/SwapDirection.d.ts +7 -0
- package/dist/enums/SwapDirection.js +7 -0
- package/dist/enums/SwapType.d.ts +62 -1
- package/dist/enums/SwapType.js +62 -1
- package/dist/errors/IntermediaryError.d.ts +4 -0
- package/dist/errors/IntermediaryError.js +1 -0
- package/dist/errors/RequestError.d.ts +15 -1
- package/dist/errors/RequestError.js +8 -0
- package/dist/errors/UserError.d.ts +1 -0
- package/dist/errors/UserError.js +1 -0
- package/dist/index.d.ts +5 -5
- package/dist/index.js +7 -6
- package/dist/intermediaries/Intermediary.d.ts +61 -14
- package/dist/intermediaries/Intermediary.js +38 -11
- package/dist/intermediaries/IntermediaryDiscovery.d.ts +62 -29
- package/dist/intermediaries/IntermediaryDiscovery.js +39 -24
- package/dist/prices/RedundantSwapPrice.d.ts +26 -5
- package/dist/prices/RedundantSwapPrice.js +22 -2
- package/dist/prices/SingleSwapPrice.d.ts +10 -7
- package/dist/prices/SingleSwapPrice.js +11 -8
- package/dist/prices/SwapPriceWithChain.d.ts +56 -19
- package/dist/prices/SwapPriceWithChain.js +62 -25
- package/dist/prices/abstract/IPriceProvider.d.ts +4 -4
- package/dist/prices/abstract/IPriceProvider.js +1 -1
- package/dist/prices/abstract/ISwapPrice.d.ts +95 -46
- package/dist/prices/abstract/ISwapPrice.js +104 -56
- package/dist/prices/providers/BinancePriceProvider.d.ts +8 -1
- package/dist/prices/providers/BinancePriceProvider.js +8 -1
- package/dist/prices/providers/CoinGeckoPriceProvider.d.ts +7 -1
- package/dist/prices/providers/CoinGeckoPriceProvider.js +7 -1
- package/dist/prices/providers/CoinPaprikaPriceProvider.d.ts +7 -1
- package/dist/prices/providers/CoinPaprikaPriceProvider.js +7 -1
- package/dist/prices/providers/CustomPriceProvider.d.ts +12 -1
- package/dist/prices/providers/CustomPriceProvider.js +12 -1
- package/dist/prices/providers/KrakenPriceProvider.d.ts +10 -1
- package/dist/prices/providers/KrakenPriceProvider.js +10 -1
- package/dist/prices/providers/OKXPriceProvider.d.ts +7 -1
- package/dist/prices/providers/OKXPriceProvider.js +7 -1
- package/dist/prices/providers/abstract/ExchangePriceProvider.d.ts +3 -0
- package/dist/prices/providers/abstract/ExchangePriceProvider.js +3 -0
- package/dist/storage/IUnifiedStorage.d.ts +19 -7
- package/dist/storage/UnifiedSwapStorage.d.ts +33 -3
- package/dist/storage/UnifiedSwapStorage.js +29 -1
- package/dist/storage-browser/IndexedDBUnifiedStorage.d.ts +31 -7
- package/dist/storage-browser/IndexedDBUnifiedStorage.js +29 -6
- package/dist/storage-browser/LocalStorageManager.d.ts +25 -1
- package/dist/storage-browser/LocalStorageManager.js +25 -1
- package/dist/swapper/Swapper.d.ts +380 -226
- package/dist/swapper/Swapper.js +383 -349
- package/dist/swapper/SwapperFactory.d.ts +66 -18
- package/dist/swapper/SwapperFactory.js +24 -3
- package/dist/swapper/SwapperUtils.d.ts +75 -28
- package/dist/swapper/SwapperUtils.js +107 -60
- package/dist/swapper/SwapperWithChain.d.ts +286 -91
- package/dist/swapper/SwapperWithChain.js +218 -64
- package/dist/swapper/SwapperWithSigner.d.ts +229 -80
- package/dist/swapper/SwapperWithSigner.js +190 -44
- package/dist/swaps/IAddressSwap.d.ts +12 -3
- package/dist/swaps/IAddressSwap.js +3 -2
- package/dist/swaps/IBTCWalletSwap.d.ts +26 -8
- package/dist/swaps/IBTCWalletSwap.js +3 -2
- package/dist/swaps/IClaimableSwap.d.ts +38 -6
- package/dist/swaps/IClaimableSwap.js +3 -2
- package/dist/swaps/IClaimableSwapWrapper.d.ts +11 -1
- package/dist/swaps/IRefundableSwap.d.ts +31 -5
- package/dist/swaps/IRefundableSwap.js +3 -2
- package/dist/swaps/ISwap.d.ts +162 -24
- package/dist/swaps/ISwap.js +92 -35
- package/dist/swaps/ISwapWithGasDrop.d.ts +8 -2
- package/dist/swaps/ISwapWithGasDrop.js +2 -1
- package/dist/swaps/ISwapWrapper.d.ts +161 -52
- package/dist/swaps/ISwapWrapper.js +131 -73
- package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.d.ts +51 -6
- package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.js +22 -12
- package/dist/swaps/escrow_swaps/IEscrowSwap.d.ts +65 -12
- package/dist/swaps/escrow_swaps/IEscrowSwap.js +38 -19
- package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.d.ts +39 -9
- package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.js +30 -21
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.d.ts +31 -15
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.js +33 -18
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.d.ts +97 -28
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.js +91 -27
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.d.ts +22 -9
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.js +24 -11
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.d.ts +278 -60
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.js +519 -241
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.d.ts +77 -26
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.js +132 -50
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.d.ts +313 -52
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.js +544 -194
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.d.ts +87 -26
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.js +147 -58
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.d.ts +222 -55
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.js +462 -244
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.d.ts +77 -23
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.js +116 -46
- package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.d.ts +195 -58
- package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.js +324 -191
- package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.d.ts +30 -5
- package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.js +44 -19
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.d.ts +61 -20
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.js +75 -32
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.d.ts +76 -50
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.js +106 -101
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.d.ts +37 -14
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.js +66 -20
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.d.ts +46 -17
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.js +82 -27
- package/dist/swaps/spv_swaps/SpvFromBTCSwap.d.ts +350 -88
- package/dist/swaps/spv_swaps/SpvFromBTCSwap.js +482 -215
- package/dist/swaps/spv_swaps/SpvFromBTCWrapper.d.ts +76 -24
- package/dist/swaps/spv_swaps/SpvFromBTCWrapper.js +247 -124
- package/dist/swaps/trusted/ln/LnForGasSwap.d.ts +148 -20
- package/dist/swaps/trusted/ln/LnForGasSwap.js +175 -45
- package/dist/swaps/trusted/ln/LnForGasWrapper.d.ts +29 -10
- package/dist/swaps/trusted/ln/LnForGasWrapper.js +30 -11
- package/dist/swaps/trusted/onchain/OnchainForGasSwap.d.ts +202 -49
- package/dist/swaps/trusted/onchain/OnchainForGasSwap.js +232 -80
- package/dist/swaps/trusted/onchain/OnchainForGasWrapper.d.ts +34 -12
- package/dist/swaps/trusted/onchain/OnchainForGasWrapper.js +33 -14
- package/dist/types/AmountData.d.ts +2 -1
- package/dist/types/CustomPriceFunction.d.ts +8 -2
- package/dist/types/PriceInfoType.d.ts +4 -4
- package/dist/types/PriceInfoType.js +3 -3
- package/dist/types/SwapExecutionAction.d.ts +85 -4
- package/dist/types/SwapWithSigner.d.ts +5 -2
- package/dist/types/SwapWithSigner.js +5 -2
- package/dist/types/Token.d.ts +11 -5
- package/dist/types/Token.js +6 -3
- package/dist/types/TokenAmount.d.ts +3 -0
- package/dist/types/TokenAmount.js +2 -0
- package/dist/types/fees/Fee.d.ts +3 -2
- package/dist/types/fees/FeeBreakdown.d.ts +3 -2
- package/dist/types/fees/PercentagePPM.d.ts +4 -2
- package/dist/types/fees/PercentagePPM.js +2 -1
- package/dist/types/lnurl/LNURLPay.d.ts +20 -12
- package/dist/types/lnurl/LNURLPay.js +8 -4
- package/dist/types/lnurl/LNURLWithdraw.d.ts +17 -10
- package/dist/types/lnurl/LNURLWithdraw.js +8 -4
- package/dist/types/wallets/LightningInvoiceCreateService.d.ts +24 -0
- package/dist/types/wallets/LightningInvoiceCreateService.js +15 -0
- package/dist/types/wallets/MinimalBitcoinWalletInterface.d.ts +3 -1
- package/dist/types/wallets/MinimalLightningNetworkWalletInterface.d.ts +4 -2
- package/dist/utils/BitcoinUtils.d.ts +1 -0
- package/dist/utils/BitcoinUtils.js +5 -1
- package/dist/utils/SwapUtils.d.ts +58 -1
- package/dist/utils/SwapUtils.js +55 -1
- package/dist/utils/TokenUtils.d.ts +10 -2
- package/dist/utils/TokenUtils.js +12 -4
- package/package.json +3 -3
- package/src/bitcoin/coinselect2/utils.ts +6 -0
- package/src/bitcoin/wallet/BitcoinWallet.ts +41 -5
- package/src/bitcoin/wallet/IBitcoinWallet.ts +57 -2
- package/src/bitcoin/wallet/SingleAddressBitcoinWallet.ts +42 -6
- package/src/enums/FeeType.ts +8 -1
- package/src/enums/SwapAmountType.ts +7 -0
- package/src/enums/SwapDirection.ts +7 -0
- package/src/enums/SwapType.ts +62 -2
- package/src/errors/IntermediaryError.ts +4 -0
- package/src/errors/RequestError.ts +15 -1
- package/src/errors/UserError.ts +1 -0
- package/src/index.ts +12 -5
- package/src/intermediaries/Intermediary.ts +61 -14
- package/src/intermediaries/IntermediaryDiscovery.ts +69 -34
- package/src/prices/RedundantSwapPrice.ts +26 -6
- package/src/prices/SingleSwapPrice.ts +11 -8
- package/src/prices/SwapPriceWithChain.ts +63 -26
- package/src/prices/abstract/IPriceProvider.ts +4 -4
- package/src/prices/abstract/ISwapPrice.ts +115 -66
- package/src/prices/providers/BinancePriceProvider.ts +8 -1
- package/src/prices/providers/CoinGeckoPriceProvider.ts +7 -1
- package/src/prices/providers/CoinPaprikaPriceProvider.ts +7 -1
- package/src/prices/providers/CustomPriceProvider.ts +12 -1
- package/src/prices/providers/KrakenPriceProvider.ts +10 -1
- package/src/prices/providers/OKXPriceProvider.ts +7 -1
- package/src/prices/providers/abstract/ExchangePriceProvider.ts +3 -0
- package/src/storage/IUnifiedStorage.ts +19 -7
- package/src/storage/UnifiedSwapStorage.ts +33 -3
- package/src/storage-browser/IndexedDBUnifiedStorage.ts +31 -8
- package/src/storage-browser/LocalStorageManager.ts +25 -1
- package/src/swapper/Swapper.ts +599 -390
- package/src/swapper/SwapperFactory.ts +73 -24
- package/src/swapper/SwapperUtils.ts +107 -60
- package/src/swapper/SwapperWithChain.ts +320 -81
- package/src/swapper/SwapperWithSigner.ts +263 -56
- package/src/swaps/IAddressSwap.ts +13 -3
- package/src/swaps/IBTCWalletSwap.ts +26 -10
- package/src/swaps/IClaimableSwap.ts +41 -6
- package/src/swaps/IClaimableSwapWrapper.ts +11 -2
- package/src/swaps/IRefundableSwap.ts +34 -5
- package/src/swaps/ISwap.ts +224 -85
- package/src/swaps/ISwapWithGasDrop.ts +8 -2
- package/src/swaps/ISwapWrapper.ts +216 -98
- package/src/swaps/escrow_swaps/IEscrowSelfInitSwap.ts +64 -18
- package/src/swaps/escrow_swaps/IEscrowSwap.ts +83 -37
- package/src/swaps/escrow_swaps/IEscrowSwapWrapper.ts +61 -30
- package/src/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.ts +37 -19
- package/src/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.ts +123 -50
- package/src/swaps/escrow_swaps/frombtc/IFromBTCWrapper.ts +24 -11
- package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.ts +562 -258
- package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.ts +156 -62
- package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.ts +592 -227
- package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.ts +177 -74
- package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.ts +483 -245
- package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.ts +141 -59
- package/src/swaps/escrow_swaps/tobtc/IToBTCSwap.ts +350 -195
- package/src/swaps/escrow_swaps/tobtc/IToBTCWrapper.ts +48 -23
- package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.ts +87 -40
- package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.ts +110 -110
- package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.ts +89 -34
- package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.ts +101 -31
- package/src/swaps/spv_swaps/SpvFromBTCSwap.ts +556 -259
- package/src/swaps/spv_swaps/SpvFromBTCWrapper.ts +292 -148
- package/src/swaps/trusted/ln/LnForGasSwap.ts +186 -47
- package/src/swaps/trusted/ln/LnForGasWrapper.ts +34 -15
- package/src/swaps/trusted/onchain/OnchainForGasSwap.ts +262 -88
- package/src/swaps/trusted/onchain/OnchainForGasWrapper.ts +41 -19
- package/src/types/AmountData.ts +2 -1
- package/src/types/CustomPriceFunction.ts +8 -2
- package/src/types/PriceInfoType.ts +4 -4
- package/src/types/SwapExecutionAction.ts +97 -5
- package/src/types/SwapWithSigner.ts +8 -4
- package/src/types/Token.ts +12 -5
- package/src/types/TokenAmount.ts +3 -0
- package/src/types/fees/Fee.ts +3 -2
- package/src/types/fees/FeeBreakdown.ts +3 -2
- package/src/types/fees/PercentagePPM.ts +4 -2
- package/src/types/lnurl/LNURLPay.ts +20 -12
- package/src/types/lnurl/LNURLWithdraw.ts +17 -10
- package/src/types/wallets/LightningInvoiceCreateService.ts +30 -0
- package/src/types/wallets/MinimalBitcoinWalletInterface.ts +3 -1
- package/src/types/wallets/MinimalLightningNetworkWalletInterface.ts +4 -2
- package/src/utils/BitcoinUtils.ts +5 -0
- package/src/utils/SwapUtils.ts +63 -1
- package/src/utils/TokenUtils.ts +12 -4
- package/dist/bitcoin/BitcoinRpcWithAddressIndex.d.ts +0 -68
- package/dist/bitcoin/BitcoinRpcWithAddressIndex.js +0 -2
- package/dist/bitcoin/LightningNetworkApi.d.ts +0 -12
- package/dist/bitcoin/LightningNetworkApi.js +0 -2
- package/dist/bitcoin/mempool/MempoolApi.d.ts +0 -350
- package/dist/bitcoin/mempool/MempoolApi.js +0 -311
- package/dist/bitcoin/mempool/MempoolBitcoinBlock.d.ts +0 -44
- package/dist/bitcoin/mempool/MempoolBitcoinBlock.js +0 -48
- package/dist/bitcoin/mempool/MempoolBitcoinRpc.d.ts +0 -119
- package/dist/bitcoin/mempool/MempoolBitcoinRpc.js +0 -361
- package/dist/bitcoin/mempool/synchronizer/MempoolBtcRelaySynchronizer.d.ts +0 -22
- package/dist/bitcoin/mempool/synchronizer/MempoolBtcRelaySynchronizer.js +0 -105
- package/dist/errors/PaymentAuthError.d.ts +0 -11
- package/dist/errors/PaymentAuthError.js +0 -23
- package/src/errors/PaymentAuthError.ts +0 -26
|
@@ -1,13 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
*
|
|
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
|
|
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
|
|
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
|
-
*
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
*
|
|
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
|
-
*
|
|
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
|
-
*
|
|
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]);
|