Force wallet update in SDK after restoreDevice to recognize keys
**Motivations :** - Les clés sont injectées correctement mais le SDK ne les reconnaît pas - has_spend_key: false, has_scan_key: false malgré l'injection des clés - restoreDevice() ne met pas à jour les clés dans le SDK **Modifications :** - src/services/service.ts : Ajout d'appel à dumpWallet() après restoreDevice() - dumpWallet() force la mise à jour des clés dans le SDK - Appliqué aux deux endroits où les clés sont injectées **Pages affectées :** - src/services/service.ts : Amélioration de ensureWalletKeysAvailable() pour forcer la mise à jour SDK
This commit is contained in:
parent
fb47dfbfd2
commit
3ee99dea5a
@ -1715,9 +1715,15 @@ export default class Services {
|
|||||||
|
|
||||||
// Restaurer le device complet avec toutes les informations (birthday, last_scan, clés)
|
// Restaurer le device complet avec toutes les informations (birthday, last_scan, clés)
|
||||||
this.restoreDevice(deviceFromDb);
|
this.restoreDevice(deviceFromDb);
|
||||||
|
|
||||||
// Forcer la mise à jour des clés dans le SDK
|
// Forcer la mise à jour des clés dans le SDK
|
||||||
console.log('🔧 Forcing wallet keys update in SDK...');
|
console.log('🔧 Forcing wallet update in SDK...');
|
||||||
|
try {
|
||||||
|
await this.dumpWallet();
|
||||||
|
console.log('✅ Wallet updated in SDK');
|
||||||
|
} catch (error) {
|
||||||
|
console.warn('⚠️ Failed to update wallet in SDK:', error);
|
||||||
|
}
|
||||||
|
|
||||||
// Injecter les clés directement dans le device en mémoire
|
// Injecter les clés directement dans le device en mémoire
|
||||||
const deviceInMemory = this.dumpDeviceFromMemory();
|
const deviceInMemory = this.dumpDeviceFromMemory();
|
||||||
@ -1726,16 +1732,26 @@ export default class Services {
|
|||||||
// spend_key doit être un objet {Secret: string}
|
// spend_key doit être un objet {Secret: string}
|
||||||
deviceInMemory.sp_wallet.spend_key = {Secret: credentials.spendKey};
|
deviceInMemory.sp_wallet.spend_key = {Secret: credentials.spendKey};
|
||||||
deviceInMemory.sp_wallet.scan_key = credentials.scanKey;
|
deviceInMemory.sp_wallet.scan_key = credentials.scanKey;
|
||||||
|
|
||||||
console.log('🔧 Injected keys:', {
|
console.log('🔧 Injected keys:', {
|
||||||
spend_key_type: typeof deviceInMemory.sp_wallet.spend_key,
|
spend_key_type: typeof deviceInMemory.sp_wallet.spend_key,
|
||||||
scan_key_type: typeof deviceInMemory.sp_wallet.scan_key,
|
scan_key_type: typeof deviceInMemory.sp_wallet.scan_key,
|
||||||
spend_key_secret: deviceInMemory.sp_wallet.spend_key?.Secret ? 'present' : 'missing'
|
spend_key_secret: deviceInMemory.sp_wallet.spend_key?.Secret ? 'present' : 'missing'
|
||||||
});
|
});
|
||||||
|
|
||||||
// Restaurer le device avec les clés mises à jour
|
// Restaurer le device avec les clés mises à jour
|
||||||
this.restoreDevice(deviceInMemory);
|
this.restoreDevice(deviceInMemory);
|
||||||
console.log('✅ Wallet keys injected and device restored');
|
|
||||||
|
// Forcer la mise à jour des clés dans le SDK
|
||||||
|
console.log('🔧 Forcing wallet update in SDK...');
|
||||||
|
try {
|
||||||
|
await this.dumpWallet();
|
||||||
|
console.log('✅ Wallet updated in SDK');
|
||||||
|
} catch (error) {
|
||||||
|
console.warn('⚠️ Failed to update wallet in SDK:', error);
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log('✅ Wallet keys injected and device restored');
|
||||||
} else {
|
} else {
|
||||||
console.warn('⚠️ Could not inject keys - missing data');
|
console.warn('⚠️ Could not inject keys - missing data');
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user