mirror of
https://github.com/waku-org/nwaku.git
synced 2025-01-09 06:22:41 +00:00
38 lines
951 B
Nim
38 lines
951 B
Nim
|
import
|
||
|
sequtils,
|
||
|
stew/results,
|
||
|
stew/shims/net,
|
||
|
chronos,
|
||
|
libp2p/crypto/crypto as libp2p_keys,
|
||
|
eth/keys as eth_keys
|
||
|
|
||
|
import
|
||
|
../../../waku/[waku_core/topics, waku_enr, waku_discv5, waku_enr/sharding],
|
||
|
../testlib/[common, wakucore]
|
||
|
|
||
|
proc newTestEnrRecord*(
|
||
|
privKey: libp2p_keys.PrivateKey,
|
||
|
extIp: string,
|
||
|
tcpPort: uint16,
|
||
|
udpPort: uint16,
|
||
|
indices: seq[uint64] = @[],
|
||
|
flags = none(CapabilitiesBitfield),
|
||
|
): waku_enr.Record =
|
||
|
var builder = EnrBuilder.init(privKey)
|
||
|
builder.withIpAddressAndPorts(
|
||
|
ipAddr = some(parseIpAddress(extIp)),
|
||
|
tcpPort = some(Port(tcpPort)),
|
||
|
udpPort = some(Port(udpPort)),
|
||
|
)
|
||
|
|
||
|
if indices.len > 0:
|
||
|
let
|
||
|
byteSeq: seq[byte] = indices.mapIt(cast[byte](it))
|
||
|
relayShards = fromIndicesList(byteSeq).get()
|
||
|
discard builder.withWakuRelayShardingIndicesList(relayShards)
|
||
|
|
||
|
if flags.isSome():
|
||
|
builder.withWakuCapabilities(flags.get())
|
||
|
|
||
|
builder.build().tryGet()
|