lotus-sdk
Version:
Central repository for several classes of tools for integrating with, and building for, the Lotusia ecosystem
37 lines (36 loc) • 1.18 kB
JavaScript
import { peerIdFromString, peerIdFromPrivateKey } from '@libp2p/peer-id';
import { generateKeyPair } from '@libp2p/crypto/keys';
export async function createPeerIdFromPrivateKey(privateKey) {
const keyPair = await generateKeyPair('Ed25519');
return peerIdFromPrivateKey(keyPair);
}
export async function createRandomPeerId() {
const keyPair = await generateKeyPair('Ed25519');
return peerIdFromPrivateKey(keyPair);
}
export function parsePeerId(peerIdStr) {
return peerIdFromString(peerIdStr);
}
export function serializePeerId(peerId) {
return peerId.toString();
}
export function parseMultiaddrs(addrs) {
if (typeof addrs === 'string') {
return [addrs];
}
return addrs;
}
export function waitForEvent(emitter, event, timeoutMs) {
return new Promise((resolve, reject) => {
let timeout = undefined;
if (timeoutMs !== undefined) {
timeout = setTimeout(() => {
reject(new Error(`Timeout waiting for event: ${String(event)}`));
}, timeoutMs);
}
emitter.once(event, (data) => {
clearTimeout(timeout);
resolve(data);
});
});
}