I got stuck in snarkjs.groth16.verify() function in smart contract in typescript.
we wanna make verify function on NEAR smart contract for ZK snarks (growth16).
import { NearBindgen, view } from "near-sdk-js"; // , call,initialize
import {groth16} from 'snarkjs';
@NearBindgen({})
class ZKRollup {
@view({})
verifyProof(proof: string, publicInputs: string[]): boolean {
// Parse the proof and public inputs from strings
const parsedProof = JSON.parse(proof);
const parsedPublicInputs = publicInputs.map((input) => BigInt(input));
// Verify the proof using snarkjs
const result = groth16.verify(
parsedProof.vk,
parsedPublicInputs,
parsedProof.pi
);
// Return the result
return result;
}
}