import { Passkey } from './passkey'
import { VaultTimer } from './vault-timer'
-/**
- * Cross-platform worker for managing wallet secrets.
- */
-const _encoder: TextEncoder = new TextEncoder()
+const encoder = new TextEncoder()
+const encode = (input?: string): Uint8Array<ArrayBuffer> => encoder.encode(input)
let _locked: boolean = true
let _timeout: number = 120_000
let _timer: VaultTimer = new VaultTimer(() => { }, 0)
if (mnemonicPhrase != null) {
console.log(new TextDecoder().decode((new Uint8Array(_mnemonic ?? []))))
let diff = 0
- const userMnemonic = _encoder.encode(mnemonicPhrase)
+ const userMnemonic = encode(mnemonicPhrase)
const thisMnemonic = new Uint8Array(_mnemonic ?? [])
for (let i = 0; i < userMnemonic.byteLength; i++) {
diff |= userMnemonic[i] ^ thisMnemonic[i]
if (type === 'BLAKE2b') {
seed = Bip39.fromEntropy(new Uint8Array(secret))
.then(bip39 => {
- _mnemonic = new Uint8Array(_encoder.encode(bip39.phrase ?? '')).buffer
+ _mnemonic = new Uint8Array(encode(bip39.phrase ?? '')).buffer
return secret
})
} else {
} else {
seed = Bip39.fromPhrase(secret)
.then(bip39 => {
- _mnemonic = new Uint8Array(_encoder.encode(bip39.phrase ?? '')).buffer
+ _mnemonic = new Uint8Array(encode(bip39.phrase ?? '')).buffer
const derive = type === 'BLAKE2b'
? Promise.resolve(bip39.toBlake2bSeed())
: bip39.toBip39Seed(mnemonicSalt ?? '')