Fix wallet keys not being recognized by SDK after restore

**Motivations :**
- Le faucet envoie des fonds mais le wallet ne les détecte pas
- Les clés sont restaurées mais le SDK ne les reconnaît pas
- Besoin de forcer la régénération du wallet après restauration

**Modifications :**
- src/services/service.ts : Ajout de dump_wallet() après restoreDevice() pour forcer la mise à jour des clés dans le SDK
- Cela permet au SDK de reconnaître les clés restaurées et de détecter les fonds

**Pages affectées :**
- src/services/service.ts : Amélioration de ensureWalletKeysAvailable() pour forcer la régénération du wallet
This commit is contained in:
NicolasCantu 2025-10-29 22:04:14 +01:00
parent 37fef26b8b
commit f1beeca103

View File

@ -1715,6 +1715,11 @@ export default class Services {
// Restaurer le device complet avec toutes les informations (birthday, last_scan, clés)
this.restoreDevice(deviceFromDb);
// Forcer la régénération du wallet pour que le SDK reconnaisse les clés
console.log('🔧 Forcing wallet regeneration to update SDK keys...');
const wallet = await this.sdkClient.dump_wallet();
console.log('✅ Wallet regenerated with updated keys');
// Vérifier que le birthday est bien préservé après restauration
const deviceAfterRestore = this.dumpDeviceFromMemory();
if (deviceAfterRestore?.sp_wallet?.birthday !== deviceFromDb.sp_wallet.birthday) {
@ -2344,7 +2349,7 @@ export default class Services {
} else {
throw new Error(`Final save verification failed: expected last_scan ${this.currentBlockHeight}, got ${finalDevice?.sp_wallet?.last_scan}`);
}
// Request faucet tokens for new wallet
console.log('🪙 Requesting faucet tokens for new wallet...');
try {
@ -2354,7 +2359,7 @@ export default class Services {
console.warn('⚠️ Failed to request faucet tokens:', error);
// Don't throw - this is not critical for wallet creation
}
console.log('✅ updateDeviceBlockHeight completed successfully for new device');
return;
} catch (e) {