UNPKG

@nostr-relay/wot-guard

Version:
41 lines (40 loc) 1.44 kB
import { BeforeHandleEventPlugin, BeforeHandleEventResult, Event, EventRepository, Filter, Logger, Pubkey } from '@nostr-relay/common'; import { Agent } from 'http'; export type WotGuardOptions = { enabled?: boolean; trustAnchorPubkey?: Pubkey; trustDepth?: number; logger?: Logger; eventRepository?: EventRepository; relayUrls?: string[]; skipFilters?: Filter[]; agent?: Agent; }; export declare class WotGuard implements BeforeHandleEventPlugin { private readonly logger; private readonly eventRepository?; private enabled; private trustAnchorPubkey?; private trustDepth; private relayUrls; private skipFilters; private intervalId; private trustedPubkeySet; private lastRefreshedAt; private agent?; constructor({ trustAnchorPubkey, trustDepth, enabled, logger, eventRepository, relayUrls, skipFilters, agent, }: WotGuardOptions); init(): Promise<void>; setEnabled(enabled: boolean): void; getEnabled(): boolean; setTrustAnchorPubkey(pubkey: Pubkey): void; setTrustDepth(depth: number): void; setAgent(agent: Agent): void; getLastRefreshedAt(): number; getTrustedPubkeyCount(): number; checkPubkey(pubkey: Pubkey): boolean; destroy(): void; beforeHandleEvent(event: Event): BeforeHandleEventResult; refreshTrustedPubkeySet(): Promise<void>; private fetchNextDepthPubkeySet; private fetchEventFromLocal; }