Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 24 additions & 5 deletions assets/js/webapp/wallet.js
Original file line number Diff line number Diff line change
Expand Up @@ -276,10 +276,6 @@ window.addEventListener('load', async () => {
if (savedAddr) {
console.log(`🔄 Memory Recall: Restoring session for ${savedMethod}: ${savedAddr.slice(0, 6)}...`);

// Immediate UI Update (Prevent flicker)
setWalletState(true, savedAddr, savedMethod);
if (typeof updateWalletBalances === 'function') updateWalletBalances();

// Background Verification: Don't await this, just trigger it
getPhantomSDK().then(sdk => {
if (savedMethod === 'injected') {
Expand Down Expand Up @@ -311,8 +307,31 @@ window.addEventListener('load', async () => {
console.log("Injected connect attempt failed or dismissed");
}
}

// 4) Mobile reconnect guard – verify with Phantom before we ever fall back to `false`
if (savedMethod === 'phantom') {
try {
const provider = await getPhantomSDK();

// Only if Phantom actually says we're connected do we trust the cached address
const isConnected = provider?.isConnected?.();
if (isConnected && savedAddr) {
setWalletState(true, savedAddr, 'phantom');
await updateWalletBalances(savedAddr, 'phantom');
} else {
// Phantom not connected anymore – treat as fully disconnected
setWalletState(false);
}
} catch (err) {
console.warn('Phantom mobile reconnect check failed:', err);
setWalletState(false);
}

// We handled the Phantom branch explicitly, so bail out of the load listener here
return;
}

// 4. Final Fallback: Default to Disconnected
// 5. Final Fallback: Default to Disconnected
setWalletState(false);
});

Expand Down
Loading