@spirobel/monero-wallet-api 0.3.4 → 0.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/scanning-syncing/backgroundWorker.d.ts +1 -1
- package/dist/scanning-syncing/backgroundWorker.js +15 -5
- package/dist/scanning-syncing/scanSettings.js +4 -4
- package/dist/scanning-syncing/scanresult/scanCacheOpened.js +1 -1
- package/dist/scanning-syncing/worker-entrypoints/worker.js +1 -1
- package/dist/scanning-syncing/worker-mains/worker.js +8 -3
- package/dist/tools/monero-tools.js +3 -1
- package/dist/viewpair/ViewPair.js +45 -43
- package/package.json +1 -1
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import { sleep } from "../../io/sleep";
|
|
2
2
|
import { scanWallets } from "../backgroundWorker";
|
|
3
3
|
while (true) {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
try {
|
|
5
|
+
await scanWallets((x) => self.postMessage({ type: "RESULT", payload: x }), undefined, scan_settings_path, pathPrefix);
|
|
6
|
+
console.log("no wallets found to scan in wallet settings, trying again in 1 second");
|
|
7
|
+
await sleep(1000);
|
|
8
|
+
}
|
|
9
|
+
catch (error) {
|
|
10
|
+
self.postMessage({ type: "ERROR", payload: error });
|
|
11
|
+
}
|
|
7
12
|
}
|
|
@@ -129,7 +129,9 @@ export const OPEN_DOMAINS = ["monerochan.city"];
|
|
|
129
129
|
export async function checkToolInvocationValidity(invo) {
|
|
130
130
|
// send 001 fetch from destination domain to check if the address is valid
|
|
131
131
|
if (invo.tool.tool_id == "001") {
|
|
132
|
-
const
|
|
132
|
+
const link = invo[invo.found_in];
|
|
133
|
+
const invo_link = new URL(link);
|
|
134
|
+
const checkUrl = `${invo_link.origin}/monerochan001/${invo.tool.payload.address}`;
|
|
133
135
|
try {
|
|
134
136
|
if (invo.destination_domain === OPEN_DOMAINS[0]) {
|
|
135
137
|
return "unverified";
|
|
@@ -127,51 +127,51 @@ export class ViewPair extends WasmProcessor {
|
|
|
127
127
|
* scan
|
|
128
128
|
*/
|
|
129
129
|
async scan(cacheChanged = (params) => console.log(params), stopSync, scan_settings_path, pathPrefix) {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
const firstResponse = await processor.getBlocksBinExecuteRequest({ block_ids: current_range.block_hashes.map((b) => b.block_hash) }, stopSync);
|
|
142
|
-
await readWriteConnectionStatusFile((cs) => {
|
|
143
|
-
if (cs?.last_packet.status === "catastrophic_reorg")
|
|
130
|
+
try {
|
|
131
|
+
const processor = this;
|
|
132
|
+
const nonHaltedWallets = await openNonHaltedWallets(scan_settings_path);
|
|
133
|
+
const masterWalletSettings = nonHaltedWallets[0];
|
|
134
|
+
if (masterWalletSettings.primary_address !== this.primary_address)
|
|
135
|
+
throw new Error("master wallet should be the first of the non halted wallets");
|
|
136
|
+
let masterStartHeight = await cullTooLargeScanHeight(processor.node_url, scan_settings_path);
|
|
137
|
+
let current_range = await initScanCache(processor, masterStartHeight, scan_settings_path, pathPrefix);
|
|
138
|
+
const blockGenerator = (async function* () {
|
|
139
|
+
while (true) {
|
|
140
|
+
if (stopSync?.aborted)
|
|
144
141
|
return;
|
|
145
|
-
const
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
142
|
+
const firstResponse = await processor.getBlocksBinExecuteRequest({ block_ids: current_range.block_hashes.map((b) => b.block_hash) }, stopSync);
|
|
143
|
+
await readWriteConnectionStatusFile((cs) => {
|
|
144
|
+
if (cs?.last_packet.status === "catastrophic_reorg")
|
|
145
|
+
return;
|
|
146
|
+
const connectionStatus = {
|
|
147
|
+
last_packet: {
|
|
148
|
+
status: "OK",
|
|
149
|
+
bytes_read: firstResponse.length,
|
|
150
|
+
node_url: processor.node_url,
|
|
151
|
+
timestamp: new Date().toISOString(),
|
|
152
|
+
},
|
|
153
|
+
};
|
|
154
|
+
return connectionStatus;
|
|
155
|
+
});
|
|
156
|
+
yield firstResponse;
|
|
157
|
+
}
|
|
158
|
+
})();
|
|
159
|
+
const masterWithKeys = await walletSettingsPlusKeys(masterWalletSettings);
|
|
160
|
+
const slaveViewPairs = [];
|
|
161
|
+
if (nonHaltedWallets.length > 1) {
|
|
162
|
+
for (const slaveWallet of nonHaltedWallets.slice(1)) {
|
|
163
|
+
const slaveWithKeys = await walletSettingsPlusKeys(slaveWallet);
|
|
164
|
+
const viewpair = await ViewPair.create(slaveWallet.primary_address, slaveWithKeys.secret_view_key, slaveWallet.subaddress_index, masterWalletSettings.node_url);
|
|
165
|
+
slaveViewPairs.push({
|
|
166
|
+
viewpair,
|
|
167
|
+
current_range: await initScanCache(viewpair, masterStartHeight, scan_settings_path, pathPrefix),
|
|
168
|
+
secret_spend_key: slaveWithKeys.secret_spend_key,
|
|
169
|
+
});
|
|
170
|
+
}
|
|
169
171
|
}
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
};
|
|
174
|
-
try {
|
|
172
|
+
const catastrophic_reorg_cb = async () => {
|
|
173
|
+
writeConnectionStatusFile("catastrophic_reorg", processor.node_url, undefined, scan_settings_path);
|
|
174
|
+
};
|
|
175
175
|
for await (const firstResponse of blockGenerator) {
|
|
176
176
|
if (!firstResponse)
|
|
177
177
|
continue;
|
|
@@ -227,6 +227,7 @@ export class ViewPair extends WasmProcessor {
|
|
|
227
227
|
}
|
|
228
228
|
catch (error) {
|
|
229
229
|
handleScanError(error);
|
|
230
|
+
const processor = this;
|
|
230
231
|
const cache = await readCacheFileDefaultLocation(processor.primary_address, pathPrefix);
|
|
231
232
|
if (!cache)
|
|
232
233
|
throw new Error(`${error} in scan() + cache not found for primary address: ${processor.primary_address} and path prefix: ${pathPrefix}`);
|
|
@@ -234,6 +235,7 @@ export class ViewPair extends WasmProcessor {
|
|
|
234
235
|
newCache: cache,
|
|
235
236
|
changed_outputs: [],
|
|
236
237
|
});
|
|
238
|
+
throw error;
|
|
237
239
|
}
|
|
238
240
|
}
|
|
239
241
|
/**
|