@@ -11,8 +11,8 @@ import 'package:whitenoise/domain/models/user_model.dart';
1111import 'package:whitenoise/src/rust/api/error.dart' show ApiError;
1212import 'package:whitenoise/src/rust/api/groups.dart' ;
1313import 'package:whitenoise/src/rust/api/users.dart' as rust_users;
14- import 'package:whitenoise/src/rust/api/utils.dart' ;
1514import 'package:whitenoise/utils/error_handling.dart' ;
15+ import 'package:whitenoise/utils/pubkey_formatter.dart' ;
1616
1717class GroupsNotifier extends Notifier <GroupsState > {
1818 final _logger = Logger ('GroupsNotifier' );
@@ -155,8 +155,8 @@ class GroupsNotifier extends Notifier<GroupsState> {
155155 final activePubkey = ref.read (activePubkeyProvider) ?? '' ;
156156 if (activePubkey.isEmpty) return null ;
157157
158- final currentUserNpub = npubFromHexPubkey (hexPubkey : activePubkey);
159- final otherUserNpub = npubFromHexPubkey (hexPubkey : otherUserPubkeyHex);
158+ final currentUserNpub = PubkeyFormatter (pubkey : activePubkey). toNpub ( );
159+ final otherUserNpub = PubkeyFormatter (pubkey : otherUserPubkeyHex). toNpub ( );
160160
161161 final directMessageGroups = await getDirectMessageGroups ();
162162
@@ -310,11 +310,10 @@ class GroupsNotifier extends Notifier<GroupsState> {
310310 final List <User > members = [];
311311 for (final memberPubkey in memberPubkeys) {
312312 try {
313- final pubkeyString = npubFromHexPubkey (hexPubkey: memberPubkey);
314-
313+ final npub = PubkeyFormatter (pubkey: memberPubkey).toNpub () ?? '' ;
315314 try {
316315 final metadata = await rust_users.userMetadata (pubkey: memberPubkey);
317- final user = User .fromMetadata (metadata, pubkeyString );
316+ final user = User .fromMetadata (metadata, npub );
318317 members.add (user);
319318 } catch (metadataError) {
320319 // Log the full exception details with proper Whitenoise ApiError unpacking
@@ -328,10 +327,10 @@ class GroupsNotifier extends Notifier<GroupsState> {
328327 _logger.warning (logMessage, metadataError);
329328 // Create a fallback user with minimal info
330329 final fallbackUser = User (
331- id: pubkeyString ,
330+ id: npub ,
332331 displayName: 'Unknown User' ,
333332 nip05: '' ,
334- publicKey: pubkeyString ,
333+ publicKey: npub ,
335334 );
336335 members.add (fallbackUser);
337336 }
@@ -389,12 +388,11 @@ class GroupsNotifier extends Notifier<GroupsState> {
389388 final List <User > admins = [];
390389 for (final adminPubkey in adminPubkeys) {
391390 try {
392- // Get pubkey string first to avoid multiple uses of the same PublicKey object
393- final pubkeyString = npubFromHexPubkey (hexPubkey: adminPubkey);
391+ final npub = PubkeyFormatter (pubkey: adminPubkey).toNpub () ?? '' ;
394392
395393 try {
396394 final metadata = await rust_users.userMetadata (pubkey: adminPubkey);
397- final user = User .fromMetadata (metadata, pubkeyString );
395+ final user = User .fromMetadata (metadata, npub );
398396 admins.add (user);
399397 } catch (metadataError) {
400398 // Log the full exception details with proper ApiError unpacking
@@ -408,10 +406,10 @@ class GroupsNotifier extends Notifier<GroupsState> {
408406 _logger.warning (logMessage, metadataError);
409407 // Create a fallback user with minimal info
410408 final fallbackUser = User (
411- id: pubkeyString ,
409+ id: npub ,
412410 displayName: 'Unknown User' ,
413411 nip05: '' ,
414- publicKey: pubkeyString ,
412+ publicKey: npub ,
415413 );
416414 admins.add (fallbackUser);
417415 }
@@ -595,7 +593,7 @@ class GroupsNotifier extends Notifier<GroupsState> {
595593 final groupInformation = await getGroupInformation (groupId: group.mlsGroupId);
596594 if (groupInformation.groupType == GroupType .directMessage) {
597595 try {
598- final currentUserNpub = npubFromHexPubkey (hexPubkey : currentUserPubkey);
596+ final currentUserNpub = PubkeyFormatter (pubkey : currentUserPubkey). toNpub ( );
599597 final otherMember = getOtherGroupMember (group.mlsGroupId, currentUserNpub);
600598
601599 if (otherMember == null ) {
@@ -883,11 +881,10 @@ class GroupsNotifier extends Notifier<GroupsState> {
883881 return ;
884882 }
885883
886- final usersPubkeyHex = await Future .wait (
887- membersNpubs.map ((userNpub) async {
888- return hexPubkeyFromNpub (npub: userNpub);
889- }),
890- );
884+ final usersPubkeyHex =
885+ membersNpubs.map ((userNpub) {
886+ return PubkeyFormatter (pubkey: userNpub).toHex () ?? '' ;
887+ }).toList ();
891888
892889 await addMembersToGroup (
893890 pubkey: activePubkey,
@@ -938,11 +935,10 @@ class GroupsNotifier extends Notifier<GroupsState> {
938935 return ;
939936 }
940937
941- final usersPubkeyHex = await Future .wait (
942- membersNpubs.map ((userNpub) async {
943- return hexPubkeyFromNpub (npub: userNpub);
944- }),
945- );
938+ final usersPubkeyHex =
939+ membersNpubs.map ((userNpub) {
940+ return PubkeyFormatter (pubkey: userNpub).toHex () ?? '' ;
941+ }).toList ();
946942
947943 await removeMembersFromGroup (
948944 pubkey: activePubkey,
0 commit comments