lotus-sdk
Version:
Central repository for several classes of tools for integrating with, and building for, the Lotusia ecosystem
85 lines • 3.11 kB
TypeScript
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