Skip to content
by Unity Nodes
Community Groups

SnarkJS verify smart contract for rollups

1 posts244 viewsLast activity Apr 2023

  1. aakash4devOP

    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;
    	}
    }