mirror of
https://github.com/logos-messaging/logos-messaging-nim.git
synced 2026-01-22 07:43:10 +00:00
add mix pubkey in enr and fix lightpush rebase issues
This commit is contained in:
parent
54e6fb8631
commit
1119ef0f64
@ -33,6 +33,9 @@ proc enrConfiguration*(
|
||||
).isOkOr:
|
||||
return err("could not initialize ENR with shards")
|
||||
|
||||
if conf.mix and conf.mixKey.isSome():
|
||||
enrBuilder.withMixKey(conf.mixKey.get())
|
||||
|
||||
let recordRes = enrBuilder.build()
|
||||
let record =
|
||||
if recordRes.isErr():
|
||||
|
||||
22
waku/waku_enr/mix.nim
Normal file
22
waku/waku_enr/mix.nim
Normal file
@ -0,0 +1,22 @@
|
||||
{.push raises: [].}
|
||||
|
||||
import
|
||||
std/[options],
|
||||
results,
|
||||
libp2p/crypto/curve25519,
|
||||
nimcrypto/utils as ncrutils
|
||||
|
||||
import ../common/enr
|
||||
|
||||
const MixKeyEnrField* = "mix-key"
|
||||
|
||||
func withMixKey*(builder: var EnrBuilder, mixPrivKey:string) =
|
||||
let mixKey = intoCurve25519Key(ncrutils.fromHex(mixPrivKey))
|
||||
let mixPubKey = public(mixKey)
|
||||
builder.addFieldPair(MixKeyEnrField, getBytes(mixPubKey))
|
||||
|
||||
func mixKey*(record: TypedRecord): Option[seq[byte]] =
|
||||
let field = record.tryGet(MixKeyEnrField, seq[byte])
|
||||
if field.isNone():
|
||||
return none(seq[byte])
|
||||
return field
|
||||
@ -122,15 +122,19 @@ proc publishToAny*(
|
||||
|
||||
proc publishWithConn*(
|
||||
wl: WakuLightPushClient, pubSubTopic: PubsubTopic, message: WakuMessage, conn: Connection
|
||||
): Future[WakuLightPushResult[void]] {.async, gcsafe.} =
|
||||
): Future[WakuLightPushResult] {.async, gcsafe.} =
|
||||
## This proc is similar to the publish one but in this case
|
||||
## we use existing connection to publish.
|
||||
|
||||
info "publishWithConn", msg_hash = computeMessageHash(pubsubTopic, message).to0xHex
|
||||
|
||||
let pushRequest = PushRequest(pubSubTopic: pubSubTopic, message: message)
|
||||
let rpc = PushRPC(requestId: generateRequestId(wl.rng), request: some(pushRequest))
|
||||
await conn.writeLP(rpc.encode().buffer)
|
||||
let pushRequest = LightpushRequest(
|
||||
requestId: generateRequestId(wl.rng),
|
||||
pubSubTopic: some(pubSubTopic),
|
||||
message: message,
|
||||
)
|
||||
|
||||
await conn.writeLP(pushRequest.encode().buffer)
|
||||
|
||||
for obs in wl.publishObservers:
|
||||
obs.onMessagePublished(pubSubTopic, message)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user