pubKeyFromIdentifierNip05 method
Return the public key found by the NIP05 implementation via the given for the given internetIdentifier
Example:
final pubKey = await Nostr.instance.relays.pubKeyFromIdentifierNip05(
internetIdentifier: "localPart@domainPart",
);
print(pubKey); // ...
Implementation
Future<String?> pubKeyFromIdentifierNip05({
required String internetIdentifier,
}) async {
try {
final localPart = internetIdentifier.split('@')[0];
final domainPart = internetIdentifier.split('@')[1];
logger.log(
'Attempt to fetch pubkey for $internetIdentifier from $domainPart',
);
final res = await http.get(
Uri.parse('https://$domainPart/.well-known/nostr.json?name=$localPart'),
);
final decoded = jsonDecode(res.body) as Map<String, dynamic>;
if (decoded
case {
'names': final names as Map<String, dynamic>,
}) {
logger.log(
'Pubkey for $localPart is ${names[localPart] ?? 'not found'} '
'at $domainPart',
);
return names[localPart] as String?;
}
return null;
} on Exception catch (e) {
logger.log(
'error while verifying nip05 for internet identifier: '
'$internetIdentifier',
e,
);
throw Nip05VerificationException(parent: e);
}
}