@spirobel/monero-wallet-api 0.5.1 → 0.5.3
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/actionlog/actionLog.d.ts +4 -0
- package/dist/actionlog/actionLog.js +9 -0
- package/dist/actionlog/actionLogOpened.d.ts +1 -0
- package/dist/actionlog/actionLogOpened.js +1 -0
- package/dist/api.d.ts +3 -2
- package/dist/api.js +3 -2
- package/dist/scanning-syncing/backgroundWorker.js +1 -1
- package/dist/scanning-syncing/blocksbuffer/blocksBufferFetchLoop.js +29 -3
- package/dist/scanning-syncing/blocksbuffer/blocksbufferCoordination.js +6 -3
- package/dist/scanning-syncing/connectionStatus.d.ts +1 -4
- package/dist/scanning-syncing/connectionStatus.js +1 -31
- package/dist/scanning-syncing/connectionStatusOpened.d.ts +15 -0
- package/dist/scanning-syncing/connectionStatusOpened.js +51 -0
- package/dist/scanning-syncing/openWallet.js +1 -1
- package/dist/scanning-syncing/scanresult/scanCacheOpened.d.ts +55 -7
- package/dist/scanning-syncing/scanresult/scanCacheOpened.js +191 -50
- package/dist/scanning-syncing/scanresult/scanCoordination.d.ts +1 -1
- package/dist/scanning-syncing/scanresult/scanCoordination.js +64 -2
- package/dist/scanning-syncing/scansettings/scanSettings.d.ts +165 -0
- package/dist/scanning-syncing/scansettings/scanSettings.js +338 -0
- package/dist/scanning-syncing/worker-entrypoints/worker.js +1 -1
- package/dist/scanning-syncing/worker-mains/worker.js +1 -2
- package/dist/scansettings/scanSettings.d.ts +165 -0
- package/dist/scansettings/scanSettings.js +338 -0
- package/dist/scansettings/scanSettingsOpened.d.ts +127 -0
- package/dist/scansettings/scanSettingsOpened.js +475 -0
- package/dist/viewpair/ViewPair.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// the actionlog datastructure records three types of actions:
|
|
2
|
+
// 1. actions that the user has performed (external choice)
|
|
3
|
+
// 2. actions as the result of business logic during the execution of a tool call
|
|
4
|
+
// 3. actions as the result of business logic during the execution of an automated agreement
|
|
5
|
+
//
|
|
6
|
+
// tool call: privacy preserving interface between wallet and
|
|
7
|
+
// services that manage interaction with other users / wallets,
|
|
8
|
+
// set in motion by a user action (external choice to the whole (distributed, concurrent) system)
|
|
9
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/api.d.ts
CHANGED
|
@@ -8,7 +8,6 @@ export * from "./node-interaction/jsonEndpoints";
|
|
|
8
8
|
export * from "./io/readDir";
|
|
9
9
|
export * from "./io/atomicWrite";
|
|
10
10
|
export * from "./io/sleep";
|
|
11
|
-
export { writeScanSettings, readScanSettings, } from "./scanning-syncing/scanSettings";
|
|
12
11
|
export { signTransaction, parseAddress, type ParsedAddress, type ParseAddressError, } from "./send-functionality/transactionBuilding";
|
|
13
12
|
export { computeKeyImage } from "./scanning-syncing/scanresult/computeKeyImage";
|
|
14
13
|
export * from "./multisig/multisig";
|
|
@@ -21,7 +20,9 @@ export { openWallets, openWallet } from "./scanning-syncing/openWallet";
|
|
|
21
20
|
export * from "./scanning-syncing/blocksbuffer/blocksBufferFetchLoop";
|
|
22
21
|
export * from "./scanning-syncing/blocksbuffer/blocksbufferCoordination";
|
|
23
22
|
export * from "./scanning-syncing/connectionStatus";
|
|
24
|
-
export
|
|
23
|
+
export { ConnectionStatusOpened } from "./scanning-syncing/connectionStatusOpened";
|
|
24
|
+
export * from "./scansettings/scanSettings";
|
|
25
|
+
export { ScanSettingsOpened } from "./scansettings/scanSettingsOpened";
|
|
25
26
|
export * from "./scanning-syncing/scanresult/scanResult";
|
|
26
27
|
export * from "./scanning-syncing/scanresult/scanStats";
|
|
27
28
|
export * from "./scanning-syncing/scanresult/scanCache";
|
package/dist/api.js
CHANGED
|
@@ -7,7 +7,6 @@ export * from "./node-interaction/jsonEndpoints";
|
|
|
7
7
|
export * from "./io/readDir";
|
|
8
8
|
export * from "./io/atomicWrite";
|
|
9
9
|
export * from "./io/sleep";
|
|
10
|
-
export { writeScanSettings, readScanSettings, } from "./scanning-syncing/scanSettings";
|
|
11
10
|
export { signTransaction, parseAddress, } from "./send-functionality/transactionBuilding";
|
|
12
11
|
export { computeKeyImage } from "./scanning-syncing/scanresult/computeKeyImage";
|
|
13
12
|
export * from "./multisig/multisig";
|
|
@@ -20,7 +19,9 @@ export { openWallets, openWallet } from "./scanning-syncing/openWallet";
|
|
|
20
19
|
export * from "./scanning-syncing/blocksbuffer/blocksBufferFetchLoop";
|
|
21
20
|
export * from "./scanning-syncing/blocksbuffer/blocksbufferCoordination";
|
|
22
21
|
export * from "./scanning-syncing/connectionStatus";
|
|
23
|
-
export
|
|
22
|
+
export { ConnectionStatusOpened } from "./scanning-syncing/connectionStatusOpened";
|
|
23
|
+
export * from "./scansettings/scanSettings";
|
|
24
|
+
export { ScanSettingsOpened } from "./scansettings/scanSettingsOpened";
|
|
24
25
|
export * from "./scanning-syncing/scanresult/scanResult";
|
|
25
26
|
export * from "./scanning-syncing/scanresult/scanStats";
|
|
26
27
|
export * from "./scanning-syncing/scanresult/scanCache";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { LOCAL_NODE_DEFAULT_URL } from "../node-interaction/nodeUrl";
|
|
2
2
|
import {} from "./scanresult/scanCache";
|
|
3
|
-
import { openScanSettingsFile, SCAN_SETTINGS_STORE_NAME_DEFAULT
|
|
3
|
+
import { openScanSettingsFile, SCAN_SETTINGS_STORE_NAME_DEFAULT } from "../api";
|
|
4
4
|
import { log, setupLoggingPath } from "../io/logging";
|
|
5
5
|
import { workerMainCode } from "./worker-entrypoints/worker";
|
|
6
6
|
export const CPU_POOL_SIZE = 4;
|
|
@@ -9,7 +9,12 @@ connection_status, // we make a local copy of this and pass last_packet and sync
|
|
|
9
9
|
max_blocks_buffer_size = MAX_BLOCKS_BUFFER_SIZE, anchor_range, stopSync) {
|
|
10
10
|
connection_status = structuredClone(connection_status);
|
|
11
11
|
const nodeUrl = await NodeUrl.create(node_url);
|
|
12
|
-
log("blocksBufferFetchLoop", [
|
|
12
|
+
log("blocksBufferFetchLoop", [
|
|
13
|
+
"NodeUrl:",
|
|
14
|
+
nodeUrl.node_url,
|
|
15
|
+
"start:",
|
|
16
|
+
start_height,
|
|
17
|
+
]);
|
|
13
18
|
start_height = await reduceStartHeightToTip(start_height, nodeUrl.node_url);
|
|
14
19
|
// initialise ranges on first call
|
|
15
20
|
let { current_range, scanned_ranges } = await initScannedRanges(nodeUrl.node_url, start_height, anchor_range ? [anchor_range] : []);
|
|
@@ -39,15 +44,36 @@ max_blocks_buffer_size = MAX_BLOCKS_BUFFER_SIZE, anchor_range, stopSync) {
|
|
|
39
44
|
await sleep(5000);
|
|
40
45
|
continue;
|
|
41
46
|
}
|
|
42
|
-
log("blocksBufferFetchLoop", [
|
|
43
|
-
|
|
47
|
+
log("blocksBufferFetchLoop", [
|
|
48
|
+
"fetching",
|
|
49
|
+
nodeUrl.node_url,
|
|
50
|
+
current_range.start,
|
|
51
|
+
"->",
|
|
52
|
+
current_range.end,
|
|
53
|
+
]);
|
|
54
|
+
let get_blocks_bin;
|
|
55
|
+
try {
|
|
56
|
+
get_blocks_bin = await doRPCrequest(nodeUrl, current_range, stopSync);
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
connection_status.last_packet = {
|
|
60
|
+
status: "connection_failed",
|
|
61
|
+
bytes_read: 0,
|
|
62
|
+
node_url,
|
|
63
|
+
timestamp: new Date().toISOString(),
|
|
64
|
+
};
|
|
65
|
+
yield connection_status.last_packet;
|
|
66
|
+
throw error;
|
|
67
|
+
}
|
|
44
68
|
const result_meta = await nodeUrl.loadGetBlocksBinResponse(get_blocks_bin);
|
|
45
69
|
log("blocksBufferFetchLoop", "response: " + result_meta.block_infos.length + " blocks");
|
|
70
|
+
connection_status.sync.daemon_height = result_meta.daemon_height;
|
|
46
71
|
connection_status.last_packet = {
|
|
47
72
|
status: "OK",
|
|
48
73
|
bytes_read: get_blocks_bin.length,
|
|
49
74
|
node_url: node_url,
|
|
50
75
|
timestamp: new Date().toISOString(),
|
|
76
|
+
daemon_height: result_meta.daemon_height,
|
|
51
77
|
};
|
|
52
78
|
yield connection_status.last_packet;
|
|
53
79
|
// no new blocks: at tip, sleep and retry
|
|
@@ -19,10 +19,13 @@ export async function handleConnectionStatusChanges(event, scanSettingsPath) {
|
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
if ("scanned_ranges" in event) {
|
|
22
|
-
//TODO: only write this to disk after blocks_buffer_changed has been handled by wallets.
|
|
23
|
-
//look for same comment in blocksBufferFetchLoop.ts
|
|
24
22
|
await readWriteConnectionStatusFile((cs2) => {
|
|
25
|
-
cs2.sync =
|
|
23
|
+
cs2.sync = {
|
|
24
|
+
...event,
|
|
25
|
+
// preserve eta and current_scan_height from file
|
|
26
|
+
eta: cs2.sync.eta || event.eta,
|
|
27
|
+
current_scan_height: cs2.sync.current_scan_height || event.current_scan_height,
|
|
28
|
+
};
|
|
26
29
|
}, scanSettingsPath);
|
|
27
30
|
}
|
|
28
31
|
}
|
|
@@ -5,6 +5,7 @@ export type ConnectionSatusLastPacket = {
|
|
|
5
5
|
bytes_read: number;
|
|
6
6
|
node_url: string;
|
|
7
7
|
timestamp: string;
|
|
8
|
+
daemon_height?: number;
|
|
8
9
|
};
|
|
9
10
|
export type ConnectionStatusSync = {
|
|
10
11
|
reorg_info?: ReorgInfo;
|
|
@@ -21,10 +22,6 @@ export type ConnectionStatus = {
|
|
|
21
22
|
export declare const DEFAULT_CONNECTION_STATUS_PREFIX = "ConnectionStatus-";
|
|
22
23
|
export declare function msToHHMM(ms: number): string;
|
|
23
24
|
export declare function emptyConnectionStatus(overrides?: Partial<ConnectionStatus>): ConnectionStatus;
|
|
24
|
-
export declare function updateSyncETA(daemon_height: number, current_scan_height: number, last_height: number | null, last_timestamp: number | null, scan_settings_path?: string): Promise<{
|
|
25
|
-
last_height: number;
|
|
26
|
-
last_timestamp: number;
|
|
27
|
-
}>;
|
|
28
25
|
export declare function connectionStatusFilePath(scan_settings_path?: string): string;
|
|
29
26
|
export declare function readConnectionStatusDefaultLocation(scan_settings_path?: string): Promise<ConnectionStatus | undefined>;
|
|
30
27
|
export declare function readConnectionStatusFile(connectionStatusFilePath: string): Promise<ConnectionStatus | undefined>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { atomicWrite, } from "../api";
|
|
2
|
-
import { SCAN_SETTINGS_STORE_NAME_DEFAULT } from "
|
|
2
|
+
import { SCAN_SETTINGS_STORE_NAME_DEFAULT } from "../api";
|
|
3
3
|
export const DEFAULT_CONNECTION_STATUS_PREFIX = "ConnectionStatus-";
|
|
4
4
|
export function msToHHMM(ms) {
|
|
5
5
|
const totalSeconds = Math.floor(ms / 1000);
|
|
@@ -31,36 +31,6 @@ export function emptyConnectionStatus(overrides) {
|
|
|
31
31
|
};
|
|
32
32
|
return overrides ? { ...defaultStatus, ...overrides } : defaultStatus;
|
|
33
33
|
}
|
|
34
|
-
export async function updateSyncETA(daemon_height, current_scan_height, last_height, last_timestamp, scan_settings_path) {
|
|
35
|
-
const blocks_till_tip = daemon_height - current_scan_height;
|
|
36
|
-
let blocks_since_last_update = null;
|
|
37
|
-
let duration = null;
|
|
38
|
-
if (typeof last_height === "number") {
|
|
39
|
-
blocks_since_last_update = current_scan_height - last_height;
|
|
40
|
-
}
|
|
41
|
-
if (typeof last_timestamp === "number") {
|
|
42
|
-
duration = Date.now() - last_timestamp;
|
|
43
|
-
}
|
|
44
|
-
let eta = "00:00";
|
|
45
|
-
if (blocks_since_last_update !== null &&
|
|
46
|
-
duration !== null &&
|
|
47
|
-
duration > 0 &&
|
|
48
|
-
blocks_till_tip > 0) {
|
|
49
|
-
const blocks_per_ms = blocks_since_last_update / duration;
|
|
50
|
-
const eta_ms = blocks_till_tip / blocks_per_ms;
|
|
51
|
-
eta = msToHHMM(eta_ms);
|
|
52
|
-
}
|
|
53
|
-
await readWriteConnectionStatusFile((cs) => {
|
|
54
|
-
cs.sync = {
|
|
55
|
-
...cs.sync,
|
|
56
|
-
daemon_height,
|
|
57
|
-
current_scan_height,
|
|
58
|
-
eta,
|
|
59
|
-
timestamp: new Date().toISOString(),
|
|
60
|
-
};
|
|
61
|
-
}, scan_settings_path);
|
|
62
|
-
return { last_height: current_scan_height, last_timestamp: Date.now() };
|
|
63
|
-
}
|
|
64
34
|
export function connectionStatusFilePath(scan_settings_path = SCAN_SETTINGS_STORE_NAME_DEFAULT) {
|
|
65
35
|
const parts = scan_settings_path.split("/");
|
|
66
36
|
const basename = parts.pop();
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type ConnectionStatus } from "../api";
|
|
2
|
+
export declare class ConnectionStatusOpened {
|
|
3
|
+
private _onChange?;
|
|
4
|
+
private _timer;
|
|
5
|
+
private _cached;
|
|
6
|
+
private _prevConnected;
|
|
7
|
+
private _path;
|
|
8
|
+
constructor(scan_settings_path: string, _onChange?: ((status: ConnectionStatus | null) => void) | null | undefined);
|
|
9
|
+
watch(intervalMs?: number): void;
|
|
10
|
+
unwatch(): void;
|
|
11
|
+
get connectionStatus(): ConnectionStatus | null;
|
|
12
|
+
get isConnected(): boolean;
|
|
13
|
+
get daemonHeight(): number | undefined;
|
|
14
|
+
private _poll;
|
|
15
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { readConnectionStatusFile, connectionStatusFilePath, } from "../api";
|
|
2
|
+
export class ConnectionStatusOpened {
|
|
3
|
+
_onChange;
|
|
4
|
+
_timer;
|
|
5
|
+
_cached = null;
|
|
6
|
+
_prevConnected = false;
|
|
7
|
+
_path;
|
|
8
|
+
constructor(scan_settings_path, _onChange) {
|
|
9
|
+
this._onChange = _onChange;
|
|
10
|
+
this._path = connectionStatusFilePath(scan_settings_path);
|
|
11
|
+
}
|
|
12
|
+
watch(intervalMs = 2500) {
|
|
13
|
+
if (this._timer)
|
|
14
|
+
return;
|
|
15
|
+
this._poll();
|
|
16
|
+
this._timer = setInterval(() => this._poll(), intervalMs);
|
|
17
|
+
}
|
|
18
|
+
unwatch() {
|
|
19
|
+
if (this._timer) {
|
|
20
|
+
clearInterval(this._timer);
|
|
21
|
+
this._timer = undefined;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
get connectionStatus() {
|
|
25
|
+
return this._cached;
|
|
26
|
+
}
|
|
27
|
+
get isConnected() {
|
|
28
|
+
const cs = this._cached;
|
|
29
|
+
if (!cs?.last_packet)
|
|
30
|
+
return false;
|
|
31
|
+
const { status, timestamp } = cs.last_packet;
|
|
32
|
+
if (status !== "OK" && status !== "blocks_buffer_full")
|
|
33
|
+
return false;
|
|
34
|
+
if (!timestamp)
|
|
35
|
+
return false;
|
|
36
|
+
const age = Date.now() - new Date(timestamp).getTime();
|
|
37
|
+
return age >= 0 && age <= 10_000;
|
|
38
|
+
}
|
|
39
|
+
get daemonHeight() {
|
|
40
|
+
return this._cached?.last_packet?.daemon_height;
|
|
41
|
+
}
|
|
42
|
+
async _poll() {
|
|
43
|
+
this._cached =
|
|
44
|
+
(await readConnectionStatusFile(this._path).catch(() => null)) || null;
|
|
45
|
+
const now = this.isConnected;
|
|
46
|
+
if (now !== this._prevConnected) {
|
|
47
|
+
this._prevConnected = now;
|
|
48
|
+
this._onChange?.(this._cached);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ManyScanCachesOpened, ScanCacheOpened, } from "./scanresult/scanCacheOpened";
|
|
2
|
-
import { openScanSettingsFile, writeWalletToScanSettings
|
|
2
|
+
import { openScanSettingsFile, writeWalletToScanSettings } from "../api";
|
|
3
3
|
/**
|
|
4
4
|
* Opens all **non halted wallets listed in ScanSettings.json** for scanning.
|
|
5
5
|
*
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { ViewPair, type FeeEstimateResponse, type Output, type SendRawTransactionResult } from "../../api";
|
|
2
2
|
import { type Payment } from "../../send-functionality/inputSelection";
|
|
3
|
+
import { ConnectionStatusOpened } from "../connectionStatusOpened";
|
|
4
|
+
import type { LogSetting, PossibleLogs } from "../../io/logging";
|
|
3
5
|
import { type CacheChangedCallback, type CacheChangedCallbackParameters, type ScanCache, type Subaddress, type TxLog } from "./scanCache";
|
|
4
6
|
import { type FoundTransaction, type PrePendingTx } from "./scanStats";
|
|
7
|
+
import { type ConnectionStatus } from "../connectionStatus";
|
|
5
8
|
export type SlaveScanCache = boolean;
|
|
6
9
|
export type ScanCacheOpenedCreateParams = {
|
|
7
10
|
primary_address: string;
|
|
@@ -18,6 +21,7 @@ export type CreateTransactionParams = {
|
|
|
18
21
|
no_fee_circuit_breaker?: boolean;
|
|
19
22
|
};
|
|
20
23
|
export declare class ScanCacheOpened {
|
|
24
|
+
private _scanSettings;
|
|
21
25
|
readonly view_pair: ViewPair;
|
|
22
26
|
readonly wallet_route: string | undefined;
|
|
23
27
|
readonly wallet_name: string | undefined;
|
|
@@ -56,8 +60,17 @@ export declare class ScanCacheOpened {
|
|
|
56
60
|
get primary_address(): string;
|
|
57
61
|
get node_url(): string;
|
|
58
62
|
private set node_url(value);
|
|
63
|
+
get merchant_confirmations(): number | null | undefined;
|
|
64
|
+
get cpu_worker_count(): number | undefined;
|
|
65
|
+
get logs(): LogSetting | undefined;
|
|
66
|
+
get logs_include(): PossibleLogs[] | undefined;
|
|
67
|
+
get logs_exclude(): PossibleLogs[] | undefined;
|
|
59
68
|
changeNodeUrlAndStartHeight(node_url?: string, start_height?: number | null): Promise<void>;
|
|
60
69
|
changeNodeUrl(node_url: string): Promise<void>;
|
|
70
|
+
setMerchantConfirmations(merchant_confirmations: number | null): Promise<void>;
|
|
71
|
+
setCpuWorkerCount(cpu_worker_count: number | undefined): Promise<void>;
|
|
72
|
+
setLogSettings(logs?: LogSetting | null, logs_include?: PossibleLogs[] | null, logs_exclude?: PossibleLogs[] | null): Promise<void>;
|
|
73
|
+
setWalletName(name?: string): Promise<void>;
|
|
61
74
|
retry(): Promise<boolean>;
|
|
62
75
|
sendTransaction(signedTx: string): Promise<SendRawTransactionResult>;
|
|
63
76
|
signTransaction(unsignedTx: string): Promise<string>;
|
|
@@ -115,9 +128,9 @@ export declare class ScanCacheOpened {
|
|
|
115
128
|
notify(callback: CacheChangedCallback): {
|
|
116
129
|
remove: () => null;
|
|
117
130
|
};
|
|
118
|
-
pause(): Promise<
|
|
131
|
+
pause(): Promise<void>;
|
|
119
132
|
stopWorker(): void;
|
|
120
|
-
unpause(): Promise<
|
|
133
|
+
unpause(): Promise<void>;
|
|
121
134
|
/**
|
|
122
135
|
* selectInputs returns array of inputs, whose sum is larger than amount
|
|
123
136
|
* adds approximate fee for 10kb transaction to amount if feePerByte is supplied
|
|
@@ -160,9 +173,15 @@ export type ManyScanCachesOpenedCreateOptions = {
|
|
|
160
173
|
notifyMasterChanged?: CacheChangedCallback;
|
|
161
174
|
no_stats?: boolean;
|
|
162
175
|
workerError?: (error: unknown) => void;
|
|
176
|
+
autoRetry?: boolean;
|
|
177
|
+
retryDelayMs?: number;
|
|
178
|
+
connectionStatusIntervalMs?: number;
|
|
179
|
+
onConnectionStatusChange?: ((status: ConnectionStatus | null) => void) | null;
|
|
163
180
|
};
|
|
164
181
|
export declare class ManyScanCachesOpened {
|
|
165
|
-
readonly
|
|
182
|
+
readonly connectionStatusOpened: ConnectionStatusOpened;
|
|
183
|
+
private _scanSettings;
|
|
184
|
+
private _options;
|
|
166
185
|
get start_height(): number | null;
|
|
167
186
|
get current_height(): number | null;
|
|
168
187
|
get node_url(): string;
|
|
@@ -170,11 +189,40 @@ export declare class ManyScanCachesOpened {
|
|
|
170
189
|
retry(): Promise<boolean>;
|
|
171
190
|
stopWorker(): void;
|
|
172
191
|
changeNodeUrl(node_url: string): Promise<void>;
|
|
192
|
+
get merchant_confirmations(): number | null | undefined;
|
|
193
|
+
get cpu_worker_count(): number | undefined;
|
|
194
|
+
get logs(): LogSetting | undefined;
|
|
195
|
+
get logs_include(): PossibleLogs[] | undefined;
|
|
196
|
+
get logs_exclude(): PossibleLogs[] | undefined;
|
|
197
|
+
get connectionStatus(): ConnectionStatus | null;
|
|
198
|
+
get daemonHeight(): number | undefined;
|
|
199
|
+
watchConnectionStatus(intervalMs?: number): void;
|
|
200
|
+
unwatchConnectionStatus(): void;
|
|
201
|
+
setMerchantConfirmations(merchant_confirmations: number | null): Promise<void>;
|
|
202
|
+
setCpuWorkerCount(cpu_worker_count: number | undefined): Promise<void>;
|
|
203
|
+
setLogSettings(logs?: LogSetting | null, logs_include?: PossibleLogs[] | null, logs_exclude?: PossibleLogs[] | null): Promise<void>;
|
|
204
|
+
setWalletName(primary_address: string, name?: string): Promise<void>;
|
|
173
205
|
changeStartHeight(start_height: number | null): Promise<void>;
|
|
174
|
-
static
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
206
|
+
private static _buildWallets;
|
|
207
|
+
static create(options: ManyScanCachesOpenedCreateOptions): Promise<ManyScanCachesOpened | undefined>;
|
|
208
|
+
buildWallets(): Promise<void>;
|
|
209
|
+
addViewWallet(primary_address: string, view_key: string, fields?: {
|
|
210
|
+
wallet_name?: string;
|
|
211
|
+
wallet_slot?: number;
|
|
212
|
+
wallet_route?: string;
|
|
213
|
+
subaddress_index?: number;
|
|
214
|
+
halted?: boolean;
|
|
215
|
+
}): Promise<void>;
|
|
216
|
+
addSpendWallet(wallet_secret: Uint8Array, fields?: {
|
|
217
|
+
wallet_name?: string;
|
|
218
|
+
wallet_slot?: number;
|
|
219
|
+
wallet_route?: string;
|
|
220
|
+
subaddress_index?: number;
|
|
221
|
+
halted?: boolean;
|
|
222
|
+
}): Promise<void>;
|
|
223
|
+
removeWallet(primary_address: string): Promise<void>;
|
|
178
224
|
feed(params: CacheChangedCallbackParameters): Promise<void>;
|
|
225
|
+
private _wallets;
|
|
226
|
+
get wallets(): ScanCacheOpened[];
|
|
179
227
|
private constructor();
|
|
180
228
|
}
|