You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
1.9 KiB

  1. #!/bin/sh
  2. # This file compiles the circuits to generate the test files
  3. # npm install
  4. cd test
  5. rm -r build
  6. mkdir build
  7. cd build
  8. compile_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. echo $(date +"%T") "snarkjs info -r $CIRCUIT.r1cs"
  15. ../../node_modules/.bin/snarkjs info -r $CIRCUIT.r1cs
  16. echo $(date +"%T") "snarkjs setup"
  17. itime="$(date -u +%s)"
  18. ../../node_modules/.bin/snarkjs setup -r $CIRCUIT.r1cs --pk $CIRCUIT-proving_key.json --vk $CIRCUIT-verification_key.json
  19. echo " ($(($(date -u +%s)-$itime))s)"
  20. echo $(date +"%T") "trusted setup generated"
  21. # sed -i 's/null/["0","0","0"]/g' proving_key.json
  22. echo $(date +"%T") "snarkjs generateverifier"
  23. itime="$(date -u +%s)"
  24. ../../node_modules/.bin/snarkjs generateverifier --vk $CIRCUIT-verification_key.json -v $CIRCUIT-verifier.sol
  25. echo " ($(($(date -u +%s)-$itime))s)"
  26. echo $(date +"%T") "generateverifier generated"
  27. sed -i "s/solidity ^0.5.0/solidity ^0.6.0/g" ${CIRCUIT}-verifier.sol
  28. sed -i "s/gas/gas()/g" ${CIRCUIT}-verifier.sol
  29. sed -i "s/return the sum/return r the sum/g" ${CIRCUIT}-verifier.sol
  30. sed -i "s/return the product/return r the product/g" ${CIRCUIT}-verifier.sol
  31. sed -i "s/contract Verifier/contract ${CONTRACT}Verifier/g" ${CIRCUIT}-verifier.sol
  32. sed -i "s/Pairing/${CONTRACT}Pairing/g" ${CIRCUIT}-verifier.sol
  33. # cp ${CIRCUIT}-verifier.sol ../contracts/
  34. node ../../node_modules/wasmsnark/tools/buildpkey.js -i ${CIRCUIT}-proving_key.json -o ${CIRCUIT}-proving_key.bin
  35. }
  36. CIRCUIT="deposit"
  37. CONTRACT="Deposit"
  38. compile_and_ts
  39. CIRCUIT="withdraw"
  40. CONTRACT="Withdraw"
  41. compile_and_ts
  42. cp ../../contracts/Miksi.sol ./Miksi.sol
  43. cp -r ../../contracts/helpers ./helpers