Gadgets
The Orchard circuit makes use of the following gadgets from the halo2_gadgets
crate:
- Elliptic curve:
FixedPoint
FixedPointBaseField
FixedPointShort
NonIdentityPoint
Point
- Poseidon:
Hash<ConstantLength>
- Sinsemilla:
CommitDomain
Message
MessagePiece
MerklePath
It instantiates the instruction sets required for these gadgets with the following chips:
halo2_gadgets::ecc::chip::EccChip
halo2_gadgets::poseidon::Pow5Chip
halo2_gadgets::sinsemilla::chip::SinsemillaChip
halo2_gadgets::sinsemilla::merkle::chip::MerkleChip
halo2_gadgets::utilities::UtilitiesInstructions
halo2_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}