Skip to content

Commit

Permalink
chore: make keccak inputs RefCell
Browse files Browse the repository at this point in the history
  • Loading branch information
jonathanpwang committed Dec 10, 2023
1 parent b6625fa commit c057d8e
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions hashes/zkevm/src/keccak/component/circuit/shard.rs
Original file line number Diff line number Diff line change
Expand Up @@ -49,11 +49,12 @@ use snark_verifier_sdk::CircuitExt;
pub struct KeccakComponentShardCircuit<F: Field> {
/// The multiple inputs to be hashed.
#[getset(get = "pub")]
inputs: Vec<Vec<u8>>,
inputs: RefCell<Vec<Vec<u8>>>,

/// Parameters of this circuit. The same parameters always construct the same circuit.
#[getset(get_mut = "pub")]
params: KeccakComponentShardCircuitParams,
#[getset(get = "pub")]
base_circuit_builder: RefCell<BaseCircuitBuilder<F>>,
/// Poseidon hasher. Stateless once initialized.
#[getset(get = "pub")]
Expand Down Expand Up @@ -168,7 +169,7 @@ impl<F: Field> Circuit<F> for KeccakComponentShardCircuit<F> {
|| "keccak circuit",
|mut region| {
let (keccak_rows, _) = multi_keccak::<F>(
&self.inputs,
&self.inputs.borrow(),
Some(self.params.capacity),
self.params.keccak_circuit_params,
);
Expand Down Expand Up @@ -235,7 +236,7 @@ impl<F: Field> KeccakComponentShardCircuit<F> {
let mut base_circuit_builder = BaseCircuitBuilder::new(witness_gen_only);
base_circuit_builder.set_params(params.base_circuit_params.clone());
Self {
inputs,
inputs: RefCell::new(inputs),
params,
base_circuit_builder: RefCell::new(base_circuit_builder),
hasher: RefCell::new(create_hasher()),
Expand Down Expand Up @@ -525,7 +526,8 @@ pub fn transmute_keccak_assigned_to_virtual<F: Field>(

impl<F: Field> CircuitExt<F> for KeccakComponentShardCircuit<F> {
fn instances(&self) -> Vec<Vec<F>> {
let circuit_outputs = multi_inputs_to_circuit_outputs(&self.inputs, self.params.capacity);
let circuit_outputs =
multi_inputs_to_circuit_outputs(&self.inputs.borrow(), self.params.capacity);
if self.params.publish_raw_outputs {
vec![
circuit_outputs.iter().map(|o| o.key).collect(),
Expand Down

0 comments on commit c057d8e

Please sign in to comment.