throw new RangeError('Timeout must be at most 10 minutes')
}
_timeout = timeout * 1000
- _timer = new VaultTimer(() => lock(), _timeout)
+ _timer = new VaultTimer(_autolock, _timeout)
}
return Promise.resolve()
} catch (err) {
const prv = new Uint8Array(result)
const pub = nano25519_derive(prv)
prv.fill(0)
- _timer = new VaultTimer(() => lock(), _timeout)
+ _timer = new VaultTimer(_autolock, _timeout)
return { index, publicKey: pub.buffer }
})
} catch (err) {
const pub = nano25519_derive(prv)
const sig = nano25519_sign(new Uint8Array(data), new Uint8Array([...prv, ...pub]))
prv.fill(0)
- _timer = new VaultTimer(() => lock(), _timeout)
+ _timer = new VaultTimer(_autolock, _timeout)
return { signature: sig.buffer }
})
} catch (err) {
_seed = seed
_mnemonic = mnemonic
_locked = false
- _timer = new VaultTimer(lock, _timeout)
+ _timer = new VaultTimer(_autolock, _timeout)
return Promise.resolve({ isLocked: false })
})
.catch(err => {
}
return WalletAesGcm.encrypt(_type, key, _seed, _mnemonic)
.then(({ iv, encrypted }) => {
- _timer = new VaultTimer(() => lock(), _timeout)
+ _timer = new VaultTimer(_autolock, _timeout)
return { iv, salt, encrypted }
})
} catch (err) {
}
}
+async function _autolock (): Promise<void> {
+ const { isLocked } = await lock()
+ const id = 'autolock'
+ BROWSER: self.postMessage({ url: location.href, id, isLocked })
+ NODE: parentPort?.postMessage({ data: { url: threadId.toString(), id, isLocked } })
+}
+
function _ckd (index: number): Promise<ArrayBuffer> {
if (_seed == null) {
throw new Error('Wallet seed not found')