Files
zkAuth/backend/circuits/compile.sh
2022-09-20 16:42:45 +05:30

43 lines
1.8 KiB
Bash
Executable File

mkdir HashCheck
rm HashCheck/HashCheck.r1cs
rm HashCheck/HashCheck.sym
rm HashCheck/circuit_0000.zkey
rm HashCheck/HashCheck_js
rm HashCheck/witness.wtns
rm HashCheck/pot12_0000.ptau
rm HashCheck/pot12_0001.ptau
rm HashCheck/pot12_final.ptau
if [ -f ./powersOfTau28_hez_final_10.ptau ]; then
echo "powersOfTau28_hez_final_10.ptau already exists. Skipping."
else
echo 'Downloading powersOfTau28_hez_final_10.ptau'
wget https://hermez.s3-eu-west-1.amazonaws.com/powersOfTau28_hez_final_10.ptau
fi
echo "Compiling HashCheck.circom..."
circom HashCheck.circom --r1cs --wasm --sym -o HashCheck
node HashCheck/HashCheck_js/generate_witness.js HashCheck/HashCheck_js/HashCheck.wasm HashCheck/input.json HashCheck/witness.wtns
# # cp HashCheck/witness.wtns ../witness.wtns
snarkjs r1cs info HashCheck/HashCheck.r1cs
# # phase 1 of ceremony
snarkjs powersoftau new bn128 12 HashCheck/pot12_0000.ptau -v
snarkjs powersoftau contribute HashCheck/pot12_0000.ptau HashCheck/pot12_0001.ptau --name="First contribution" -v
# # phase 2 of ceremony
snarkjs powersoftau prepare phase2 HashCheck/pot12_0001.ptau HashCheck/pot12_final.ptau -v
snarkjs groth16 setup HashCheck/HashCheck.r1cs powersOfTau28_hez_final_10.ptau HashCheck/circuit_0000.zkey
snarkjs zkey contribute HashCheck/circuit_0000.zkey HashCheck/circuit_final.zkey --name="1st Contribution Name" -v -e="random text"
snarkjs zkey export verificationkey HashCheck/circuit_final.zkey HashCheck/verification_key.json
snarkjs groth16 prove HashCheck/circuit_final.zkey HashCheck/witness.wtns HashCheck/proof.json HashCheck/public.json
snarkjs groth16 verify HashCheck/verification_key.json HashCheck/public.json HashCheck/proof.json
# snarkjs zkey export solidityverifier HashCheck/circuit_final.zkey HashCheck/HashCheckVerifier.sol