Optimize block scanning and fix pairing page HTML
**Motivations :** - Le scan des blocs était refait inutilement dans la page de pairing même si le wallet était déjà synchronisé - Le HTML de la page de pairing était cassé à cause de la duplication du CSS - ensureCompleteInitialScan() forçait un scan complet sans vérifier l'état de synchronisation **Modifications :** - service.ts : Ajout de vérification de synchronisation dans ensureCompleteInitialScan() pour éviter les scans redondants - pairing.ts : Suppression de la duplication du CSS et simplification de l'injection de contenu - Logs améliorés : Ajout de logs pour indiquer si le wallet est déjà synchronisé **Pages affectées :** - src/services/service.ts : Optimisation de ensureCompleteInitialScan() - src/pages/pairing/pairing.ts : Correction de l'affichage HTML
This commit is contained in:
parent
1e531ac157
commit
dff9eed76e
@ -7,7 +7,6 @@ import { getCorrectDOM } from '../../utils/html.utils';
|
|||||||
import { IframePairingComponent } from '../../components/iframe-pairing/iframe-pairing';
|
import { IframePairingComponent } from '../../components/iframe-pairing/iframe-pairing';
|
||||||
import { checkPBKDF2Key, checkWalletWithRetries } from '../../utils/prerequisites.utils';
|
import { checkPBKDF2Key, checkWalletWithRetries } from '../../utils/prerequisites.utils';
|
||||||
import loginHtml from '../home/home.html?raw';
|
import loginHtml from '../home/home.html?raw';
|
||||||
import loginCss from '../../4nk.css?raw';
|
|
||||||
|
|
||||||
// Extend WindowEventMap to include custom events
|
// Extend WindowEventMap to include custom events
|
||||||
declare global {
|
declare global {
|
||||||
@ -93,12 +92,8 @@ document.addEventListener('DOMContentLoaded', async () => {
|
|||||||
updateStatus('🔄 Initialisation du pairing...', 'loading');
|
updateStatus('🔄 Initialisation du pairing...', 'loading');
|
||||||
|
|
||||||
if (pairingContent) {
|
if (pairingContent) {
|
||||||
pairingContent.innerHTML = `
|
// Injecter seulement le HTML, le CSS est déjà chargé via le <link> dans le <head>
|
||||||
<style>
|
pairingContent.innerHTML = loginHtml;
|
||||||
${loginCss}
|
|
||||||
</style>
|
|
||||||
${loginHtml}
|
|
||||||
`;
|
|
||||||
|
|
||||||
// Créer un conteneur simulant login-4nk-component pour getCorrectDOM
|
// Créer un conteneur simulant login-4nk-component pour getCorrectDOM
|
||||||
const mockContainer = document.createElement('div');
|
const mockContainer = document.createElement('div');
|
||||||
|
|||||||
@ -2301,6 +2301,7 @@ export default class Services {
|
|||||||
/**
|
/**
|
||||||
* Ensures a complete initial scan is performed before requesting faucet tokens
|
* Ensures a complete initial scan is performed before requesting faucet tokens
|
||||||
* This prevents the race condition between scan and faucet transactions
|
* This prevents the race condition between scan and faucet transactions
|
||||||
|
* Only performs scan if wallet is not already synchronized
|
||||||
*/
|
*/
|
||||||
public async ensureCompleteInitialScan(): Promise<void> {
|
public async ensureCompleteInitialScan(): Promise<void> {
|
||||||
console.log('🔄 Ensuring complete initial scan...');
|
console.log('🔄 Ensuring complete initial scan...');
|
||||||
@ -2311,9 +2312,18 @@ export default class Services {
|
|||||||
throw new Error('Device not found or wallet not initialized');
|
throw new Error('Device not found or wallet not initialized');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Force a complete scan from birthday to current block height
|
// Check if wallet is already synchronized
|
||||||
const scanFromHeight = Math.max(0, this.currentBlockHeight - 100);
|
const lastScan = device.sp_wallet.last_scan || 0;
|
||||||
console.log(`🔄 Performing complete scan from block ${scanFromHeight} to ${this.currentBlockHeight}...`);
|
const isSynchronized = lastScan >= this.currentBlockHeight;
|
||||||
|
|
||||||
|
if (isSynchronized) {
|
||||||
|
console.log(`✅ Wallet already synchronized (last_scan: ${lastScan}, current: ${this.currentBlockHeight})`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Only scan if wallet is not synchronized
|
||||||
|
console.log(`🔄 Wallet needs synchronization (last_scan: ${lastScan}, current: ${this.currentBlockHeight})`);
|
||||||
|
console.log(`🔄 Performing scan from block ${lastScan} to ${this.currentBlockHeight}...`);
|
||||||
|
|
||||||
await this.sdkClient.scan_blocks(this.currentBlockHeight, BLINDBITURL);
|
await this.sdkClient.scan_blocks(this.currentBlockHeight, BLINDBITURL);
|
||||||
console.log('✅ Complete initial scan completed');
|
console.log('✅ Complete initial scan completed');
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user