From 9605c9a1b3be0979c22fe7d8e5a9a1ef583ed68e Mon Sep 17 00:00:00 2001 From: Danish Arora Date: Thu, 25 Sep 2025 20:01:48 +0530 Subject: [PATCH] fix: ens --- .../src/lib/services/UserIdentityService.ts | 34 +++++++------------ .../react/src/v1/provider/StoreWiring.tsx | 22 ++++-------- 2 files changed, 19 insertions(+), 37 deletions(-) diff --git a/packages/core/src/lib/services/UserIdentityService.ts b/packages/core/src/lib/services/UserIdentityService.ts index fdfa0b0..eab0451 100644 --- a/packages/core/src/lib/services/UserIdentityService.ts +++ b/packages/core/src/lib/services/UserIdentityService.ts @@ -81,12 +81,7 @@ export class UserIdentityService { getAll(): UserIdentity[] { return Object.entries(localDatabase.cache.userIdentities).map(([address, cached]) => ({ address, - ensName: cached.ensName, - ordinalDetails: cached.ordinalDetails, - callSign: cached.callSign, - displayPreference: cached.displayPreference, - displayName: this.getDisplayName(address), - lastUpdated: cached.lastUpdated, + ...cached, verificationStatus: this.mapVerificationStatus(cached.verificationStatus), })); } @@ -186,18 +181,17 @@ export class UserIdentityService { /** * Get display name for user based on their preferences */ - getDisplayName(address: string): string { - const identity = localDatabase.cache.userIdentities[address]; - + getDisplayName({address, ensName, displayPreference}: {address: string, ensName?: string | null, displayPreference?: EDisplayPreference}): string { + const storedIdentity = localDatabase.cache.userIdentities[address]; if ( - identity.displayPreference === EDisplayPreference.CALL_SIGN && - identity.callSign + storedIdentity?.callSign && + displayPreference === EDisplayPreference.CALL_SIGN ) { - return identity.callSign; + return storedIdentity.callSign; } - if (identity.ensName) { - return identity.ensName; + if (ensName) { + return ensName; } return `${address.slice(0, 6)}...${address.slice(-4)}`; @@ -241,10 +235,6 @@ export class UserIdentityService { this.resolveOrdinalDetails(address), ]); - // Default to wallet address display preference - const defaultDisplayPreference: EDisplayPreference = - EDisplayPreference.WALLET_ADDRESS; - const isWalletConnected = WalletManager.hasInstance() ? walletManager.getInstance().isConnected() : false; @@ -255,14 +245,16 @@ export class UserIdentityService { verificationStatus = isWalletConnected ? EVerificationStatus.WALLET_CONNECTED : EVerificationStatus.WALLET_UNCONNECTED; } + const displayPreference = localDatabase.cache.userIdentities[address]?.displayPreference ?? EDisplayPreference.WALLET_ADDRESS; + return { address, ensName: ensName || undefined, ordinalDetails: ordinalDetails || undefined, callSign: undefined, // Will be populated from Waku messages - displayPreference: defaultDisplayPreference, - displayName: this.getDisplayName(address), + displayPreference: displayPreference, + displayName: this.getDisplayName({address, ensName, displayPreference}), lastUpdated: Date.now(), verificationStatus, }; @@ -338,7 +330,7 @@ export class UserIdentityService { ordinalDetails: record.ordinalDetails, callSign: record.callSign, displayPreference: record.displayPreference, - displayName: this.getDisplayName(address), + displayName: this.getDisplayName({address, ensName: record.ensName, displayPreference: record.displayPreference}), lastUpdated: record.lastUpdated, verificationStatus: this.mapVerificationStatus(record.verificationStatus), }; diff --git a/packages/react/src/v1/provider/StoreWiring.tsx b/packages/react/src/v1/provider/StoreWiring.tsx index 730d381..20bb403 100644 --- a/packages/react/src/v1/provider/StoreWiring.tsx +++ b/packages/react/src/v1/provider/StoreWiring.tsx @@ -34,26 +34,16 @@ export const StoreWiring: React.FC = () => { }, })); - // Hydrate identity cache from LocalDatabase - const identityCache = client.database.cache.userIdentities; + // Hydrate identity cache from LocalDatabase using UserIdentityService + const allIdentities = client.userIdentityService.getAll(); const identityUpdates: Record = {}; const displayNameUpdates: Record = {}; const lastUpdatedMap: Record = {}; - for (const address of Object.keys(identityCache)) { - const identity = identityCache[address]!; - identityUpdates[address] = { - address, - ensName: identity.ensName, - ordinalDetails: identity.ordinalDetails, - callSign: identity.callSign, - displayPreference: identity.displayPreference, - displayName: client.userIdentityService.getDisplayName(address), - lastUpdated: identity.lastUpdated, - verificationStatus: identity.verificationStatus as EVerificationStatus, - }; - displayNameUpdates[address] = client.userIdentityService.getDisplayName(address); - lastUpdatedMap[address] = identity.lastUpdated; + for (const identity of allIdentities) { + identityUpdates[identity.address] = identity; + displayNameUpdates[identity.address] = identity.displayName; + lastUpdatedMap[identity.address] = identity.lastUpdated; } setOpchanState(prev => ({