Skip to main content

Module circuits

Module circuits 

Source
Expand description

The ceremony circuits’ UltraHonk verifiers: which circuit each platform proves under, and the deploy of a circuit’s verifier.

A Honk verifier is not written in this repository. bb derives it from a circuit’s verification key, libid-circuits runs bb and ships the Solidity in its release tarballs, and scripts/vendor-circuit-verifiers.sh downloads the pinned release — checked against digests committed in solidity/contracts/circuits/circuits.json — formats it and writes it under solidity/contracts/circuits, gitignored and vendored again before every build. From there forge build compiles it, on the legacy pipeline solidity/foundry.toml sets for these files, and scripts/vendor-artifacts.sh embeds it, so a consumer deploys it from Artifacts::embedded with no bb.

The verifier is bb’s optimized template: one contract, deployed in one transaction by deploy_honk_verifier. Its address is what a platform_verifier::Initializer pins, beside the code hash it reads off the chain.

Enums§

Circuit
One ceremony circuit, and so one vendored Honk verifier.

Functions§

deploy_honk_verifier
Deploy circuit’s Honk verifier and return its address, which a Platform Verifier initializer takes as honk_verifier.
version
The libid-circuits release the vendored verifiers came from, read from the pin scripts/vendor-artifacts.sh copies in as circuits.json.