diff --git a/codexdht/private/eth/p2p/discoveryv5/random2.nim b/codexdht/private/eth/p2p/discoveryv5/random2.nim index 7ff973b..17c3260 100644 --- a/codexdht/private/eth/p2p/discoveryv5/random2.nim +++ b/codexdht/private/eth/p2p/discoveryv5/random2.nim @@ -15,3 +15,8 @@ proc rand*(rng: Rng, max: Natural): int = proc sample*[T](rng: Rng, a: openArray[T]): T = result = a[rng.rand(a.high)] + +proc shuffle*[T](rng: Rng, a: var openArray[T]) = + for i in countdown(a.high, 1): + let j = rng.rand(i) + swap(a[i], a[j]) diff --git a/codexdht/private/eth/p2p/discoveryv5/routing_table.nim b/codexdht/private/eth/p2p/discoveryv5/routing_table.nim index 4ed8fc2..95a38f4 100644 --- a/codexdht/private/eth/p2p/discoveryv5/routing_table.nim +++ b/codexdht/private/eth/p2p/discoveryv5/routing_table.nim @@ -12,7 +12,7 @@ import stint, chronicles, metrics, bearssl/rand, chronos, "."/[node, random2, spr] -from libp2p/crypto/crypto import Rng, shuffle +from libp2p/crypto/crypto import Rng export options