UNPKG

lotus-sdk

Version:

Central repository for several classes of tools for integrating with, and building for, the Lotusia ecosystem

85 lines 3.11 kB
import type { PublicKey } from '../../bitcore/publickey.js'; import type { DiscoveryCriteria, DiscoveryAdvertisement } from '../discovery/types.js'; import type { TransactionType } from './types.js'; export interface MuSig2SignerCriteria extends DiscoveryCriteria { protocol: 'musig2'; transactionTypes?: TransactionType[]; minAmount?: number; maxAmount?: number; requiredPublicKeys?: string[]; minMaturation?: number; minTotalBurned?: number; } export interface MuSig2SigningRequestCriteria extends DiscoveryCriteria { protocol: 'musig2-request'; transactionType?: TransactionType; amountRange?: { min?: number; max?: number; }; includesPublicKeys?: string[]; creatorPeerIds?: string[]; expiresAfter?: number; } export interface MuSig2SignerAdvertisement extends DiscoveryAdvertisement { protocol: 'musig2'; publicKey: PublicKey; transactionTypes: TransactionType[]; amountRange?: { min?: number; max?: number; }; signerMetadata?: { nickname?: string; description?: string; fee?: number; averageResponseTime?: number; identity?: { identityId: string; totalBurned: number; maturationBlocks: number; registeredAt: number; }; }; } export interface MuSig2SigningRequestAdvertisement extends DiscoveryAdvertisement { protocol: 'musig2-request'; requestId: string; requiredPublicKeys: string[]; messageHash: string; creatorPeerId: string; creatorPublicKey: string; requestMetadata?: { transactionHex?: string; amount?: number; transactionType?: TransactionType; purpose?: string; joinedParticipants?: Array<{ index: number; peerId: string; publicKey: string; joinedAt: number; }>; }; creatorSignature: Buffer; } export declare function publicKeyToHex(publicKey: PublicKey): string; export declare function hexToPublicKey(hex: string): string; export declare function isValidSignerCriteria(criteria: Partial<MuSig2SignerCriteria>): criteria is MuSig2SignerCriteria; export declare function isValidSigningRequestCriteria(criteria: Partial<MuSig2SigningRequestCriteria>): criteria is MuSig2SigningRequestCriteria; export declare function isValidSignerAdvertisement(ad: Partial<MuSig2SignerAdvertisement>): ad is MuSig2SignerAdvertisement; export declare function isValidSigningRequestAdvertisement(ad: Partial<MuSig2SigningRequestAdvertisement>): ad is MuSig2SigningRequestAdvertisement; export interface MuSig2DiscoveryConfig { signerKeyPrefix?: string; requestKeyPrefix?: string; signerTTL?: number; requestTTL?: number; enableBurnValidation?: boolean; minBurnAmount?: number; chronikUrl?: string | string[]; enableAutoRefresh?: boolean; signerRefreshInterval?: number; maxConcurrentRequests?: number; } export declare const DEFAULT_MUSIG2_DISCOVERY_CONFIG: Required<MuSig2DiscoveryConfig>; //# sourceMappingURL=discovery-types.d.ts.map