diff --git a/packages/interface-keychain/package.json b/packages/interface-keychain/package.json index 19dfd06fa..5b6a84203 100644 --- a/packages/interface-keychain/package.json +++ b/packages/interface-keychain/package.json @@ -132,6 +132,7 @@ "release": "aegir release" }, "dependencies": { + "@libp2p/interface-peer-id": "^2.0.0", "multiformats": "^11.0.0" }, "devDependencies": { diff --git a/packages/interface-keychain/src/index.ts b/packages/interface-keychain/src/index.ts index 81bd6912e..72c5bf90d 100644 --- a/packages/interface-keychain/src/index.ts +++ b/packages/interface-keychain/src/index.ts @@ -1,4 +1,5 @@ import type { Multibase } from 'multiformats/bases/interface' +import type { PeerId } from '@libp2p/interface-peer-id' export interface KeyInfo { /** @@ -36,6 +37,15 @@ export interface KeyChain { */ importKey: (name: string, pem: string, password: string) => Promise + /** + * Import a new key from a PeerId with a private key component + * + * ```js + * const keyInfo = await libp2p.keychain.importPeer('keyTestImport', peerIdFromString('12D3Foo...')) + * ``` + */ + importPeer: (name: string, peerId: PeerId) => Promise + /** * Create a key in the keychain. *