Add NIP-19 (npub/nsec), NIP-05 verification, and arbitrary-pubkey profile fetch

- nip19.dart: bech32 encodeNpub/encodeNsec for raw keys (no TLV entities),
  verified against the canonical NIP-19 test vectors.
- nip05.dart: verifyNip05 with an injectable http.Client plus a pure
  nip05MatchesPubkey helper for the .well-known/nostr.json check.
- fetchProfileFor(fetcher, pubkey): fetches and parses any user's kind-0 into
  a typed NostrProfile (newest-wins), generalizing the own-key FetchProfile.
- Export all three from swarm.dart; unit tests for each (bech32 vectors,
  MockClient HTTP cases, fake-relay profile parsing).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
randogoth 2026-06-24 11:34:35 +03:00
parent 719aaca022
commit 582b0505cb
7 changed files with 376 additions and 0 deletions

View file

@ -8,3 +8,5 @@ export 'src/file_upload_actor.dart';
export 'src/file_download_actor.dart';
export 'src/nostr_account_actor.dart';
export 'src/nip46_signer_actor.dart';
export 'src/nip19.dart';
export 'src/nip05.dart';