Skip to content

Commit 1554a20

Browse files
author
jagdeep sidhu
committed
await on lockwallet when switching networks
closes hw connections deterministically before switch finishes
1 parent bfaee5a commit 1554a20

File tree

3 files changed

+16
-9
lines changed

3 files changed

+16
-9
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@
6363
"@heroicons/react": "^1.0.6",
6464
"@reduxjs/toolkit": "^2.8.2",
6565
"@sidhujag/sysweb3-core": "^1.0.27",
66-
"@sidhujag/sysweb3-keyring": "^1.0.560",
66+
"@sidhujag/sysweb3-keyring": "^1.0.561",
6767
"@sidhujag/sysweb3-network": "^1.0.106",
6868
"@sidhujag/sysweb3-utils": "^1.1.271",
6969
"@tippyjs/react": "^4.2.6",

source/scripts/Background/controllers/MainController.ts

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -936,15 +936,22 @@ class MainController {
936936
}
937937

938938
// Lock all other keyrings for security AFTER everything is complete
939-
// This prevents interfering with the session transfer or state updates
940-
this.keyrings.forEach((keyring, keyringSlip44) => {
939+
// Await to guarantee hardware transports are fully released
940+
for (const [keyringSlip44, keyring] of this.keyrings.entries()) {
941941
if (keyringSlip44 !== slip44 && keyring.isUnlocked()) {
942942
console.log(
943943
`[MainController] Locking non-active keyring for slip44: ${keyringSlip44}`
944944
);
945-
keyring.lockWallet();
945+
try {
946+
await keyring.lockWallet();
947+
} catch (lockErr) {
948+
console.warn(
949+
`[MainController] Failed to lock non-active keyring ${keyringSlip44}:`,
950+
lockErr
951+
);
952+
}
946953
}
947-
});
954+
}
948955
} catch (error) {
949956
console.error('[MainController] Error in switchActiveKeyring:', error);
950957
throw error;

yarn.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2629,10 +2629,10 @@
26292629
resolved "https://registry.yarnpkg.com/@sidhujag/sysweb3-core/-/sysweb3-core-1.0.27.tgz#b7dd7d065c1845519e91ac470540ab94721eb33b"
26302630
integrity sha512-aeUJpk+DiziPJbD6HFnfixKZj0T4HYStshjk6+adziftLwamNc3MIp+MtIVZwtzvNpbzIXwAnuJM/QXQsc01NQ==
26312631

2632-
"@sidhujag/sysweb3-keyring@^1.0.560":
2633-
version "1.0.560"
2634-
resolved "https://registry.yarnpkg.com/@sidhujag/sysweb3-keyring/-/sysweb3-keyring-1.0.560.tgz#48682d2e6b985a781a347fe2af5a359288d6b241"
2635-
integrity sha512-zmfGhcoZF097NLpDIzA5s67IU9ekbjE95/cmQGtud1EAucUN0YjQUvEbknNo8llQpSiFq9NeUeJBNA25cKf6zg==
2632+
"@sidhujag/sysweb3-keyring@^1.0.561":
2633+
version "1.0.561"
2634+
resolved "https://registry.yarnpkg.com/@sidhujag/sysweb3-keyring/-/sysweb3-keyring-1.0.561.tgz#13f018f23ae89467976c79bb74eaf77b8e27578d"
2635+
integrity sha512-ZiUxk5s4FabqIzbXvyfX42ZpfYDKLXCdzbCufmHYIaVdlglg239ISagfj540Pm0UEBIADhb6YwsOEnyFXkLLEA==
26362636
dependencies:
26372637
"@bitcoinerlab/secp256k1" "^1.2.0"
26382638
"@ethersproject/abstract-provider" "^5.8.0"

0 commit comments

Comments
 (0)