mirror of
https://github.com/logos-messaging/logos-messaging-nim.git
synced 2026-01-08 00:43:06 +00:00
28 lines
1.0 KiB
Nim
28 lines
1.0 KiB
Nim
import std/tempfiles
|
|
|
|
import ../../../waku/waku_rln_relay, ../../../waku/waku_rln_relay/[rln, protocol_types]
|
|
|
|
proc createRLNInstanceWrapper*(): RLNResult =
|
|
return createRlnInstance(tree_path = genTempPath("rln_tree", "waku_rln_relay"))
|
|
|
|
proc unsafeAppendRLNProof*(
|
|
rlnPeer: WakuRLNRelay, msg: var WakuMessage, senderEpochTime: float64
|
|
): RlnRelayResult[void] =
|
|
## this proc derived from appendRLNProof, does not perform nonce check to
|
|
## facilitate bad message id generation for testing
|
|
|
|
let input = msg.toRLNSignal()
|
|
let epoch = rlnPeer.calcEpoch(senderEpochTime)
|
|
|
|
when defined(rln_v2):
|
|
# we do not fetch a nonce from the nonce manager,
|
|
# instead we use 0 as the nonce
|
|
let proof = rlnPeer.groupManager.generateProof(input, epoch, 0).valueOr:
|
|
return err("could not generate rln-v2 proof: " & $error)
|
|
else:
|
|
let proof = rlnPeer.groupManager.generateProof(input, epoch).valueOr:
|
|
return err("could not generate rln proof: " & $error)
|
|
|
|
msg.proof = proof.encode().buffer
|
|
return ok()
|