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