lotus-sdk
Version:
Central repository for several classes of tools for integrating with, and building for, the Lotusia ecosystem
32 lines • 1.39 kB
TypeScript
import type { P2PCoordinator } from '../coordinator.js';
import { PrivateKey } from '../../bitcore/privatekey.js';
import { type IDiscoveryAdvertiser, type DiscoveryAdvertisement, type DiscoveryOptions } from './types.js';
export declare class DHTAdvertiser implements IDiscoveryAdvertiser {
private readonly coordinator;
private readonly activeAdvertisements;
private readonly rateLimitTracker;
private started;
private cleanupTimer?;
private signingKey?;
constructor(coordinator: P2PCoordinator, signingKey?: PrivateKey);
advertise(advertisement: DiscoveryAdvertisement, options?: DiscoveryOptions): Promise<string>;
withdraw(advertisementId: string): Promise<void>;
refresh(advertisementId: string, options?: DiscoveryOptions): Promise<void>;
getActiveAdvertisements(): string[];
isAdvertisementActive(advertisementId: string): boolean;
start(): Promise<void>;
stop(): Promise<void>;
private signAdvertisement;
private constructSignedMessage;
setSigningKey(signingKey: PrivateKey): void;
getSigningKey(): PrivateKey | undefined;
private validateAdvertisement;
private checkRateLimits;
private publishToDHT;
private getGossipSubTopic;
private removeFromDHT;
private getDHTKey;
private setupRefreshTimer;
private cleanupExpiredAdvertisements;
}
//# sourceMappingURL=dht-advertiser.d.ts.map