Fix wallet key recognition by using restoreDevice instead of create_device_from_sp_wallet
**Motivations :** - create_device_from_sp_wallet() créait un nouveau device, effaçant birthday et last_scan - restoreDevice() préserve toutes les données existantes du device - Le faucet est temporairement désactivé car le relay n'a pas de wallet Bitcoin Core configuré **Modifications :** - src/services/service.ts : Remplacé create_device_from_sp_wallet() par restoreDevice() - src/pages/home/home.ts : Désactivé temporairement le faucet avec message explicatif - Supprimé la vérification du birthday qui n'est plus nécessaire **Pages affectées :** - src/services/service.ts : Correction de ensureWalletKeysAvailable() pour préserver les données du device - src/pages/home/home.ts : Désactivation temporaire du faucet
This commit is contained in:
parent
b83725e112
commit
b8e5ae3088
@ -723,21 +723,8 @@ async function handleMainPairing(): Promise<void> {
|
||||
await secureCredentialsService.storeCredentials(credentialData, '');
|
||||
console.log('✅ Credentials stored successfully');
|
||||
|
||||
// Request faucet tokens now that credentials are available
|
||||
console.log('🪙 Requesting faucet tokens for pairing...');
|
||||
try {
|
||||
const services = await Services.getInstance();
|
||||
|
||||
// Ensure relays are connected before requesting faucet
|
||||
console.log('🔄 Ensuring relays are connected...');
|
||||
await services.connectAllRelays();
|
||||
|
||||
await services.getTokensFromFaucet();
|
||||
console.log('✅ Faucet tokens requested successfully');
|
||||
} catch (error) {
|
||||
console.warn('⚠️ Failed to request faucet tokens:', error);
|
||||
// Don't throw - this is not critical for pairing
|
||||
}
|
||||
// Note: Faucet temporarily disabled due to relay configuration issue
|
||||
console.log('🪙 Faucet temporarily disabled - relay needs Bitcoin Core wallet configuration');
|
||||
|
||||
// Decrypt and make keys available to SDK
|
||||
console.log('🔓 Decrypting credentials for SDK access...');
|
||||
|
||||
@ -1713,32 +1713,19 @@ export default class Services {
|
||||
deviceFromDb.sp_wallet.spend_key = {Secret: credentials.spendKey};
|
||||
deviceFromDb.sp_wallet.scan_key = credentials.scanKey;
|
||||
|
||||
// Créer un nouveau device avec les clés mises à jour via create_device_from_sp_wallet
|
||||
console.log('🔧 Creating new device with updated keys...');
|
||||
// Restaurer le device complet avec toutes les informations (birthday, last_scan, clés)
|
||||
this.restoreDevice(deviceFromDb);
|
||||
|
||||
// Forcer la mise à jour des clés dans le SDK en appelant dump_wallet
|
||||
console.log('🔧 Forcing wallet update in SDK...');
|
||||
try {
|
||||
// Dumper le wallet pour récupérer le JSON du SpClient
|
||||
const walletJson = await this.dumpWallet();
|
||||
console.log('🔑 Wallet JSON for device creation:', typeof walletJson);
|
||||
|
||||
// Créer un nouveau device avec les clés mises à jour
|
||||
const newAddress = await this.sdkClient.create_device_from_sp_wallet(walletJson);
|
||||
console.log('✅ New device created with address:', newAddress);
|
||||
await this.dumpWallet();
|
||||
console.log('✅ Wallet updated in SDK');
|
||||
} catch (error) {
|
||||
console.warn('⚠️ Failed to create new device with updated keys:', error);
|
||||
// Fallback: utiliser restoreDevice
|
||||
this.restoreDevice(deviceFromDb);
|
||||
console.warn('⚠️ Failed to update wallet in SDK:', error);
|
||||
}
|
||||
|
||||
// Le nouveau device est créé avec les clés mises à jour
|
||||
console.log('✅ New device created 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) {
|
||||
console.warn(`⚠️ Birthday mismatch after restore - expected: ${deviceFromDb.sp_wallet.birthday}, got: ${deviceAfterRestore?.sp_wallet?.birthday}`);
|
||||
}
|
||||
|
||||
console.log('✅ Full device restored from database with credentials keys');
|
||||
console.log('✅ Device restored with updated keys from credentials');
|
||||
} catch (credentialError) {
|
||||
console.error('❌ Failed to restore wallet keys from credentials:', credentialError);
|
||||
throw new Error('❌ Wallet keys not available - WebAuthn decryption required');
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user