@nostr-relay/wot-guard
Version:
41 lines (40 loc) • 1.44 kB
TypeScript
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;
}