From 43d187283e773ba7ec7ebc610f5888b6b209f424 Mon Sep 17 00:00:00 2001 From: Jack Grigg Date: Wed, 21 Jul 2021 17:20:39 +0100 Subject: [PATCH] Use an existing fixed column for Action circuit global constants --- src/circuit.rs | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/circuit.rs b/src/circuit.rs index a6bff5bb..c84ac111 100644 --- a/src/circuit.rs +++ b/src/circuit.rs @@ -5,7 +5,7 @@ use std::mem; use group::{Curve, GroupEncoding}; use halo2::{ circuit::{floor_planner, Layouter}, - plonk::{self, Advice, Column, Expression, Fixed, Instance as InstanceColumn, Selector}, + plonk::{self, Advice, Column, Expression, Instance as InstanceColumn, Selector}, poly::Rotation, transcript::{Blake2bRead, Blake2bWrite}, }; @@ -84,7 +84,6 @@ const ENABLE_OUTPUT: usize = 8; #[derive(Clone, Debug)] pub struct Config { primary: Column, - constants: Column, q_orchard: Selector, advices: [Column; 10], ecc_config: EccConfig, @@ -195,10 +194,6 @@ impl plonk::Circuit for Circuit { let primary = meta.instance_column(); meta.enable_equality(primary.into()); - // Shared fixed column used to load constants - let constants = meta.fixed_column(); - meta.enable_constant(constants); - // Permutation over all advice columns. for advice in advices.iter() { meta.enable_equality((*advice).into()); @@ -222,6 +217,10 @@ impl plonk::Circuit for Circuit { let rc_a = lagrange_coeffs[2..5].try_into().unwrap(); let rc_b = lagrange_coeffs[5..8].try_into().unwrap(); + // Also use the first Lagrange coefficient column for loading global constants. + // It's free real estate :) + meta.enable_constant(lagrange_coeffs[0]); + // We have a lot of free space in the right-most advice columns; use one of them // for all of our range checks. let range_check = LookupRangeCheckConfig::configure(meta, advices[9], table_idx); @@ -294,7 +293,6 @@ impl plonk::Circuit for Circuit { Config { primary, - constants, q_orchard, advices, ecc_config,