on master help sign in
invites: fix wallet gen web worker
commit15850908987fadbc189ab9fa74c7a23d0906c663 authortomholford <tomholford@users.noreply.github.com> dateMon 24 Oct 2022, 13:40 (4 years ago) parent08b1cbf
5 files changed+25−18
src/lib/walletgen.js+9−6 src/store/pointCache.jsx+1−1 src/worker/WalletGenerator.ts+13 src/worker/generateWalletWorker.ts−9 src/worker/worker.ts+2−2
src/lib/walletgen.js+9−6
@@ -16,8 +16,8 @@ import {
1616} from './constants';
1717import { stripHexPrefix } from './utils/address';
1818
19−const worker = wrap(
20− new Worker('../worker/worker.js', { type: 'module' })
19+const WalletGenerator = wrap(
20+ new Worker('src/worker/worker.ts', { type: 'module' })
2121);
2222
2323const SEED_LENGTH_BYTES = SEED_ENTROPY_BITS / 8;
@@ -85,11 +85,14 @@ export const generateWallet = async (point, ticket, boot, revision = 0) => {
8585 // hangs, blocking UI updates so this cannot be done in the UI
8686 console.log('Generating Wallet for point address: ', point);
8787
88− return new Promise(async resolve => {
88+ return new Promise(async (resolve, reject) => {
8989 // Use a web worker to process the data
90− const processed = await worker.generateWallet(JSON.stringify(config));
91−
92− resolve(processed);
90+ try {
91+ const processed = await WalletGenerator.generateWallet(JSON.stringify(config));
92+ resolve(processed);
93+ } catch (error) {
94+ reject(error);
95+ }
9396 });
9497};
9598
src/store/pointCache.jsx+1−1
@@ -15,7 +15,7 @@ import usePointStore from './lib/usePointStore';
1515const initialContext = {
1616 details: Nothing(),
1717 rekeyDates: Nothing(),
18− controlledPoints: Just(Result.Error('not yet loaded')),
18+ controlledPoints: Nothing(),
1919 ecliptic: Nothing(),
2020 residents: Nothing(),
2121 pointCursor: Nothing(),
src/worker/WalletGenerator.tsnew file+13
@@ -0,0 +1,13 @@
1+import kg from 'urbit-key-generation';
2+
3+export const WalletGenerator = {
4+ async generateWallet(data: string): Promise<UrbitWallet> {
5+ // Process the data without stalling the UI
6+ const config = JSON.parse(data);
7+ const wallet = await kg.generateWallet(config);
8+
9+ return wallet;
10+ },
11+}
12+
13+export default WalletGenerator;
src/worker/generateWalletWorker.tsdeleted−9
@@ -1,9 +0,0 @@
1−import kg from 'urbit-key-generation';
2−
3−export async function generateWallet(data: string): Promise<UrbitWallet> {
4− // Process the data without stalling the UI
5− const config = JSON.parse(data);
6− const wallet = await kg.generateWallet(config);
7−
8− return wallet;
9−}
src/worker/worker.ts+2−2
@@ -1,4 +1,4 @@
11import { expose } from "comlink";
2−import { generateWallet } from './generateWalletWorker';
2+import { WalletGenerator } from './WalletGenerator';
33
4−expose(generateWallet);
4+expose(WalletGenerator);