Просмотр исходного кода

zk: Do not use UtilitiesInstructions trait for vars.

parazyd 4 лет назад
Родитель
Сommit
37f4bb95f8
3 измененных файлов с 6 добавлено и 17 удалено
  1. 1 5
      src/zk/circuit/burn_contract.rs
  2. 1 5
      src/zk/circuit/mint_contract.rs
  3. 4 7
      src/zk/vm.rs

+ 1 - 5
src/zk/circuit/burn_contract.rs

@@ -14,7 +14,7 @@ use halo2_gadgets::{
             MerklePath,
         },
     },
-    utilities::{lookup_range_check::LookupRangeCheckConfig, UtilitiesInstructions},
+    utilities::lookup_range_check::LookupRangeCheckConfig,
 };
 use halo2_proofs::{
     circuit::{floor_planner, AssignedCell, Layouter, Value},
@@ -110,10 +110,6 @@ pub struct BurnContract {
     pub sig_secret: Value<pallas::Base>,
 }
 
-impl UtilitiesInstructions<pallas::Base> for BurnContract {
-    type Var = AssignedCell<Fp, Fp>;
-}
-
 impl Circuit<pallas::Base> for BurnContract {
     type Config = BurnConfig;
     type FloorPlanner = floor_planner::V1;

+ 1 - 5
src/zk/circuit/mint_contract.rs

@@ -7,7 +7,7 @@ use halo2_gadgets::{
         primitives as poseidon, Hash as PoseidonHash, Pow5Chip as PoseidonChip,
         Pow5Config as PoseidonConfig,
     },
-    utilities::{lookup_range_check::LookupRangeCheckConfig, UtilitiesInstructions},
+    utilities::lookup_range_check::LookupRangeCheckConfig,
 };
 use halo2_proofs::{
     circuit::{floor_planner, AssignedCell, Layouter, Value},
@@ -66,10 +66,6 @@ pub struct MintContract {
     pub token_blind: Value<pallas::Scalar>,
 }
 
-impl UtilitiesInstructions<pallas::Base> for MintContract {
-    type Var = AssignedCell<pallas::Base, pallas::Base>;
-}
-
 impl Circuit<pallas::Base> for MintContract {
     type Config = MintConfig;
     type FloorPlanner = floor_planner::V1;

+ 4 - 7
src/zk/vm.rs

@@ -14,7 +14,7 @@ use halo2_gadgets::{
             MerklePath,
         },
     },
-    utilities::{lookup_range_check::LookupRangeCheckConfig, UtilitiesInstructions},
+    utilities::lookup_range_check::LookupRangeCheckConfig,
 };
 use halo2_proofs::{
     circuit::{AssignedCell, Layouter, SimpleFloorPlanner, Value},
@@ -29,6 +29,7 @@ use super::gadget::{
     even_bits::{EvenBitsChip, EvenBitsConfig, EvenBitsLookup},
 };
 
+use super::assign_free_advice;
 pub use super::vm_stack::{StackVar, Witness};
 use crate::{
     crypto::constants::{
@@ -116,10 +117,6 @@ impl ZkCircuit {
     }
 }
 
-impl UtilitiesInstructions<pallas::Base> for ZkCircuit {
-    type Var = AssignedCell<Fp, Fp>;
-}
-
 impl Circuit<pallas::Base> for ZkCircuit {
     type Config = VmConfig;
     type FloorPlanner = SimpleFloorPlanner;
@@ -285,7 +282,7 @@ impl Circuit<pallas::Base> for ZkCircuit {
         //let gt_chip = config.greaterthan_chip();
 
         // This constant one is used for short multiplication
-        let one = self.load_private(
+        let one = assign_free_advice(
             layouter.namespace(|| "Load constant one"),
             config.advices[0],
             Value::known(pallas::Base::one()),
@@ -337,7 +334,7 @@ impl Circuit<pallas::Base> for ZkCircuit {
 
                 Witness::Base(w) => {
                     debug!("Witnessing Base into circuit");
-                    let base = self.load_private(
+                    let base = assign_free_advice(
                         layouter.namespace(|| "Witness Base"),
                         config.advices[0],
                         *w,