import 'web_of_trust.dart'; /// The third interface over the shared `NostrConnection` (Q2): the web of trust. /// Its verbs — certify / revoke / read certifications — are again distinct from /// offers and messaging, confirming the three-contract split. Certifications are /// public signed events (like the on-chain Ğ1 WoT), so this transport publishes /// and discovers rather than encrypts. abstract interface class TrustTransport { /// Publishes a signed "I vouch for [subjectPubkey]" certification, valid for /// [validity] (Duniter certifications expire and must be renewed). Future certify({ required String subjectPubkey, Duration validity = const Duration(days: 365), String note = '', }); /// Revokes this identity's certification of [subjectPubkey] (replaces the /// addressable event with a revoked one). Future revoke({required String subjectPubkey}); /// All certifications currently visible on the relay (to build a [WebOfTrust]). Future> allCertifications(); /// Distinct, currently-valid certifiers of [subjectPubkey]. Future> certifiersOf(String subjectPubkey); Future close(); }