lotus-sdk
Version:
Central repository for several classes of tools for integrating with, and building for, the Lotusia ecosystem
39 lines (38 loc) • 1.3 kB
JavaScript
export function publicKeyToHex(publicKey) {
return publicKey.toString();
}
export function hexToPublicKey(hex) {
return hex;
}
export function isValidSignerCriteria(criteria) {
return criteria.protocol === 'musig2';
}
export function isValidSigningRequestCriteria(criteria) {
return criteria.protocol === 'musig2-request';
}
export function isValidSignerAdvertisement(ad) {
return (ad.protocol === 'musig2' &&
typeof ad.id === 'string' &&
ad.publicKey !== undefined &&
Array.isArray(ad.transactionTypes));
}
export function isValidSigningRequestAdvertisement(ad) {
return (ad.protocol === 'musig2-request' &&
typeof ad.requestId === 'string' &&
Array.isArray(ad.requiredPublicKeys) &&
ad.requiredPublicKeys.length > 0 &&
typeof ad.messageHash === 'string' &&
typeof ad.creatorPeerId === 'string');
}
export const DEFAULT_MUSIG2_DISCOVERY_CONFIG = {
signerKeyPrefix: 'musig2:signer:',
requestKeyPrefix: 'musig2:request:',
signerTTL: 30 * 60 * 1000,
requestTTL: 10 * 60 * 1000,
enableBurnValidation: false,
minBurnAmount: 50_000_000,
chronikUrl: 'https://chronik.lotusia.org',
enableAutoRefresh: true,
signerRefreshInterval: 20 * 60 * 1000,
maxConcurrentRequests: 5,
};