From e141390d23ebed3ee3339a6d0846f75405734d20 Mon Sep 17 00:00:00 2001 From: darshankabariya Date: Tue, 8 Apr 2025 13:13:51 +0530 Subject: [PATCH] chore: hash to field --- .../group_manager/on_chain/group_manager.nim | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/waku/waku_rln_relay/group_manager/on_chain/group_manager.nim b/waku/waku_rln_relay/group_manager/on_chain/group_manager.nim index 826ca2d79..8b1cb1165 100644 --- a/waku/waku_rln_relay/group_manager/on_chain/group_manager.nim +++ b/waku/waku_rln_relay/group_manager/on_chain/group_manager.nim @@ -336,6 +336,17 @@ proc indexToPath(index: uint64): seq[byte] = for i in 0 ..< treeHeight: result[i] = byte((index shr i) and 1) +# Hashes arbitrary signal to the underlying prime field. +proc hashToField*(signal: seq[byte]): array[32, byte] = + var ctx: keccak256 + ctx.init() + ctx.update(signal) + var hash = ctx.finish() + + var result: array[32, byte] + copyMem(result[0].addr, hash.data[0].addr, 32) + return result + method generateProof*( g: OnchainGroupManager, data: seq[byte], @@ -376,7 +387,7 @@ method generateProof*( message_id: serialize(messageId), path_elements: g.merkleProofCache, identity_path_index: indexToPath(g.membershipIndex.get()), - x: toArray32(data), + x: hashToField(data), external_nullifier: externalNullifierRes.get(), )