From b5ad2ac1c35be5a273f218355ee54f56fc4eca2f Mon Sep 17 00:00:00 2001 From: kunxian xia Date: Wed, 12 Jul 2023 12:45:55 +0800 Subject: [PATCH 1/2] fix finding 25 --- zkevm-circuits/src/tx_circuit.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/zkevm-circuits/src/tx_circuit.rs b/zkevm-circuits/src/tx_circuit.rs index a03b08c35c..9d0e4ef38e 100644 --- a/zkevm-circuits/src/tx_circuit.rs +++ b/zkevm-circuits/src/tx_circuit.rs @@ -99,6 +99,7 @@ pub struct TxCircuitConfig { tx_table: TxTable, tx_tag_bits: BinaryNumberConfig, + q_second: Column, tx_type: Column, tx_type_bits: BinaryNumberConfig, // The associated rlp tag to lookup in the RLP table @@ -186,6 +187,7 @@ impl SubCircuitConfig for TxCircuitConfig { ) -> Self { let q_enable = tx_table.q_enable; + let q_second = meta.fixed_column(); // tag, rlp_tag, tx_type, is_none let tx_type = meta.advice_column(); let rlp_tag = meta.advice_column(); @@ -294,6 +296,17 @@ impl SubCircuitConfig for TxCircuitConfig { ); // tx_id transition + meta.create_gate("tx_id starts with 1", |meta| { + let mut cb = BaseConstraintBuilder::default(); + + cb.require_equal( + "tx_id == 1", + meta.query_advice(tx_table.tx_id, Rotation::cur()), + 1.expr(), + ); + + cb.gate(meta.query_fixed(q_second, Rotation::cur())) + }); meta.create_gate("tx_id transition", |meta| { let mut cb = BaseConstraintBuilder::default(); @@ -879,6 +892,7 @@ impl SubCircuitConfig for TxCircuitConfig { tx_type_bits, rlp_tag, is_none, + q_second, u16_table, tx_id_is_zero, value_is_zero, @@ -1675,6 +1689,13 @@ impl TxCircuit { None, )?; + region.assign_fixed( + || "q_second", + config.q_second, + 1, + || Value::known(F::one()), + )?; + // Assign all tx fields except for call data for (i, sign_data) in sigs.iter().enumerate() { let tx = if i < self.txs.len() { From 1b45784b0d78c97e6ff7febb4bbb4bbc6670a3af Mon Sep 17 00:00:00 2001 From: kunxian xia Date: Wed, 9 Aug 2023 17:43:08 +0800 Subject: [PATCH 2/2] add comment --- zkevm-circuits/src/tx_circuit.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/zkevm-circuits/src/tx_circuit.rs b/zkevm-circuits/src/tx_circuit.rs index 6e3ad09584..eff086684a 100644 --- a/zkevm-circuits/src/tx_circuit.rs +++ b/zkevm-circuits/src/tx_circuit.rs @@ -101,6 +101,7 @@ pub struct TxCircuitConfig { tx_table: TxTable, tx_tag_bits: BinaryNumberConfig, + // A selector which is enabled at 2nd row q_second: Column, tx_type: Column, tx_type_bits: BinaryNumberConfig,