@dao-xyz/peerbit
Version:
Distributed p2p database on IPFS
22 lines (21 loc) • 1.31 kB
TypeScript
import { Ed25519Keypair, Ed25519PublicKey, X25519PublicKey } from "@dao-xyz/peerbit-crypto";
import { PublicKeyEncryptionResolver, X25519Keypair } from "@dao-xyz/peerbit-crypto";
import { KeyChain } from "@libp2p/interface-keychain";
import { Cache } from "@dao-xyz/cache";
export type StorePublicKeyEncryption = (replicationTopic: string) => PublicKeyEncryptionResolver;
export declare class FastKeychain implements PublicKeyEncryptionResolver {
readonly identityKeypair: Ed25519Keypair;
private defaultEncryptionKeypair;
readonly keychain: KeyChain;
keychainCache: Cache<X25519Keypair | null>;
constructor(identityKeypair: Ed25519Keypair, defaultEncryptionKeypair: X25519Keypair, keychain: KeyChain);
static create(identityKeypair: Ed25519Keypair, keychain: KeyChain): Promise<FastKeychain>;
keychainKeyIdFromPublicKey(publicKey: X25519PublicKey): string;
exportKeypair: <T extends X25519PublicKey | Ed25519PublicKey, Q = T extends X25519PublicKey ? X25519PublicKey extends T ? X25519Keypair : Ed25519Keypair : Ed25519Keypair>(publicKey: T) => Promise<Q>;
importKeypair: (keypair: Ed25519Keypair) => Promise<void>;
getAnyKeypair: (publicKeys: any) => Promise<{
index: number;
keypair: X25519Keypair;
}>;
getEncryptionKeypair: () => X25519Keypair;
}