Gadgets
The Orchard circuit makes use of the following gadgets from the halo2_gadgets crate:
- Elliptic curve:
FixedPointFixedPointBaseFieldFixedPointShortNonIdentityPointPoint
- Poseidon:
Hash<ConstantLength>
- Sinsemilla:
CommitDomainMessageMessagePieceMerklePath
It instantiates the instruction sets required for these gadgets with the following chips:
halo2_gadgets::ecc::chip::EccChiphalo2_gadgets::poseidon::Pow5Chiphalo2_gadgets::sinsemilla::chip::SinsemillaChiphalo2_gadgets::sinsemilla::merkle::chip::MerkleChiphalo2_gadgets::utilities::UtilitiesInstructionshalo2_gadgets::utilities::lookup_range_check::LookupRangeCheckConfig
It also makes use of the following utility functions for standardising constraints:
halo2_gadgets::utilities::{bitrange_subset, bool_check}