@@ -1,9 +1,10 @@
11import ob from 'urbit-ob';
22import kg from 'urbit-key-generation';
3+// @ts-expect-error no types available for more-entropy
34import * as more from 'more-entropy';
45import { chunk, flatMap, zipWith } from 'lodash';
5−import { wrap } from 'comlink';
66import { shas } from 'lib/networkCode';
7+import { walletgenWorker } from 'worker/';
78
89import {
910 MIN_STAR,
@@ -16,13 +17,9 @@ import {
1617} from './constants';
1718import { stripHexPrefix } from './utils/address';
1819
19−const WalletGenerator = wrap(
20− new Worker('src/worker/worker.ts', { type: 'module' })
21−);
22−
2320const SEED_LENGTH_BYTES = SEED_ENTROPY_BITS / 8;
2421
25−const getTicketBitSize = point =>
22+const getTicketBitSize = (point: number) =>
2623 point < MIN_STAR
2724 ? GALAXY_ENTROPY_BITS
2825 : point < MIN_PLANET
@@ -30,7 +27,7 @@ const getTicketBitSize = point =>
3027 : PLANET_ENTROPY_BITS;
3128
3229// returns a promise for a ticket string
33−export const makeTicket = point => {
30+export const makeTicket = (point: number): Promise<string> => {
3431 const bits = getTicketBitSize(point);
3532
3633 const bytes = bits / 8;
@@ -39,7 +36,7 @@ export const makeTicket = point => {
3936
4037 const gen = new more.Generator();
4138
42− return new Promise((resolve, reject) => {
39+ return new Promise<string>((resolve, reject) => {
4340 gen.generate(bits, result => {
4441 const chunked = chunk(result, 2);
4542 const desired = chunked.slice(0, bytes); // only take required entropy
@@ -53,7 +50,7 @@ export const makeTicket = point => {
5350 });
5451};
5552
56−export const makeDeterministicTicket = (point, seed) => {
53+export const makeDeterministicTicket = (point: number, seed: string) => {
5754 const bits = getTicketBitSize(point);
5855
5956 const bytes = bits / 8;
@@ -71,7 +68,7 @@ export const makeDeterministicTicket = (point, seed) => {
7168};
7269
7370// return a wallet object
74−export const generateWallet = async (point, ticket, boot, revision = 0) => {
71+export const generateWallet = async (point: number, ticket: string, boot: boolean, revision = 0) => {
7572 const config = {
7673 ticket: ticket,
7774 seedSize: SEED_LENGTH_BYTES,
@@ -88,7 +85,7 @@ export const generateWallet = async (point, ticket, boot, revision = 0) => {
8885 return new Promise(async (resolve, reject) => {
8986 // Use a web worker to process the data
9087 try {
91− const processed = await WalletGenerator.generateWallet(JSON.stringify(config));
88+ const processed = await walletgenWorker.generate(JSON.stringify(config));
9289 resolve(processed);
9390 } catch (error) {
9491 reject(error);
@@ -96,23 +93,23 @@ export const generateWallet = async (point, ticket, boot, revision = 0) => {
9693 });
9794};
9895
99−export const generateOwnershipWallet = async (ship, ticket) => {
96+export const generateOwnershipWallet = async (ship: number, ticket: string) => {
10097 return kg.generateOwnershipWallet({ ship, ticket });
10198};
10299
103100// temporary wallets need to be derivable from just the ticket,
104101// so we always use ~zod as the wallet point.
105−export const generateTemporaryOwnershipWallet = ticket =>
102+export const generateTemporaryOwnershipWallet = (ticket: string) =>
106103 generateOwnershipWallet(ZOD, ticket);
107104
108−export const generateTemporaryTicketAndWallet = async point => {
105+export const generateTemporaryTicketAndWallet = async (point: number) => {
109106 const ticket = await makeTicket(point);
110107 const owner = await generateOwnershipWallet(ZOD, ticket);
111108
112109 return { ticket, owner };
113110};
114111
115−export const generateTemporaryDeterministicWallet = async (point, seed) => {
112+export const generateTemporaryDeterministicWallet = async (point: number, seed: string) => {
116113 const ticket = makeDeterministicTicket(point, seed);
117114 const owner = await generateOwnershipWallet(ZOD, ticket);
118115