@atomiqlabs/sdk 5.0.0-dev.4 → 5.0.0-dev.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/LICENSE +201 -201
- package/README.md +1242 -1242
- package/dist/SmartChainAssets.d.ts +93 -93
- package/dist/SmartChainAssets.js +95 -95
- package/dist/SwapperFactory.d.ts +51 -51
- package/dist/SwapperFactory.js +110 -110
- package/dist/Utils.d.ts +11 -11
- package/dist/Utils.js +37 -37
- package/dist/fs-storage/FileSystemStorageManager.d.ts +15 -15
- package/dist/fs-storage/FileSystemStorageManager.js +60 -60
- package/dist/fs-storage/index.d.ts +1 -1
- package/dist/fs-storage/index.js +17 -17
- package/dist/index.d.ts +5 -5
- package/dist/index.js +21 -21
- package/dist/storage/LocalStorageManager.d.ts +24 -24
- package/dist/storage/LocalStorageManager.js +68 -68
- package/package.json +32 -32
- package/src/SmartChainAssets.js +75 -75
- package/src/SmartChainAssets.ts +96 -96
- package/src/SwapperFactory.js +120 -120
- package/src/SwapperFactory.ts +203 -203
- package/src/Utils.js +37 -37
- package/src/Utils.ts +31 -31
- package/src/fs-storage/FileSystemStorageManager.ts +71 -71
- package/src/fs-storage/index.ts +1 -1
- package/src/index.js +21 -21
- package/src/index.ts +5 -5
- package/src/storage/LocalStorageManager.js +72 -72
- package/src/storage/LocalStorageManager.ts +81 -81
package/dist/SwapperFactory.js
CHANGED
|
@@ -1,110 +1,110 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SwapperFactory = void 0;
|
|
4
|
-
const base_1 = require("@atomiqlabs/base");
|
|
5
|
-
const sdk_lib_1 = require("@atomiqlabs/sdk-lib");
|
|
6
|
-
const SmartChainAssets_1 = require("./SmartChainAssets");
|
|
7
|
-
const LocalStorageManager_1 = require("./storage/LocalStorageManager");
|
|
8
|
-
const messenger_nostr_1 = require("@atomiqlabs/messenger-nostr");
|
|
9
|
-
const registries = {
|
|
10
|
-
[base_1.BitcoinNetwork.MAINNET]: "https://api.github.com/repos/adambor/SolLightning-registry/contents/registry-mainnet.json?ref=main",
|
|
11
|
-
[base_1.BitcoinNetwork.TESTNET]: "https://api.github.com/repos/adambor/SolLightning-registry/contents/registry.json?ref=main",
|
|
12
|
-
[base_1.BitcoinNetwork.TESTNET4]: "https://api.github.com/repos/adambor/SolLightning-registry/contents/registry-testnet4.json?ref=main"
|
|
13
|
-
};
|
|
14
|
-
const trustedIntermediaries = {
|
|
15
|
-
[base_1.BitcoinNetwork.MAINNET]: "https://node3.gethopa.com:34100",
|
|
16
|
-
[base_1.BitcoinNetwork.TESTNET]: "https://node3.gethopa.com:24100"
|
|
17
|
-
};
|
|
18
|
-
const mempoolUrls = {
|
|
19
|
-
[base_1.BitcoinNetwork.MAINNET]: [
|
|
20
|
-
"https://mempool.space/api/",
|
|
21
|
-
"https://mempool.fra.mempool.space/api/",
|
|
22
|
-
"https://mempool.va1.mempool.space/api/",
|
|
23
|
-
"https://mempool.tk7.mempool.space/api/"
|
|
24
|
-
],
|
|
25
|
-
[base_1.BitcoinNetwork.TESTNET]: [
|
|
26
|
-
"https://mempool.space/testnet/api/",
|
|
27
|
-
"https://mempool.fra.mempool.space/testnet/api/",
|
|
28
|
-
"https://mempool.va1.mempool.space/testnet/api/",
|
|
29
|
-
"https://mempool.tk7.mempool.space/testnet/api/"
|
|
30
|
-
],
|
|
31
|
-
[base_1.BitcoinNetwork.TESTNET4]: [
|
|
32
|
-
"https://mempool.space/testnet4/api/",
|
|
33
|
-
"https://mempool.fra.mempool.space/testnet4/api/",
|
|
34
|
-
"https://mempool.va1.mempool.space/testnet4/api/",
|
|
35
|
-
"https://mempool.tk7.mempool.space/testnet4/api/"
|
|
36
|
-
]
|
|
37
|
-
};
|
|
38
|
-
const nostrUrls = [
|
|
39
|
-
"wss://relay.damus.io", "wss://nostr.einundzwanzig.space", "wss://nostr.mutinywallet.com"
|
|
40
|
-
];
|
|
41
|
-
class SwapperFactory {
|
|
42
|
-
constructor(initializers) {
|
|
43
|
-
this.initializers = initializers;
|
|
44
|
-
this.Tokens = {
|
|
45
|
-
BITCOIN: sdk_lib_1.BitcoinTokens
|
|
46
|
-
};
|
|
47
|
-
this.TokenResolver = {};
|
|
48
|
-
this.initializers = initializers;
|
|
49
|
-
initializers.forEach(initializer => {
|
|
50
|
-
const addressMap = {};
|
|
51
|
-
this.Tokens[initializer.chainId] = {};
|
|
52
|
-
for (let ticker in initializer.tokens) {
|
|
53
|
-
const assetData = initializer.tokens[ticker];
|
|
54
|
-
this.Tokens[initializer.chainId][ticker] = addressMap[assetData.address] = {
|
|
55
|
-
chain: "SC",
|
|
56
|
-
chainId: initializer.chainId,
|
|
57
|
-
address: assetData.address,
|
|
58
|
-
name: SmartChainAssets_1.SmartChainAssets[ticker].name,
|
|
59
|
-
decimals: assetData.decimals,
|
|
60
|
-
displayDecimals: assetData.displayDecimals,
|
|
61
|
-
ticker
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
this.TokenResolver[initializer.chainId] = {
|
|
65
|
-
getToken: (address) => addressMap[address]
|
|
66
|
-
};
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
newSwapper(options) {
|
|
70
|
-
options.bitcoinNetwork ?? (options.bitcoinNetwork = base_1.BitcoinNetwork.MAINNET);
|
|
71
|
-
options.storagePrefix ?? (options.storagePrefix = "atomiqsdk-" + options.bitcoinNetwork + "-");
|
|
72
|
-
options.messenger ?? (options.messenger = new messenger_nostr_1.NostrMessenger(options.bitcoinNetwork, nostrUrls));
|
|
73
|
-
options.defaultTrustedIntermediaryUrl ?? (options.defaultTrustedIntermediaryUrl = trustedIntermediaries[options.bitcoinNetwork]);
|
|
74
|
-
options.registryUrl ?? (options.registryUrl = registries[options.bitcoinNetwork]);
|
|
75
|
-
const mempoolApi = options.mempoolApi ?? new sdk_lib_1.MempoolBitcoinRpc(mempoolUrls[options.bitcoinNetwork]);
|
|
76
|
-
const bitcoinRpc = mempoolApi instanceof sdk_lib_1.MempoolBitcoinRpc ? mempoolApi : new sdk_lib_1.MempoolBitcoinRpc(mempoolApi);
|
|
77
|
-
const pricingAssets = [];
|
|
78
|
-
Object.keys(SmartChainAssets_1.SmartChainAssets).forEach((ticker) => {
|
|
79
|
-
const chains = {};
|
|
80
|
-
for (let { tokens, chainId } of this.initializers) {
|
|
81
|
-
if (tokens[ticker] != null)
|
|
82
|
-
chains[chainId] = tokens[ticker];
|
|
83
|
-
}
|
|
84
|
-
const assetData = SmartChainAssets_1.SmartChainAssets[ticker];
|
|
85
|
-
pricingAssets.push({
|
|
86
|
-
...assetData.pricing,
|
|
87
|
-
chains,
|
|
88
|
-
ticker,
|
|
89
|
-
name: assetData.name
|
|
90
|
-
});
|
|
91
|
-
});
|
|
92
|
-
options.chainStorageCtor ?? (options.chainStorageCtor = (name) => new LocalStorageManager_1.LocalStorageManager(name));
|
|
93
|
-
const chains = {};
|
|
94
|
-
for (let { initializer, chainId } of this.initializers) {
|
|
95
|
-
if (options.chains[chainId] == null)
|
|
96
|
-
continue;
|
|
97
|
-
chains[chainId] = initializer(options.chains[chainId], bitcoinRpc, options.bitcoinNetwork, options.chainStorageCtor);
|
|
98
|
-
}
|
|
99
|
-
const swapPricing = options.getPriceFn != null ?
|
|
100
|
-
new sdk_lib_1.SingleSwapPrice(options.pricingFeeDifferencePPM ?? 10000n, new sdk_lib_1.CustomPriceProvider(pricingAssets.map(val => {
|
|
101
|
-
return {
|
|
102
|
-
coinId: val.ticker,
|
|
103
|
-
chains: val.chains
|
|
104
|
-
};
|
|
105
|
-
}), options.getPriceFn)) :
|
|
106
|
-
sdk_lib_1.RedundantSwapPrice.createFromTokenMap(options.pricingFeeDifferencePPM ?? 10000n, pricingAssets);
|
|
107
|
-
return new sdk_lib_1.Swapper(bitcoinRpc, chains, swapPricing, pricingAssets, options.messenger, options);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
exports.SwapperFactory = SwapperFactory;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SwapperFactory = void 0;
|
|
4
|
+
const base_1 = require("@atomiqlabs/base");
|
|
5
|
+
const sdk_lib_1 = require("@atomiqlabs/sdk-lib");
|
|
6
|
+
const SmartChainAssets_1 = require("./SmartChainAssets");
|
|
7
|
+
const LocalStorageManager_1 = require("./storage/LocalStorageManager");
|
|
8
|
+
const messenger_nostr_1 = require("@atomiqlabs/messenger-nostr");
|
|
9
|
+
const registries = {
|
|
10
|
+
[base_1.BitcoinNetwork.MAINNET]: "https://api.github.com/repos/adambor/SolLightning-registry/contents/registry-mainnet.json?ref=main",
|
|
11
|
+
[base_1.BitcoinNetwork.TESTNET]: "https://api.github.com/repos/adambor/SolLightning-registry/contents/registry.json?ref=main",
|
|
12
|
+
[base_1.BitcoinNetwork.TESTNET4]: "https://api.github.com/repos/adambor/SolLightning-registry/contents/registry-testnet4.json?ref=main"
|
|
13
|
+
};
|
|
14
|
+
const trustedIntermediaries = {
|
|
15
|
+
[base_1.BitcoinNetwork.MAINNET]: "https://node3.gethopa.com:34100",
|
|
16
|
+
[base_1.BitcoinNetwork.TESTNET]: "https://node3.gethopa.com:24100"
|
|
17
|
+
};
|
|
18
|
+
const mempoolUrls = {
|
|
19
|
+
[base_1.BitcoinNetwork.MAINNET]: [
|
|
20
|
+
"https://mempool.space/api/",
|
|
21
|
+
"https://mempool.fra.mempool.space/api/",
|
|
22
|
+
"https://mempool.va1.mempool.space/api/",
|
|
23
|
+
"https://mempool.tk7.mempool.space/api/"
|
|
24
|
+
],
|
|
25
|
+
[base_1.BitcoinNetwork.TESTNET]: [
|
|
26
|
+
"https://mempool.space/testnet/api/",
|
|
27
|
+
"https://mempool.fra.mempool.space/testnet/api/",
|
|
28
|
+
"https://mempool.va1.mempool.space/testnet/api/",
|
|
29
|
+
"https://mempool.tk7.mempool.space/testnet/api/"
|
|
30
|
+
],
|
|
31
|
+
[base_1.BitcoinNetwork.TESTNET4]: [
|
|
32
|
+
"https://mempool.space/testnet4/api/",
|
|
33
|
+
"https://mempool.fra.mempool.space/testnet4/api/",
|
|
34
|
+
"https://mempool.va1.mempool.space/testnet4/api/",
|
|
35
|
+
"https://mempool.tk7.mempool.space/testnet4/api/"
|
|
36
|
+
]
|
|
37
|
+
};
|
|
38
|
+
const nostrUrls = [
|
|
39
|
+
"wss://relay.damus.io", "wss://nostr.einundzwanzig.space", "wss://nostr.mutinywallet.com"
|
|
40
|
+
];
|
|
41
|
+
class SwapperFactory {
|
|
42
|
+
constructor(initializers) {
|
|
43
|
+
this.initializers = initializers;
|
|
44
|
+
this.Tokens = {
|
|
45
|
+
BITCOIN: sdk_lib_1.BitcoinTokens
|
|
46
|
+
};
|
|
47
|
+
this.TokenResolver = {};
|
|
48
|
+
this.initializers = initializers;
|
|
49
|
+
initializers.forEach(initializer => {
|
|
50
|
+
const addressMap = {};
|
|
51
|
+
this.Tokens[initializer.chainId] = {};
|
|
52
|
+
for (let ticker in initializer.tokens) {
|
|
53
|
+
const assetData = initializer.tokens[ticker];
|
|
54
|
+
this.Tokens[initializer.chainId][ticker] = addressMap[assetData.address] = {
|
|
55
|
+
chain: "SC",
|
|
56
|
+
chainId: initializer.chainId,
|
|
57
|
+
address: assetData.address,
|
|
58
|
+
name: SmartChainAssets_1.SmartChainAssets[ticker].name,
|
|
59
|
+
decimals: assetData.decimals,
|
|
60
|
+
displayDecimals: assetData.displayDecimals,
|
|
61
|
+
ticker
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
this.TokenResolver[initializer.chainId] = {
|
|
65
|
+
getToken: (address) => addressMap[address]
|
|
66
|
+
};
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
newSwapper(options) {
|
|
70
|
+
options.bitcoinNetwork ?? (options.bitcoinNetwork = base_1.BitcoinNetwork.MAINNET);
|
|
71
|
+
options.storagePrefix ?? (options.storagePrefix = "atomiqsdk-" + options.bitcoinNetwork + "-");
|
|
72
|
+
options.messenger ?? (options.messenger = new messenger_nostr_1.NostrMessenger(options.bitcoinNetwork, nostrUrls));
|
|
73
|
+
options.defaultTrustedIntermediaryUrl ?? (options.defaultTrustedIntermediaryUrl = trustedIntermediaries[options.bitcoinNetwork]);
|
|
74
|
+
options.registryUrl ?? (options.registryUrl = registries[options.bitcoinNetwork]);
|
|
75
|
+
const mempoolApi = options.mempoolApi ?? new sdk_lib_1.MempoolBitcoinRpc(mempoolUrls[options.bitcoinNetwork]);
|
|
76
|
+
const bitcoinRpc = mempoolApi instanceof sdk_lib_1.MempoolBitcoinRpc ? mempoolApi : new sdk_lib_1.MempoolBitcoinRpc(mempoolApi);
|
|
77
|
+
const pricingAssets = [];
|
|
78
|
+
Object.keys(SmartChainAssets_1.SmartChainAssets).forEach((ticker) => {
|
|
79
|
+
const chains = {};
|
|
80
|
+
for (let { tokens, chainId } of this.initializers) {
|
|
81
|
+
if (tokens[ticker] != null)
|
|
82
|
+
chains[chainId] = tokens[ticker];
|
|
83
|
+
}
|
|
84
|
+
const assetData = SmartChainAssets_1.SmartChainAssets[ticker];
|
|
85
|
+
pricingAssets.push({
|
|
86
|
+
...assetData.pricing,
|
|
87
|
+
chains,
|
|
88
|
+
ticker,
|
|
89
|
+
name: assetData.name
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
options.chainStorageCtor ?? (options.chainStorageCtor = (name) => new LocalStorageManager_1.LocalStorageManager(name));
|
|
93
|
+
const chains = {};
|
|
94
|
+
for (let { initializer, chainId } of this.initializers) {
|
|
95
|
+
if (options.chains[chainId] == null)
|
|
96
|
+
continue;
|
|
97
|
+
chains[chainId] = initializer(options.chains[chainId], bitcoinRpc, options.bitcoinNetwork, options.chainStorageCtor);
|
|
98
|
+
}
|
|
99
|
+
const swapPricing = options.getPriceFn != null ?
|
|
100
|
+
new sdk_lib_1.SingleSwapPrice(options.pricingFeeDifferencePPM ?? 10000n, new sdk_lib_1.CustomPriceProvider(pricingAssets.map(val => {
|
|
101
|
+
return {
|
|
102
|
+
coinId: val.ticker,
|
|
103
|
+
chains: val.chains
|
|
104
|
+
};
|
|
105
|
+
}), options.getPriceFn)) :
|
|
106
|
+
sdk_lib_1.RedundantSwapPrice.createFromTokenMap(options.pricingFeeDifferencePPM ?? 10000n, pricingAssets);
|
|
107
|
+
return new sdk_lib_1.Swapper(bitcoinRpc, chains, swapPricing, pricingAssets, options.messenger, options);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
exports.SwapperFactory = SwapperFactory;
|
package/dist/Utils.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { Token } from "@atomiqlabs/sdk-lib";
|
|
2
|
-
export declare function toHumanReadableString(amount: bigint, currencySpec: Token): string;
|
|
3
|
-
export declare function fromHumanReadableString(amount: string, currencySpec: Token): bigint;
|
|
4
|
-
/**
|
|
5
|
-
* Returns an abort signal that aborts after a specified timeout in milliseconds
|
|
6
|
-
*
|
|
7
|
-
* @param timeout Milliseconds to wait
|
|
8
|
-
* @param abortReason Abort with this abort reason
|
|
9
|
-
* @param abortSignal Abort signal to extend
|
|
10
|
-
*/
|
|
11
|
-
export declare function timeoutSignal(timeout: number, abortReason?: any, abortSignal?: AbortSignal): AbortSignal;
|
|
1
|
+
import { Token } from "@atomiqlabs/sdk-lib";
|
|
2
|
+
export declare function toHumanReadableString(amount: bigint, currencySpec: Token): string;
|
|
3
|
+
export declare function fromHumanReadableString(amount: string, currencySpec: Token): bigint;
|
|
4
|
+
/**
|
|
5
|
+
* Returns an abort signal that aborts after a specified timeout in milliseconds
|
|
6
|
+
*
|
|
7
|
+
* @param timeout Milliseconds to wait
|
|
8
|
+
* @param abortReason Abort with this abort reason
|
|
9
|
+
* @param abortSignal Abort signal to extend
|
|
10
|
+
*/
|
|
11
|
+
export declare function timeoutSignal(timeout: number, abortReason?: any, abortSignal?: AbortSignal): AbortSignal;
|
package/dist/Utils.js
CHANGED
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.timeoutSignal = exports.fromHumanReadableString = exports.toHumanReadableString = void 0;
|
|
4
|
-
const sdk_lib_1 = require("@atomiqlabs/sdk-lib");
|
|
5
|
-
function toHumanReadableString(amount, currencySpec) {
|
|
6
|
-
if (amount == null)
|
|
7
|
-
return null;
|
|
8
|
-
return (0, sdk_lib_1.toDecimal)(amount, currencySpec.decimals, undefined, currencySpec.displayDecimals);
|
|
9
|
-
}
|
|
10
|
-
exports.toHumanReadableString = toHumanReadableString;
|
|
11
|
-
function fromHumanReadableString(amount, currencySpec) {
|
|
12
|
-
if (amount === "" || amount == null)
|
|
13
|
-
return null;
|
|
14
|
-
return (0, sdk_lib_1.fromDecimal)(amount, currencySpec.decimals);
|
|
15
|
-
}
|
|
16
|
-
exports.fromHumanReadableString = fromHumanReadableString;
|
|
17
|
-
/**
|
|
18
|
-
* Returns an abort signal that aborts after a specified timeout in milliseconds
|
|
19
|
-
*
|
|
20
|
-
* @param timeout Milliseconds to wait
|
|
21
|
-
* @param abortReason Abort with this abort reason
|
|
22
|
-
* @param abortSignal Abort signal to extend
|
|
23
|
-
*/
|
|
24
|
-
function timeoutSignal(timeout, abortReason, abortSignal) {
|
|
25
|
-
if (timeout == null)
|
|
26
|
-
return abortSignal;
|
|
27
|
-
const abortController = new AbortController();
|
|
28
|
-
const timeoutHandle = setTimeout(() => abortController.abort(abortReason || new Error("Timed out")), timeout);
|
|
29
|
-
if (abortSignal != null) {
|
|
30
|
-
abortSignal.addEventListener("abort", () => {
|
|
31
|
-
clearTimeout(timeoutHandle);
|
|
32
|
-
abortController.abort(abortSignal.reason);
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
return abortController.signal;
|
|
36
|
-
}
|
|
37
|
-
exports.timeoutSignal = timeoutSignal;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.timeoutSignal = exports.fromHumanReadableString = exports.toHumanReadableString = void 0;
|
|
4
|
+
const sdk_lib_1 = require("@atomiqlabs/sdk-lib");
|
|
5
|
+
function toHumanReadableString(amount, currencySpec) {
|
|
6
|
+
if (amount == null)
|
|
7
|
+
return null;
|
|
8
|
+
return (0, sdk_lib_1.toDecimal)(amount, currencySpec.decimals, undefined, currencySpec.displayDecimals);
|
|
9
|
+
}
|
|
10
|
+
exports.toHumanReadableString = toHumanReadableString;
|
|
11
|
+
function fromHumanReadableString(amount, currencySpec) {
|
|
12
|
+
if (amount === "" || amount == null)
|
|
13
|
+
return null;
|
|
14
|
+
return (0, sdk_lib_1.fromDecimal)(amount, currencySpec.decimals);
|
|
15
|
+
}
|
|
16
|
+
exports.fromHumanReadableString = fromHumanReadableString;
|
|
17
|
+
/**
|
|
18
|
+
* Returns an abort signal that aborts after a specified timeout in milliseconds
|
|
19
|
+
*
|
|
20
|
+
* @param timeout Milliseconds to wait
|
|
21
|
+
* @param abortReason Abort with this abort reason
|
|
22
|
+
* @param abortSignal Abort signal to extend
|
|
23
|
+
*/
|
|
24
|
+
function timeoutSignal(timeout, abortReason, abortSignal) {
|
|
25
|
+
if (timeout == null)
|
|
26
|
+
return abortSignal;
|
|
27
|
+
const abortController = new AbortController();
|
|
28
|
+
const timeoutHandle = setTimeout(() => abortController.abort(abortReason || new Error("Timed out")), timeout);
|
|
29
|
+
if (abortSignal != null) {
|
|
30
|
+
abortSignal.addEventListener("abort", () => {
|
|
31
|
+
clearTimeout(timeoutHandle);
|
|
32
|
+
abortController.abort(abortSignal.reason);
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
return abortController.signal;
|
|
36
|
+
}
|
|
37
|
+
exports.timeoutSignal = timeoutSignal;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { StorageObject, IStorageManager } from "@atomiqlabs/base";
|
|
2
|
-
/**
|
|
3
|
-
* StorageManager using local filesystem to persists data, creates a new file for every save object
|
|
4
|
-
*/
|
|
5
|
-
export declare class FileSystemStorageManager<T extends StorageObject> implements IStorageManager<T> {
|
|
6
|
-
private readonly directory;
|
|
7
|
-
data: {
|
|
8
|
-
[key: string]: T;
|
|
9
|
-
};
|
|
10
|
-
constructor(directory: string);
|
|
11
|
-
init(): Promise<void>;
|
|
12
|
-
saveData(hash: string, object: T): Promise<void>;
|
|
13
|
-
removeData(hash: string): Promise<void>;
|
|
14
|
-
loadData(type: new (data: any) => T): Promise<T[]>;
|
|
15
|
-
}
|
|
1
|
+
import { StorageObject, IStorageManager } from "@atomiqlabs/base";
|
|
2
|
+
/**
|
|
3
|
+
* StorageManager using local filesystem to persists data, creates a new file for every save object
|
|
4
|
+
*/
|
|
5
|
+
export declare class FileSystemStorageManager<T extends StorageObject> implements IStorageManager<T> {
|
|
6
|
+
private readonly directory;
|
|
7
|
+
data: {
|
|
8
|
+
[key: string]: T;
|
|
9
|
+
};
|
|
10
|
+
constructor(directory: string);
|
|
11
|
+
init(): Promise<void>;
|
|
12
|
+
saveData(hash: string, object: T): Promise<void>;
|
|
13
|
+
removeData(hash: string): Promise<void>;
|
|
14
|
+
loadData(type: new (data: any) => T): Promise<T[]>;
|
|
15
|
+
}
|
|
@@ -1,60 +1,60 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FileSystemStorageManager = void 0;
|
|
4
|
-
const fs = require("fs/promises");
|
|
5
|
-
/**
|
|
6
|
-
* StorageManager using local filesystem to persists data, creates a new file for every save object
|
|
7
|
-
*/
|
|
8
|
-
class FileSystemStorageManager {
|
|
9
|
-
constructor(directory) {
|
|
10
|
-
this.data = {};
|
|
11
|
-
this.directory = directory;
|
|
12
|
-
}
|
|
13
|
-
async init() {
|
|
14
|
-
try {
|
|
15
|
-
await fs.mkdir(this.directory);
|
|
16
|
-
}
|
|
17
|
-
catch (e) { }
|
|
18
|
-
}
|
|
19
|
-
async saveData(hash, object) {
|
|
20
|
-
try {
|
|
21
|
-
await fs.mkdir(this.directory);
|
|
22
|
-
}
|
|
23
|
-
catch (e) { }
|
|
24
|
-
this.data[hash] = object;
|
|
25
|
-
const cpy = object.serialize();
|
|
26
|
-
await fs.writeFile(this.directory + "/" + hash + ".json", JSON.stringify(cpy));
|
|
27
|
-
}
|
|
28
|
-
async removeData(hash) {
|
|
29
|
-
const paymentHash = hash;
|
|
30
|
-
try {
|
|
31
|
-
if (this.data[paymentHash] != null)
|
|
32
|
-
delete this.data[paymentHash];
|
|
33
|
-
await fs.rm(this.directory + "/" + paymentHash + ".json");
|
|
34
|
-
}
|
|
35
|
-
catch (e) {
|
|
36
|
-
console.error("FileSystemStorageManager: removeData(): Error: ", e);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
async loadData(type) {
|
|
40
|
-
let files;
|
|
41
|
-
try {
|
|
42
|
-
files = await fs.readdir(this.directory);
|
|
43
|
-
}
|
|
44
|
-
catch (e) {
|
|
45
|
-
console.error("FileSystemStorageManager: loadData(): Error: ", e);
|
|
46
|
-
return [];
|
|
47
|
-
}
|
|
48
|
-
const arr = [];
|
|
49
|
-
for (let file of files) {
|
|
50
|
-
const paymentHash = file.split(".")[0];
|
|
51
|
-
const result = await fs.readFile(this.directory + "/" + file);
|
|
52
|
-
const obj = JSON.parse(result.toString());
|
|
53
|
-
const parsed = new type(obj);
|
|
54
|
-
arr.push(parsed);
|
|
55
|
-
this.data[paymentHash] = parsed;
|
|
56
|
-
}
|
|
57
|
-
return arr;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
exports.FileSystemStorageManager = FileSystemStorageManager;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FileSystemStorageManager = void 0;
|
|
4
|
+
const fs = require("fs/promises");
|
|
5
|
+
/**
|
|
6
|
+
* StorageManager using local filesystem to persists data, creates a new file for every save object
|
|
7
|
+
*/
|
|
8
|
+
class FileSystemStorageManager {
|
|
9
|
+
constructor(directory) {
|
|
10
|
+
this.data = {};
|
|
11
|
+
this.directory = directory;
|
|
12
|
+
}
|
|
13
|
+
async init() {
|
|
14
|
+
try {
|
|
15
|
+
await fs.mkdir(this.directory);
|
|
16
|
+
}
|
|
17
|
+
catch (e) { }
|
|
18
|
+
}
|
|
19
|
+
async saveData(hash, object) {
|
|
20
|
+
try {
|
|
21
|
+
await fs.mkdir(this.directory);
|
|
22
|
+
}
|
|
23
|
+
catch (e) { }
|
|
24
|
+
this.data[hash] = object;
|
|
25
|
+
const cpy = object.serialize();
|
|
26
|
+
await fs.writeFile(this.directory + "/" + hash + ".json", JSON.stringify(cpy));
|
|
27
|
+
}
|
|
28
|
+
async removeData(hash) {
|
|
29
|
+
const paymentHash = hash;
|
|
30
|
+
try {
|
|
31
|
+
if (this.data[paymentHash] != null)
|
|
32
|
+
delete this.data[paymentHash];
|
|
33
|
+
await fs.rm(this.directory + "/" + paymentHash + ".json");
|
|
34
|
+
}
|
|
35
|
+
catch (e) {
|
|
36
|
+
console.error("FileSystemStorageManager: removeData(): Error: ", e);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
async loadData(type) {
|
|
40
|
+
let files;
|
|
41
|
+
try {
|
|
42
|
+
files = await fs.readdir(this.directory);
|
|
43
|
+
}
|
|
44
|
+
catch (e) {
|
|
45
|
+
console.error("FileSystemStorageManager: loadData(): Error: ", e);
|
|
46
|
+
return [];
|
|
47
|
+
}
|
|
48
|
+
const arr = [];
|
|
49
|
+
for (let file of files) {
|
|
50
|
+
const paymentHash = file.split(".")[0];
|
|
51
|
+
const result = await fs.readFile(this.directory + "/" + file);
|
|
52
|
+
const obj = JSON.parse(result.toString());
|
|
53
|
+
const parsed = new type(obj);
|
|
54
|
+
arr.push(parsed);
|
|
55
|
+
this.data[paymentHash] = parsed;
|
|
56
|
+
}
|
|
57
|
+
return arr;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
exports.FileSystemStorageManager = FileSystemStorageManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "./FileSystemStorageManager";
|
|
1
|
+
export * from "./FileSystemStorageManager";
|
package/dist/fs-storage/index.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./FileSystemStorageManager"), exports);
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./FileSystemStorageManager"), exports);
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from "@atomiqlabs/base";
|
|
2
|
-
export * from "@atomiqlabs/sdk-lib";
|
|
3
|
-
export * from "./SwapperFactory";
|
|
4
|
-
export * from "./Utils";
|
|
5
|
-
export * from "./storage/LocalStorageManager";
|
|
1
|
+
export * from "@atomiqlabs/base";
|
|
2
|
+
export * from "@atomiqlabs/sdk-lib";
|
|
3
|
+
export * from "./SwapperFactory";
|
|
4
|
+
export * from "./Utils";
|
|
5
|
+
export * from "./storage/LocalStorageManager";
|
package/dist/index.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("@atomiqlabs/base"), exports);
|
|
18
|
-
__exportStar(require("@atomiqlabs/sdk-lib"), exports);
|
|
19
|
-
__exportStar(require("./SwapperFactory"), exports);
|
|
20
|
-
__exportStar(require("./Utils"), exports);
|
|
21
|
-
__exportStar(require("./storage/LocalStorageManager"), exports);
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("@atomiqlabs/base"), exports);
|
|
18
|
+
__exportStar(require("@atomiqlabs/sdk-lib"), exports);
|
|
19
|
+
__exportStar(require("./SwapperFactory"), exports);
|
|
20
|
+
__exportStar(require("./Utils"), exports);
|
|
21
|
+
__exportStar(require("./storage/LocalStorageManager"), exports);
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import { IStorageManager, StorageObject } from "@atomiqlabs/base";
|
|
2
|
-
/**
|
|
3
|
-
* StorageManager using browser's local storage API
|
|
4
|
-
*/
|
|
5
|
-
export declare class LocalStorageManager<T extends StorageObject> implements IStorageManager<T> {
|
|
6
|
-
storageKey: string;
|
|
7
|
-
rawData: {
|
|
8
|
-
[hash: string]: any;
|
|
9
|
-
};
|
|
10
|
-
data: {
|
|
11
|
-
[hash: string]: T;
|
|
12
|
-
};
|
|
13
|
-
constructor(storageKey: string);
|
|
14
|
-
init(): Promise<void>;
|
|
15
|
-
saveData(hash: string, object: T): Promise<void>;
|
|
16
|
-
saveDataArr(arr: {
|
|
17
|
-
id: string;
|
|
18
|
-
object: T;
|
|
19
|
-
}[]): Promise<void>;
|
|
20
|
-
removeData(hash: string): Promise<void>;
|
|
21
|
-
removeDataArr(hashArr: string[]): Promise<void>;
|
|
22
|
-
loadData(type: new (data: any) => T): Promise<T[]>;
|
|
23
|
-
private save;
|
|
24
|
-
}
|
|
1
|
+
import { IStorageManager, StorageObject } from "@atomiqlabs/base";
|
|
2
|
+
/**
|
|
3
|
+
* StorageManager using browser's local storage API
|
|
4
|
+
*/
|
|
5
|
+
export declare class LocalStorageManager<T extends StorageObject> implements IStorageManager<T> {
|
|
6
|
+
storageKey: string;
|
|
7
|
+
rawData: {
|
|
8
|
+
[hash: string]: any;
|
|
9
|
+
};
|
|
10
|
+
data: {
|
|
11
|
+
[hash: string]: T;
|
|
12
|
+
};
|
|
13
|
+
constructor(storageKey: string);
|
|
14
|
+
init(): Promise<void>;
|
|
15
|
+
saveData(hash: string, object: T): Promise<void>;
|
|
16
|
+
saveDataArr(arr: {
|
|
17
|
+
id: string;
|
|
18
|
+
object: T;
|
|
19
|
+
}[]): Promise<void>;
|
|
20
|
+
removeData(hash: string): Promise<void>;
|
|
21
|
+
removeDataArr(hashArr: string[]): Promise<void>;
|
|
22
|
+
loadData(type: new (data: any) => T): Promise<T[]>;
|
|
23
|
+
private save;
|
|
24
|
+
}
|