Updates circuit directory handling

This commit is contained in:
thatben 2025-02-28 14:53:09 +01:00
parent d19cb8a37d
commit 7d07b522bd
No known key found for this signature in database
GPG Key ID: 62C543548433D43E

View File

@ -5,7 +5,9 @@ import ./utils
type
CircuitEnv* = object
nimCircuitCli*: string
circuitDirIncludes*: string
circuitLibDirIncludes*: string
circuitPoseidon2DirIncludes*: string
circuitCodexDirIncludes*: string
ptauPath*: string
ptauUrl*: Uri
codexProjDir*: string
@ -27,12 +29,16 @@ proc findCodexProjectDir(): string =
result = currentSourcePath().parentDir.parentDir
func default*(tp: typedesc[CircuitEnv]): CircuitEnv =
let codexDir = findCodexProjectDir()
let
codexDir = findCodexProjectDir()
baseCircuitDir = codexDir / "vendor" / "codex-storage-proofs-circuits" / "circuit"
result.nimCircuitCli =
codexDir / "vendor" / "codex-storage-proofs-circuits" / "reference" / "nim" /
"proof_input" / "cli"
result.circuitDirIncludes =
codexDir / "vendor" / "codex-storage-proofs-circuits" / "circuit"
result.circuitLibDirIncludes = baseCircuitDir / "lib"
result.circuitPoseidon2DirIncludes = baseCircuitDir / "poseidon2"
result.circuitCodexDirIncludes = baseCircuitDir / "codex"
result.ptauPath =
codexDir / "benchmarks" / "ceremony" / "powersOfTau28_hez_final_23.ptau"
result.ptauUrl = "https://storage.googleapis.com/zkevm/ptau".parseUri
@ -75,7 +81,9 @@ proc check*(env: var CircuitEnv) =
assert env.nimCircuitCli.fileExists()
echo "Found NimCircuitCli: ", env.nimCircuitCli
echo "Found Circuit Path: ", env.circuitDirIncludes
echo "Found Circuit-lib Path: ", env.circuitLibDirIncludes
echo "Found Circuit-poseidon2 Path: ", env.circuitPoseidon2DirIncludes
echo "Found Circuit-codex Path: ", env.circuitCodexDirIncludes
echo "Found PTAU file: ", env.ptauPath
proc downloadPtau*(ptauPath: string, ptauUrl: Uri) =
@ -139,7 +147,7 @@ proc createCircuit*(
generateCircomAndSamples(args, env, name)
if not wasm.fileExists or not r1cs.fileExists:
runit fmt"circom --r1cs --wasm --O2 -l{env.circuitDirIncludes} {name}.circom"
runit fmt"circom --r1cs --wasm --O2 -l{env.circuitLibDirIncludes} -l{env.circuitPoseidon2DirIncludes} -l{env.circuitCodexDirIncludes} {name}.circom"
moveFile fmt"{name}_js" / fmt"{name}.wasm", fmt"{name}.wasm"
echo "Found wasm: ", wasm
echo "Found r1cs: ", r1cs