From ab9919ba6d3e683e116b9a32a39f96cf4c2a5f65 Mon Sep 17 00:00:00 2001 From: Franck Royer Date: Thu, 23 Jun 2022 15:42:25 +1000 Subject: [PATCH] fix: Imports paths Import paths were not valid. --- src/lib/discovery/bootstrap.ts | 2 +- src/lib/discovery/random_subset.ts | 24 +++++++++++++++++++++--- src/lib/enr/keypair/index.spec.ts | 6 ++++-- src/lib/waku.ts | 4 ++-- 4 files changed, 28 insertions(+), 8 deletions(-) diff --git a/src/lib/discovery/bootstrap.ts b/src/lib/discovery/bootstrap.ts index 7f3662d562..6bec0ac5f6 100644 --- a/src/lib/discovery/bootstrap.ts +++ b/src/lib/discovery/bootstrap.ts @@ -5,7 +5,7 @@ import type { import { symbol } from "@libp2p/interface-peer-discovery"; import type { PeerInfo } from "@libp2p/interface-peer-info"; import { CustomEvent, EventEmitter } from "@libp2p/interfaces/events"; -import { peerIdFromString } from "@libp2p/peer-id/src"; +import { peerIdFromString } from "@libp2p/peer-id"; import { Multiaddr } from "@multiformats/multiaddr"; import debug from "debug"; diff --git a/src/lib/discovery/random_subset.ts b/src/lib/discovery/random_subset.ts index 27899cfd09..20d0ca83ce 100644 --- a/src/lib/discovery/random_subset.ts +++ b/src/lib/discovery/random_subset.ts @@ -1,12 +1,30 @@ -import { shuffle } from "@chainsafe/libp2p-gossipsub/utils/shuffle"; - +/** + * Return pseudo random subset of the input. + */ export function getPseudoRandomSubset( values: T[], wantedNumber: number ): T[] { - if (values.length <= wantedNumber) { + if (values.length <= wantedNumber || values.length <= 1) { return values; } return shuffle(values).slice(0, wantedNumber); } + +function shuffle(arr: T[]): T[] { + if (arr.length <= 1) { + return arr; + } + const randInt = (): number => { + return Math.floor(Math.random() * Math.floor(arr.length)); + }; + + for (let i = 0; i < arr.length; i++) { + const j = randInt(); + const tmp = arr[i]; + arr[i] = arr[j]; + arr[j] = tmp; + } + return arr; +} diff --git a/src/lib/enr/keypair/index.spec.ts b/src/lib/enr/keypair/index.spec.ts index ce9437f341..9f9a54ba6d 100644 --- a/src/lib/enr/keypair/index.spec.ts +++ b/src/lib/enr/keypair/index.spec.ts @@ -1,4 +1,4 @@ -import { Secp256k1PublicKey } from "@libp2p/crypto/dist/src/keys/secp256k1-class"; +import { supportedKeys } from "@libp2p/crypto/keys"; import { peerIdFromKeys } from "@libp2p/peer-id"; import { expect } from "chai"; @@ -25,7 +25,9 @@ describe("createPeerIdFromKeypair", function () { it("should properly create a PeerId from a secp256k1 keypair without private key", async function () { const keypair = await generateKeypair(KeypairType.secp256k1); delete (keypair as Secp256k1Keypair)._privateKey; - const pubKey = new Secp256k1PublicKey(keypair.publicKey); + const pubKey = new supportedKeys.secp256k1.Secp256k1PublicKey( + keypair.publicKey + ); const expectedPeerId = await peerIdFromKeys(pubKey.bytes); const actualPeerId = await createPeerIdFromKeypair(keypair); diff --git a/src/lib/waku.ts b/src/lib/waku.ts index 90896eb26e..8e538e133a 100644 --- a/src/lib/waku.ts +++ b/src/lib/waku.ts @@ -3,7 +3,7 @@ import type { PeerId } from "@libp2p/interface-peer-id"; import { Mplex } from "@libp2p/mplex"; import { peerIdFromString } from "@libp2p/peer-id"; import { WebSockets } from "@libp2p/websockets"; -import filters from "@libp2p/websockets/filters"; +import { all as filterAll } from "@libp2p/websockets/filters"; import { Multiaddr, multiaddr } from "@multiformats/multiaddr"; import debug from "debug"; import { createLibp2p, Libp2p, Libp2pOptions } from "libp2p"; @@ -91,7 +91,7 @@ export async function createWaku(options?: CreateOptions): Promise { // TODO: Use options const libp2pOpts = { - transports: new WebSockets({ filter: filters.all }), + transports: new WebSockets({ filter: filterAll }), streamMuxers: [new Mplex()], pubsub: new WakuRelay(), connectionEncryption: [new Noise()],