mirror of
https://github.com/logos-messaging/logos-messaging-nim.git
synced 2026-01-02 14:03:06 +00:00
feat: wrapper function to generate external nullifier
This commit is contained in:
parent
5b54b70683
commit
04ab68fc69
@ -379,9 +379,7 @@ method generateProof*(
|
||||
|
||||
let x = keccak.keccak256.digest(data)
|
||||
|
||||
let epochHash = keccak.keccak256.digest(@(epoch))
|
||||
let rlnIdentifierHash = keccak.keccak256.digest(@(rlnIdentifier))
|
||||
let extNullifier = poseidon(@[@(epochHash), @(rlnIdentifierHash)]).valueOr:
|
||||
let extNullifier = generateExternalNullifier(epoch, rlnIdentifier).valueOr:
|
||||
return err("Failed to compute external nullifier: " & error)
|
||||
|
||||
let witness = RLNWitnessInput(
|
||||
@ -459,9 +457,7 @@ method verifyProof*(
|
||||
|
||||
var normalizedProof = proof
|
||||
|
||||
let epochHash = keccak.keccak256.digest(@(proof.epoch))
|
||||
let rlnIdentifierHash = keccak.keccak256.digest(@(proof.rlnIdentifier))
|
||||
let externalNullifier = poseidon(@[@(epochHash), @(rlnIdentifierHash)]).valueOr:
|
||||
let externalNullifier = generateExternalNullifier(proof.epoch, proof.rlnIdentifier).valueOr:
|
||||
return err("Failed to compute external nullifier: " & error)
|
||||
normalizedProof.externalNullifier = externalNullifier
|
||||
|
||||
|
||||
@ -163,11 +163,18 @@ proc toLeaves*(rateCommitments: seq[RateCommitment]): RlnRelayResult[seq[seq[byt
|
||||
leaves.add(leaf)
|
||||
return ok(leaves)
|
||||
|
||||
proc extractMetadata*(proof: RateLimitProof): RlnRelayResult[ProofMetadata] =
|
||||
let epochHash = keccak.keccak256.digest(@(proof.epoch))
|
||||
let rlnIdentifierHash = keccak.keccak256.digest(@(proof.rlnIdentifier))
|
||||
proc generateExternalNullifier*(
|
||||
epoch: Epoch, rlnIdentifier: RlnIdentifier
|
||||
): RlnRelayResult[ExternalNullifier] =
|
||||
let epochHash = keccak.keccak256.digest(@(epoch))
|
||||
let rlnIdentifierHash = keccak.keccak256.digest(@(rlnIdentifier))
|
||||
let externalNullifier = poseidon(@[@(epochHash), @(rlnIdentifierHash)]).valueOr:
|
||||
return err("Failed to compute external nullifier: " & error)
|
||||
return ok(externalNullifier)
|
||||
|
||||
proc extractMetadata*(proof: RateLimitProof): RlnRelayResult[ProofMetadata] =
|
||||
let externalNullifier = generateExternalNullifier(proof.epoch, proof.rlnIdentifier).valueOr:
|
||||
return err("Failed to compute external nullifier: " & error)
|
||||
return ok(
|
||||
ProofMetadata(
|
||||
nullifier: proof.nullifier,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user