Circuit ID

To identify every circuit uniquely, users are required to provide a unique cID field for circuits entries inside the build field of the circuit config file. They use this cID to get their respective circuit via the getCircuit() method of CircomJS.

For example, If we have a circuit by the name multiplication.circom inside our circuit's inputDir , then we would have to declare it in our circuit config file in the following manner:

circuit.config.json
{
    "projectName": "circom-starter",
    "outputDir":"./out",
    "build": {
        "inputDir": "./circuits",
        "circuits": [
          {
              "cID": "mul",
              "fileName": "multiply.circom",
              "proofType": "groth16",
              "compilationMode": "wasm",
           }
        ]
    }
}

Now, when we want to get this Circuit inside the Node JS program, we do the following:

src/index.js
const {CircomJS} = require("@zefi/circomjs")

const main = async() => {
    const circomjs = new CircomJS()
    const circuit =  circomjs.getCircuit("mul")   
    
    await circuit.compile()
}

main()

The following is taking place in the above code:

  • We instantiate CircomJS

  • We call the getCircuit(cID) method, where cID = "mul"

  • CircomJS looks for a circuit that was tagged with a cID of mul inside the circuit config file {check out this section on the file path for the circuit is resolved. }

  • It returns the respective circuit { throws an error if the circuit with that cID is not present }

  • It builds the circuits { await circuit.compile() }.

Last updated