arnaucube
arnaucube/miksi-corePublic Self-hosted repository
miksi-core/test-compile-circuits.sh
test-compile-circuits.shRaw
 1#!/bin/sh
 2
 3# This file compiles the circuits to generate the test files
 4
 5# npm install
 6cd test
 7rm -r build
 8mkdir build
 9cd build
10
11compile_and_ts() {
12  echo $(date +"%T") "circom ../circuits/main/$CIRCUIT.circom --r1cs --wasm --sym"
13  itime="$(date -u +%s)"
14  ../../node_modules/.bin/circom ../circuits/main/$CIRCUIT.circom --r1cs --wasm --sym
15  ftime="$(date -u +%s)"
16  echo "	($(($(date -u +%s)-$itime))s)"
17
18  echo $(date +"%T") "snarkjs info -r $CIRCUIT.r1cs"
19  ../../node_modules/.bin/snarkjs info -r $CIRCUIT.r1cs
20
21  echo $(date +"%T") "snarkjs setup"
22  itime="$(date -u +%s)"
23  ../../node_modules/.bin/snarkjs setup -r $CIRCUIT.r1cs --pk $CIRCUIT-proving_key.json --vk $CIRCUIT-verification_key.json
24  echo "	($(($(date -u +%s)-$itime))s)"
25  echo $(date +"%T") "trusted setup generated"
26
27  # sed -i 's/null/["0","0","0"]/g' proving_key.json
28
29
30  echo $(date +"%T") "snarkjs generateverifier"
31  itime="$(date -u +%s)"
32  ../../node_modules/.bin/snarkjs generateverifier --vk $CIRCUIT-verification_key.json -v $CIRCUIT-verifier.sol
33  echo "	($(($(date -u +%s)-$itime))s)"
34  echo $(date +"%T") "generateverifier generated"
35
36  sed -i "s/solidity ^0.5.0/solidity ^0.6.0/g" ${CIRCUIT}-verifier.sol
37  sed -i "s/gas/gas()/g" ${CIRCUIT}-verifier.sol
38  sed -i "s/return the sum/return r the sum/g" ${CIRCUIT}-verifier.sol
39  sed -i "s/return the product/return r the product/g" ${CIRCUIT}-verifier.sol
40  sed -i "s/contract Verifier/contract ${CONTRACT}Verifier/g" ${CIRCUIT}-verifier.sol
41  sed -i "s/Pairing/${CONTRACT}Pairing/g" ${CIRCUIT}-verifier.sol
42  # cp ${CIRCUIT}-verifier.sol ../contracts/
43
44  node ../../node_modules/wasmsnark/tools/buildpkey.js -i ${CIRCUIT}-proving_key.json -o ${CIRCUIT}-proving_key.bin
45}
46
47CIRCUIT="deposit"
48CONTRACT="Deposit"
49compile_and_ts
50CIRCUIT="withdraw"
51CONTRACT="Withdraw"
52compile_and_ts
53
54cp ../../contracts/Miksi.sol ./Miksi.sol
55cp -r ../../contracts/helpers ./helpers