@@ -2,16 +2,8 @@ import { EventEmitter } from "events";
22import debug from "debug" ;
33import { randomBytes } from "@libp2p/crypto" ;
44import { Multiaddr } from "@multiformats/multiaddr" ;
5- import { CodeError , PeerId } from "@libp2p/interface" ;
6- import {
7- createPeerIdFromPublicKey ,
8- createPrivateKeyFromPeerId ,
9- ENR ,
10- NodeId ,
11- MAX_RECORD_SIZE ,
12- createNodeId ,
13- SignableENR ,
14- } from "@chainsafe/enr" ;
5+ import { PeerId , PrivateKey } from "@libp2p/interface" ;
6+ import { createPeerIdFromPublicKey , ENR , NodeId , MAX_RECORD_SIZE , createNodeId , SignableENR } from "@chainsafe/enr" ;
157
168import { BindAddrs , IPMode , ITransportService , UDPTransportService } from "../transport/index.js" ;
179import { MAX_PACKET_SIZE } from "../packet/index.js" ;
@@ -44,7 +36,7 @@ import {
4436 RequestId ,
4537} from "../message/index.js" ;
4638import { AddrVotes } from "./addrVotes.js" ;
47- import { toBuffer } from "../util/index.js" ;
39+ import { CodeError , toBuffer } from "../util/index.js" ;
4840import { IDiscv5Config , defaultConfig } from "../config/index.js" ;
4941import { createNodeContact , getNodeAddress , getNodeId , INodeAddress , NodeContact } from "../session/nodeInfo.js" ;
5042import {
@@ -89,7 +81,7 @@ const log = debug("discv5:service");
8981
9082export interface IDiscv5CreateOptions {
9183 enr : SignableENRInput ;
92- peerId : PeerId ;
84+ privateKey : PrivateKey ;
9385 bindAddrs : BindAddrs ;
9486 config ?: Partial < IDiscv5Config > ;
9587 metricsRegistry ?: MetricsRegister | null ;
@@ -207,16 +199,15 @@ export class Discv5 extends (EventEmitter as { new (): Discv5EventEmitter }) {
207199 * Convenience method to create a new discv5 service.
208200 *
209201 * @param enr the ENR record identifying the current node.
210- * @param peerId the PeerId with the keypair that identifies the enr
202+ * @param privateKey the PrivateKey that identifies the enr
211203 * @param multiaddr The multiaddr which contains the network interface and port to which the UDP server binds
212204 */
213205 public static create ( opts : IDiscv5CreateOptions ) : Discv5 {
214- const { enr, peerId , bindAddrs, config = { } , metricsRegistry, transport } = opts ;
206+ const { enr, privateKey , bindAddrs, config = { } , metricsRegistry, transport } = opts ;
215207 const fullConfig = { ...defaultConfig , ...config } ;
216208 const metrics = metricsRegistry ? createDiscv5Metrics ( metricsRegistry ) : undefined ;
217- const { type, privateKey } = createPrivateKeyFromPeerId ( peerId ) ;
218- const keypair = createKeypair ( { type, privateKey } ) ;
219- const decodedEnr = typeof enr === "string" ? SignableENR . decodeTxt ( enr , privateKey ) : enr ;
209+ const keypair = createKeypair ( { type : privateKey . type , privateKey : privateKey . raw } ) ;
210+ const decodedEnr = typeof enr === "string" ? SignableENR . decodeTxt ( enr , privateKey . raw ) : enr ;
220211 const rateLimiter = opts . rateLimiterOpts && new RateLimiter ( opts . rateLimiterOpts , metrics ?? null ) ;
221212 const sessionService = new SessionService (
222213 fullConfig ,
@@ -309,7 +300,7 @@ export class Discv5 extends (EventEmitter as { new (): Discv5EventEmitter }) {
309300 return this . sessionService . keypair ;
310301 }
311302
312- public peerId ( ) : Promise < PeerId > {
303+ public get peerId ( ) : PeerId {
313304 return createPeerIdFromPublicKey ( this . keypair . type , this . keypair . publicKey ) ;
314305 }
315306
0 commit comments