chore: remove deprecated enr record init method

This commit is contained in:
Lorenzo Delgado 2023-04-04 15:35:15 +02:00 committed by GitHub
parent caf78249b2
commit 0627b4f8f2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 26 additions and 99 deletions

View File

@ -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

View File

@ -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,
)

View File

@ -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")