From 0b25e43a28dea8592cff774364d96ea7a3f24891 Mon Sep 17 00:00:00 2001 From: jhl-alameda Date: Tue, 30 Mar 2021 05:32:05 +0800 Subject: [PATCH] fix 'keep unlocked' on extension --- src/utils/wallet-seed.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/utils/wallet-seed.js b/src/utils/wallet-seed.js index 35d8c8b..2531231 100644 --- a/src/utils/wallet-seed.js +++ b/src/utils/wallet-seed.js @@ -22,6 +22,11 @@ export async function mnemonicToSeed(mnemonic) { } let unlockedMnemonicAndSeed = (() => { + const unlockedExpiration = localStorage.getItem('unlockedExpiration'); + if (unlockedExpiration && Number(unlockedExpiration) < Date.now()) { + localStorage.removeItem('unlocked'); + localStorage.removeItem('unlockedExpiration'); + } const stored = JSON.parse( sessionStorage.getItem('unlocked') || localStorage.getItem('unlocked') || @@ -126,6 +131,11 @@ export async function loadMnemonicAndSeed(password, stayLoggedIn) { const decodedPlaintext = Buffer.from(plaintext).toString(); const { mnemonic, seed, derivationPath } = JSON.parse(decodedPlaintext); if (stayLoggedIn) { + if (isExtension) { + const expireMs = 1000 * 60 * 60 * 24; + localStorage.setItem('unlockedExpiration', Date.now() + expireMs); + localStorage.setItem('unlocked', decodedPlaintext); + } sessionStorage.setItem('unlocked', decodedPlaintext); } const importsEncryptionKey = deriveImportsEncryptionKey(seed);