mirror of
https://github.com/waku-org/nwaku.git
synced 2025-02-04 19:14:47 +00:00
chore: remove deprecated enr record init method
This commit is contained in:
parent
caf78249b2
commit
0627b4f8f2
@ -63,27 +63,6 @@ suite "Waku ENR - Capabilities bitfield":
|
||||
check:
|
||||
bitfield.toCapabilities() == @[Capabilities.Relay, Capabilities.Store]
|
||||
|
||||
test "encode and decode record with capabilities field (deprecated)":
|
||||
# TODO: Remove after removing the `Record.init()` proc
|
||||
## Given
|
||||
let enrkey = generatesecp256k1key()
|
||||
let caps = CapabilitiesBitfield.init(Capabilities.Relay, Capabilities.Store)
|
||||
|
||||
let record = Record.init(1, enrkey, wakuFlags=some(caps))
|
||||
|
||||
## When
|
||||
let typedRecord = record.toTyped()
|
||||
require typedRecord.isOk()
|
||||
|
||||
let bitfieldOpt = typedRecord.value.waku2
|
||||
|
||||
## Then
|
||||
check bitfieldOpt.isSome()
|
||||
|
||||
let bitfield = bitfieldOpt.get()
|
||||
check:
|
||||
bitfield.toCapabilities() == @[Capabilities.Relay, Capabilities.Store]
|
||||
|
||||
test "cannot decode capabilities from record":
|
||||
## Given
|
||||
let
|
||||
@ -221,32 +200,6 @@ suite "Waku ENR - Multiaddresses":
|
||||
multiaddrs.contains(addr1)
|
||||
multiaddrs.contains(addr2)
|
||||
|
||||
test "encode and decode record with multiaddrs field (deprecated)":
|
||||
# TODO: Remove after removing the `Record.init()` proc
|
||||
## Given
|
||||
let enrkey = generatesecp256k1key()
|
||||
let caps = CapabilitiesBitfield.init(Capabilities.Relay, Capabilities.Store)
|
||||
|
||||
let
|
||||
addr1 = MultiAddress.init("/ip4/127.0.0.1/tcp/80/ws").get()
|
||||
addr2 = MultiAddress.init("/ip4/127.0.0.1/tcp/443/wss").get()
|
||||
|
||||
## When
|
||||
let record = Record.init(1, enrkey, wakuFlags=some(caps), multiaddrs = @[addr1, addr2])
|
||||
|
||||
let typedRecord = record.toTyped()
|
||||
require typedRecord.isOk()
|
||||
|
||||
let multiaddrsOpt = typedRecord.value.multiaddrs
|
||||
|
||||
## Then
|
||||
check multiaddrsOpt.isSome()
|
||||
|
||||
let multiaddrs = multiaddrsOpt.get()
|
||||
check:
|
||||
multiaddrs.contains(addr1)
|
||||
multiaddrs.contains(addr2)
|
||||
|
||||
test "cannot decode multiaddresses from record":
|
||||
## Given
|
||||
let
|
||||
|
@ -223,16 +223,29 @@ proc init*(
|
||||
|
||||
proc getEnr*(netConfig: NetConfig,
|
||||
wakuDiscV5 = none(WakuDiscoveryV5),
|
||||
nodeKey: crypto.PrivateKey): enr.Record =
|
||||
nodeKey: crypto.PrivateKey): Result[enr.Record, string] =
|
||||
if wakuDiscV5.isSome():
|
||||
return wakuDiscV5.get().protocol.getRecord()
|
||||
return ok(wakuDiscV5.get().protocol.getRecord())
|
||||
|
||||
return enr.Record.init(1, nodekey,
|
||||
netConfig.enrIp,
|
||||
netConfig.enrPort,
|
||||
netConfig.discv5UdpPort,
|
||||
netConfig.wakuFlags,
|
||||
netConfig.enrMultiaddrs)
|
||||
var builder = EnrBuilder.init(nodeKey, seqNum = 1)
|
||||
|
||||
builder.withIpAddressAndPorts(
|
||||
ipAddr = netConfig.enrIp,
|
||||
tcpPort = netConfig.enrPort,
|
||||
udpPort = netConfig.discv5UdpPort
|
||||
)
|
||||
|
||||
if netConfig.wakuFlags.isSome():
|
||||
builder.withWakuCapabilities(netConfig.wakuFlags.get())
|
||||
|
||||
if netConfig.enrMultiAddrs.len > 0:
|
||||
builder.withMultiaddrs(netConfig.enrMultiAddrs)
|
||||
|
||||
let recordRes = builder.build()
|
||||
if recordRes.isErr():
|
||||
return err($recordRes.error)
|
||||
|
||||
return ok(recordRes.get())
|
||||
|
||||
proc getAutonatService*(rng = crypto.newRng()): AutonatService =
|
||||
## AutonatService request other peers to dial us back
|
||||
@ -347,11 +360,15 @@ proc new*(T: type WakuNode,
|
||||
services = @[Service(getAutonatService(rng))],
|
||||
)
|
||||
|
||||
let nodeEnrRes = getEnr(netConfig, wakuDiscv5, nodekey)
|
||||
if nodeEnrRes.isErr():
|
||||
raise newException(Defect, "failed to generate the node ENR record: " & $nodeEnrRes.error)
|
||||
|
||||
return WakuNode(
|
||||
peerManager: PeerManager.new(switch, peerStorage),
|
||||
switch: switch,
|
||||
rng: rng,
|
||||
enr: netConfig.getEnr(wakuDiscv5, nodekey),
|
||||
enr: nodeEnrRes.get(),
|
||||
announcedAddresses: netConfig.announcedAddresses,
|
||||
wakuDiscv5: if wakuDiscV5.isSome(): wakuDiscV5.get() else: nil,
|
||||
)
|
||||
|
@ -195,46 +195,3 @@ func multiaddrs*(record: TypedRecord): Option[seq[MultiAddress]] =
|
||||
return none(seq[MultiAddress])
|
||||
|
||||
some(decodeRes.value)
|
||||
|
||||
## Utils
|
||||
|
||||
|
||||
|
||||
## ENR
|
||||
|
||||
func init*(T: type enr.Record,
|
||||
seqNum: uint64,
|
||||
privateKey: crypto.PrivateKey,
|
||||
enrIp = none(ValidIpAddress),
|
||||
enrTcpPort = none(Port),
|
||||
enrUdpPort = none(Port),
|
||||
wakuFlags = none(CapabilitiesBitfield),
|
||||
multiaddrs: seq[MultiAddress] = @[]): T {.
|
||||
deprecated: "Use Waku commons EnrBuilder instead" .} =
|
||||
|
||||
assert privateKey.scheme == PKScheme.Secp256k1
|
||||
|
||||
## Waku-specific ENR fields (https://rfc.vac.dev/spec/31/)
|
||||
var wakuEnrFields: seq[FieldPair]
|
||||
|
||||
# `waku2` field
|
||||
if wakuFlags.isSome():
|
||||
wakuEnrFields.add(toFieldPair(CapabilitiesEnrField, @[wakuFlags.get().uint8]))
|
||||
|
||||
# `multiaddrs` field
|
||||
if multiaddrs.len > 0:
|
||||
let value = encodeMultiaddrs(multiaddrs)
|
||||
wakuEnrFields.add(toFieldPair(MultiaddrEnrField, value))
|
||||
|
||||
let
|
||||
rawPk = privateKey.getRawBytes().expect("Private key is valid")
|
||||
pk = keys.PrivateKey.fromRaw(rawPk).expect("Raw private key is of valid length")
|
||||
|
||||
enr.Record.init(
|
||||
seqNum=seqNum,
|
||||
pk=pk,
|
||||
ip=enrIp,
|
||||
tcpPort=enrTcpPort,
|
||||
udpPort=enrUdpPort,
|
||||
extraFields=wakuEnrFields
|
||||
).expect("Record within size limits")
|
||||
|
Loading…
x
Reference in New Issue
Block a user