From 449672a3ea13c19193ddc53f2312776009fb85bb Mon Sep 17 00:00:00 2001 From: vbasiuk Date: Thu, 1 Feb 2024 10:20:18 +0200 Subject: [PATCH] sort query hashes before compare --- src/circuits/linkedMultiQuery.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/circuits/linkedMultiQuery.ts b/src/circuits/linkedMultiQuery.ts index f3834b2..59ea548 100644 --- a/src/circuits/linkedMultiQuery.ts +++ b/src/circuits/linkedMultiQuery.ts @@ -63,6 +63,14 @@ export class LinkedMultiQueryVerifier implements PubSignalsVerifier { ]); }); + this.pubSignals.circuitQueryHash.sort(this.bigIntCompare); + + const zeros: Array = Array.from({ + length: this.pubSignals.circuitQueryHash.length - queryHashes.length + }).fill(BigInt(0)) as Array; + const fullQueryHashes: Array = queryHashes.concat(zeros); + fullQueryHashes.sort(this.bigIntCompare); + if (!queryHashes.every((queryHash, i) => queryHash === this.pubSignals.circuitQueryHash[i])) { throw new Error('query hashes do not match'); } @@ -73,4 +81,10 @@ export class LinkedMultiQueryVerifier implements PubSignalsVerifier { async verifyStates(): Promise { return Promise.resolve(); } + + bigIntCompare = (a: bigint, b: bigint): number => { + if (a < b) return -1; + if (a > b) return 1; + return 0; + }; }