isValidBunkerUrl property

bool get isValidBunkerUrl

Implementation

bool get isValidBunkerUrl {
  final bunkerText = bunkerFieldController.text.trim();

  try {
    final uri = Uri.parse(bunkerText);

    // Check if scheme is bunker
    if (uri.scheme != 'bunker') return false;

    // Check if host (pubkey) is valid hex (64 characters)
    if (uri.host.length != 64) return false;
    if (!RegExp(r'^[a-fA-F0-9]+$').hasMatch(uri.host)) return false;

    // Check if at least one relay parameter exists
    if (!uri.queryParameters.containsKey('relay')) return false;

    return true;
  } catch (e) {
    return false;
  }
}