fix: WalletConnect race conditions, session validation and timeout handling

This commit is contained in:
2026-02-23 00:16:34 +03:00
parent 73b5ebece6
commit 87dfc249aa
10 changed files with 136 additions and 51 deletions
+19
View File
@@ -551,6 +551,25 @@ export const PezkuwiProvider: React.FC<PezkuwiProviderProps> = ({
}
};
// Listen for remote WalletConnect disconnects (wallet side)
useEffect(() => {
const handleWcDisconnect = () => {
if (walletSource === 'walletconnect') {
setAccounts([]);
handleSetSelectedAccount(null);
setWalletSource(null);
setWcPeerName(null);
if (import.meta.env.DEV) {
console.log('🔌 WalletConnect session ended remotely');
}
}
};
window.addEventListener('walletconnect_disconnected', handleWcDisconnect);
return () => window.removeEventListener('walletconnect_disconnected', handleWcDisconnect);
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [walletSource]);
const value: PezkuwiContextType = {
api,
assetHubApi,