requestNip05 method

  1. @override
Future<Nip05?> requestNip05(
  1. String nip05,
  2. String pubkey
)
override

network request to get the Nip05 object

Implementation

@override
Future<Nip05?> requestNip05(String nip05, String pubkey) async {
  final identifier = _parseIdentifier(nip05);
  if (identifier == null) {
    return null;
  }

  // NIP-05: fetchers MUST ignore HTTP redirects
  final json = await httpDS.jsonRequest(
    identifier.url,
    followRedirects: false,
    timeout: timeout,
  );

  Map names = json["names"];

  Map relays = json["relays"] ?? {};

  List<String> pRelays = [];
  if (relays[pubkey] != null) {
    pRelays = List<String>.from(relays[pubkey]);
  }

  bool valid = names[identifier.name] == pubkey;

  final result = Nip05Model(
    pubKey: pubkey,
    nip05: nip05,
    valid: valid,
    networkFetchTime: DateTime.now().millisecondsSinceEpoch ~/ 1000,
    relays: pRelays,
  );

  return result;
}