Skip to content

Commit 6a4f13e

Browse files
committed
[nits] remove PrimeField bound when there is FromUnifromBytes
1 parent eacc57a commit 6a4f13e

File tree

8 files changed

+60
-68
lines changed

8 files changed

+60
-68
lines changed

src/eth.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ impl AccountGadget {
8080
/// + circuit selector * 1
8181
/// + exported col * 8 (MUST by following sequence: layout_flag, s_enable, old_val, new_val, key_val and 3 ext field for old/new/key_val)
8282
/// + free col * 4
83-
pub fn configure<Fp: PrimeField + FromUniformBytes<64> + Ord>(
83+
pub fn configure<Fp: FromUniformBytes<64> + Ord>(
8484
meta: &mut ConstraintSystem<Fp>,
8585
sel: Selector,
8686
exported: &[Column<Advice>],
@@ -386,7 +386,7 @@ struct AccountChip<'d, F> {
386386
data: &'d Account<F>,
387387
}
388388

389-
impl<Fp: PrimeField + FromUniformBytes<64> + Ord> Chip<Fp> for AccountChip<'_, Fp> {
389+
impl<Fp: FromUniformBytes<64> + Ord> Chip<Fp> for AccountChip<'_, Fp> {
390390
type Config = AccountChipConfig;
391391
type Loaded = Account<Fp>;
392392

@@ -399,7 +399,7 @@ impl<Fp: PrimeField + FromUniformBytes<64> + Ord> Chip<Fp> for AccountChip<'_, F
399399
}
400400
}
401401

402-
impl<'d, Fp: PrimeField + FromUniformBytes<64> + Ord> AccountChip<'d, Fp> {
402+
impl<'d, Fp: FromUniformBytes<64> + Ord> AccountChip<'d, Fp> {
403403
fn lagrange_polynomial_for_row<const T: usize>(ref_n: Expression<Fp>) -> Expression<Fp> {
404404
super::lagrange_polynomial::<Fp, T, LAST_ROW>(ref_n)
405405
}

src/layers.rs

+9-9
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
use halo2_proofs::{
2222
circuit::{Layouter, Region, Value},
23-
ff::{FromUniformBytes, PrimeField},
23+
ff::FromUniformBytes,
2424
plonk::{Advice, Column, ConstraintSystem, Error, Expression, Selector, TableColumn},
2525
poly::Rotation,
2626
};
@@ -104,7 +104,7 @@ impl LayerGadget {
104104
self.sel
105105
}
106106

107-
pub fn configure<Fp: PrimeField + FromUniformBytes<64> + Ord>(
107+
pub fn configure<Fp: FromUniformBytes<64> + Ord>(
108108
meta: &mut ConstraintSystem<Fp>,
109109
steps: usize,
110110
required_cols: usize,
@@ -319,7 +319,7 @@ impl LayerGadget {
319319
}
320320

321321
// LayerGadget must be first assigned, with other gadgets start from the offset it has returned
322-
pub fn assign<Fp: PrimeField + FromUniformBytes<64> + Ord>(
322+
pub fn assign<Fp: FromUniformBytes<64> + Ord>(
323323
&self,
324324
region: &mut Region<'_, Fp>,
325325
max_rows: usize,
@@ -394,7 +394,7 @@ impl LayerGadget {
394394
// pace has to be called before a working gadget is assigned on the specified offset, the rows
395395
// that working gadget would occpuy, and the result of the new root which gadget has output,
396396
// must be known before
397-
pub fn pace_op<Fp: PrimeField + FromUniformBytes<64> + Ord>(
397+
pub fn pace_op<Fp: FromUniformBytes<64> + Ord>(
398398
&self,
399399
region: &mut Region<'_, Fp>,
400400
offset: usize,
@@ -472,7 +472,7 @@ impl LayerGadget {
472472

473473
// complete block is called AFTER all working gadget has been assigned on the specified offset,
474474
// this entry fill whole block with series and index value
475-
pub fn complete_block<Fp: PrimeField + FromUniformBytes<64> + Ord>(
475+
pub fn complete_block<Fp: FromUniformBytes<64> + Ord>(
476476
&self,
477477
region: &mut Region<'_, Fp>,
478478
offset: usize,
@@ -512,7 +512,7 @@ impl LayerGadget {
512512

513513
// set all transition rules
514514
// + end_op: is the last op code in your assignation, often just (<padding gadget's op type, usually 0>, 0)
515-
pub fn set_op_border<Fp: PrimeField + FromUniformBytes<64> + Ord>(
515+
pub fn set_op_border<Fp: FromUniformBytes<64> + Ord>(
516516
&self,
517517
layouter: &mut impl Layouter<Fp>,
518518
inter_op: &[OpBorder],
@@ -524,7 +524,7 @@ impl LayerGadget {
524524

525525
// set all transition rules
526526
// + start_op: all possible starting op code and ctrl code
527-
pub fn set_op_border_ex<Fp: PrimeField + FromUniformBytes<64> + Ord>(
527+
pub fn set_op_border_ex<Fp: FromUniformBytes<64> + Ord>(
528528
&self,
529529
layouter: &mut impl Layouter<Fp>,
530530
inter_op: &[OpBorder],
@@ -720,7 +720,7 @@ pub(crate) struct PaddingGadget {
720720
}
721721

722722
impl PaddingGadget {
723-
pub fn configure<Fp: PrimeField + FromUniformBytes<64> + Ord>(
723+
pub fn configure<Fp: FromUniformBytes<64> + Ord>(
724724
_meta: &mut ConstraintSystem<Fp>,
725725
_sel: Selector,
726726
exported: &[Column<Advice>],
@@ -733,7 +733,7 @@ impl PaddingGadget {
733733
}
734734
}
735735

736-
pub fn padding<Fp: PrimeField + FromUniformBytes<64> + Ord>(
736+
pub fn padding<Fp: FromUniformBytes<64> + Ord>(
737737
&self,
738738
region: &mut Region<'_, Fp>,
739739
offset: usize,

src/lib.rs

+7-11
Original file line numberDiff line numberDiff line change
@@ -82,11 +82,7 @@ use mpt::MPTOpGadget;
8282
use operation::{AccountOp, HashTracesSrc, SingleOp};
8383

8484
// building lagrange polynmials L for T so that L(n) = 1 when n = T else 0, n in [0, TO]
85-
fn lagrange_polynomial<
86-
Fp: PrimeField + FromUniformBytes<64> + Ord,
87-
const T: usize,
88-
const TO: usize,
89-
>(
85+
fn lagrange_polynomial<Fp: FromUniformBytes<64> + Ord, const T: usize, const TO: usize>(
9086
ref_n: Expression<Fp>,
9187
) -> Expression<Fp> {
9288
let mut denominators: Vec<Fp> = (0..=TO)
@@ -116,7 +112,7 @@ pub struct SimpleTrieConfig {
116112

117113
/// The chip for op on a simple trie
118114
#[derive(Clone, Default)]
119-
pub struct SimpleTrie<F: PrimeField + FromUniformBytes<64> + Ord> {
115+
pub struct SimpleTrie<F: FromUniformBytes<64> + Ord> {
120116
c_size: usize, //how many rows
121117
start_root: F,
122118
final_root: F,
@@ -126,7 +122,7 @@ pub struct SimpleTrie<F: PrimeField + FromUniformBytes<64> + Ord> {
126122
const OP_MPT: u32 = 1;
127123
const OP_PADDING: u32 = 0;
128124

129-
impl<Fp: PrimeField + FromUniformBytes<64> + Ord> SimpleTrie<Fp> {
125+
impl<Fp: FromUniformBytes<64> + Ord> SimpleTrie<Fp> {
130126
/// create a new, empty circuit with specified size
131127
pub fn new(c_size: usize) -> Self {
132128
Self {
@@ -152,7 +148,7 @@ impl<Fp: PrimeField + FromUniformBytes<64> + Ord> SimpleTrie<Fp> {
152148
}
153149
}
154150

155-
impl<Fp: PrimeField + FromUniformBytes<64> + Ord> Circuit<Fp> for SimpleTrie<Fp> {
151+
impl<Fp: FromUniformBytes<64> + Ord> Circuit<Fp> for SimpleTrie<Fp> {
156152
type Config = SimpleTrieConfig;
157153
type FloorPlanner = SimpleFloorPlanner;
158154

@@ -611,7 +607,7 @@ impl EthTrieConfig {
611607
}
612608
/// The chip for op on an storage trie
613609
#[derive(Clone, Default)]
614-
pub struct EthTrie<F: PrimeField + FromUniformBytes<64> + Ord> {
610+
pub struct EthTrie<F: FromUniformBytes<64> + Ord> {
615611
start_root: F,
616612
final_root: F,
617613
ops: Vec<AccountOp<F>>,
@@ -622,7 +618,7 @@ const OP_TRIE_STATE: u32 = 2;
622618
const OP_ACCOUNT: u32 = 3;
623619
const OP_STORAGE: u32 = 4;
624620

625-
impl<Fp: PrimeField + FromUniformBytes<64> + Ord> EthTrie<Fp> {
621+
impl<Fp: FromUniformBytes<64> + Ord> EthTrie<Fp> {
626622
/// Obtain the wrapped operation sequence
627623
pub fn get_ops(&self) -> &[AccountOp<Fp>] {
628624
&self.ops
@@ -654,7 +650,7 @@ impl<Fp: PrimeField + FromUniformBytes<64> + Ord> EthTrie<Fp> {
654650

655651
/// the mpt circuit type
656652
#[derive(Clone, Default, Debug)]
657-
pub struct EthTrieCircuit<F: PrimeField + FromUniformBytes<64> + Ord, const LITE: bool> {
653+
pub struct EthTrieCircuit<F: FromUniformBytes<64> + Ord, const LITE: bool> {
658654
/// the maxium records in circuits (would affect vk)
659655
pub calcs: usize,
660656
/// the operations in circuits

src/mpt.rs

+18-18
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ use crate::operation::{MPTPath, SingleOp};
6464
use halo2_proofs::{
6565
arithmetic::Field,
6666
circuit::{Chip, Layouter, Region, Value},
67-
ff::{FromUniformBytes, PrimeField},
67+
ff::FromUniformBytes,
6868
plonk::{
6969
Advice, Column, ConstraintSystem, Error, Expression, Selector, TableColumn, VirtualCells,
7070
},
@@ -123,7 +123,7 @@ impl MPTOpTables {
123123
)
124124
}
125125

126-
pub fn build_lookup_any<Fp: PrimeField + FromUniformBytes<64> + Ord>(
126+
pub fn build_lookup_any<Fp: FromUniformBytes<64> + Ord>(
127127
&self,
128128
enable: Expression<Fp>,
129129
rules: impl IntoIterator<Item = Expression<Fp>>,
@@ -138,7 +138,7 @@ impl MPTOpTables {
138138
ret
139139
}
140140

141-
pub fn build_lookup<Fp: PrimeField + FromUniformBytes<64> + Ord>(
141+
pub fn build_lookup<Fp: FromUniformBytes<64> + Ord>(
142142
&self,
143143
enable: Expression<Fp>,
144144
old: Expression<Fp>,
@@ -148,7 +148,7 @@ impl MPTOpTables {
148148
self.build_lookup_any(enable, [old, new], mark)
149149
}
150150

151-
pub fn fill_constant<Fp: PrimeField + FromUniformBytes<64> + Ord>(
151+
pub fn fill_constant<Fp: FromUniformBytes<64> + Ord>(
152152
&self,
153153
layouter: &mut impl Layouter<Fp>,
154154
rules: impl Iterator<Item = ([u32; 3], u32)> + Clone,
@@ -207,7 +207,7 @@ impl HashTable {
207207
self.0.map(|col| col.index())
208208
}
209209

210-
pub fn build_lookup<Fp: PrimeField + FromUniformBytes<64> + Ord>(
210+
pub fn build_lookup<Fp: FromUniformBytes<64> + Ord>(
211211
&self,
212212
meta: &mut VirtualCells<'_, Fp>,
213213
enable: Expression<Fp>,
@@ -239,7 +239,7 @@ impl HashTable {
239239

240240
/// a helper entry to fill hash table with specified rows, use padding record
241241
/// when hashing_records is not enough
242-
pub fn dev_fill_with_paddings<'d, Fp: PrimeField + FromUniformBytes<64> + Ord>(
242+
pub fn dev_fill_with_paddings<'d, Fp: FromUniformBytes<64> + Ord>(
243243
&self,
244244
layouter: &mut impl Layouter<Fp>,
245245
hashing_records: impl Iterator<Item = &'d (Fp, Fp, Fp)> + Clone,
@@ -256,7 +256,7 @@ impl HashTable {
256256
}
257257

258258
/// a helper entry to fill hash table, only for dev (in using cases)
259-
pub fn dev_fill<'d, Fp: PrimeField + FromUniformBytes<64> + Ord>(
259+
pub fn dev_fill<'d, Fp: FromUniformBytes<64> + Ord>(
260260
&self,
261261
layouter: &mut impl Layouter<Fp>,
262262
hashing_records: impl Iterator<Item = &'d (Fp, Fp, Fp)> + Clone,
@@ -349,7 +349,7 @@ impl MPTOpGadget {
349349
}
350350

351351
/// if the gadget would be used only once, this entry is more easy
352-
pub fn configure_simple<Fp: PrimeField + FromUniformBytes<64> + Ord>(
352+
pub fn configure_simple<Fp: FromUniformBytes<64> + Ord>(
353353
meta: &mut ConstraintSystem<Fp>,
354354
sel: Selector,
355355
exported: &[Column<Advice>],
@@ -378,7 +378,7 @@ impl MPTOpGadget {
378378
/// + s_op_flags * 6 (corresponding 6 ctrl_types)
379379
/// + free col * 8
380380
/// notice the gadget has bi-direction exporting (on top it exporting mpt root and bottom exporting leaf)
381-
pub fn configure<Fp: PrimeField + FromUniformBytes<64> + Ord>(
381+
pub fn configure<Fp: FromUniformBytes<64> + Ord>(
382382
meta: &mut ConstraintSystem<Fp>,
383383
sel: Selector,
384384
exported: &[Column<Advice>],
@@ -469,13 +469,13 @@ impl MPTOpGadget {
469469
i1.chain(i2)
470470
}
471471

472-
/* pub fn init<Fp: PrimeField + FromUniformBytes<64> + Ord>(&self, layouter: &mut impl Layouter<Fp>) -> Result<(), Error> {
472+
/* pub fn init<Fp: FromUniformBytes<64> + Ord>(&self, layouter: &mut impl Layouter<Fp>) -> Result<(), Error> {
473473
self.tables
474474
.fill_constant(layouter, Self::transition_rules())
475475
}*/
476476

477477
/// assign data and enable flag for MPT circuit
478-
pub fn assign<Fp: PrimeField + FromUniformBytes<64> + Ord>(
478+
pub fn assign<Fp: FromUniformBytes<64> + Ord>(
479479
&self,
480480
region: &mut Region<'_, Fp>,
481481
offset: usize,
@@ -510,7 +510,7 @@ impl MPTOpGadget {
510510
}
511511

512512
/*
513-
fn lagrange_polynomial_for_hashtype<Fp: PrimeField + FromUniformBytes<64> + Ord, const T: usize>(
513+
fn lagrange_polynomial_for_hashtype<Fp: FromUniformBytes<64> + Ord, const T: usize>(
514514
ref_n: Expression<Fp>,
515515
) -> Expression<Fp> {
516516
super::lagrange_polynomial::<Fp, T, 5 /* last Type: Leaf */>(ref_n)
@@ -531,14 +531,14 @@ struct PathChipConfig {
531531

532532
/// chip for verify mutiple merkle path in MPT
533533
/// it do not need any auxiliary cols
534-
struct PathChip<'d, F: PrimeField + FromUniformBytes<64> + Ord> {
534+
struct PathChip<'d, F: FromUniformBytes<64> + Ord> {
535535
offset: usize,
536536
config: PathChipConfig,
537537
data: &'d MPTPath<F>,
538538
ref_ctrl_type: Option<&'d [HashType]>,
539539
}
540540

541-
impl<Fp: PrimeField + FromUniformBytes<64> + Ord> Chip<Fp> for PathChip<'_, Fp> {
541+
impl<Fp: FromUniformBytes<64> + Ord> Chip<Fp> for PathChip<'_, Fp> {
542542
type Config = PathChipConfig;
543543
type Loaded = MPTPath<Fp>;
544544

@@ -551,7 +551,7 @@ impl<Fp: PrimeField + FromUniformBytes<64> + Ord> Chip<Fp> for PathChip<'_, Fp>
551551
}
552552
}
553553

554-
impl<'d, Fp: PrimeField + FromUniformBytes<64> + Ord> PathChip<'d, Fp> {
554+
impl<'d, Fp: FromUniformBytes<64> + Ord> PathChip<'d, Fp> {
555555
fn configure(
556556
meta: &mut ConstraintSystem<Fp>,
557557
g_config: &MPTOpConfig,
@@ -854,13 +854,13 @@ struct OpChipConfig {
854854

855855
/// chip for verify mutiple merkle path in MPT
856856
/// it do not need any auxiliary cols
857-
struct OpChip<'d, F: PrimeField + FromUniformBytes<64> + Ord> {
857+
struct OpChip<'d, F: FromUniformBytes<64> + Ord> {
858858
offset: usize,
859859
config: OpChipConfig,
860860
data: &'d SingleOp<F>,
861861
}
862862

863-
impl<Fp: PrimeField + FromUniformBytes<64> + Ord> Chip<Fp> for OpChip<'_, Fp> {
863+
impl<Fp: FromUniformBytes<64> + Ord> Chip<Fp> for OpChip<'_, Fp> {
864864
type Config = OpChipConfig;
865865
type Loaded = SingleOp<Fp>;
866866

@@ -873,7 +873,7 @@ impl<Fp: PrimeField + FromUniformBytes<64> + Ord> Chip<Fp> for OpChip<'_, Fp> {
873873
}
874874
}
875875

876-
impl<'d, Fp: PrimeField + FromUniformBytes<64> + Ord> OpChip<'d, Fp> {
876+
impl<'d, Fp: FromUniformBytes<64> + Ord> OpChip<'d, Fp> {
877877
fn configure(
878878
meta: &mut ConstraintSystem<Fp>,
879879
g_config: &MPTOpConfig,

src/mpt_table.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ impl Config {
4949
self.address.index()
5050
}
5151

52-
pub fn bind_mpt_circuit<F: PrimeField + FromUniformBytes<64> + Ord>(
52+
pub fn bind_mpt_circuit<F: FromUniformBytes<64> + Ord>(
5353
&self,
5454
meta: &mut ConstraintSystem<F>,
5555
gadget_id: Column<Advice>,

src/mpt_table/byte32.rs

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use halo2_proofs::{
22
circuit::{Region, Value},
3-
ff::{FromUniformBytes, PrimeField},
3+
ff::FromUniformBytes,
44
plonk::{Advice, Column, ConstraintSystem, Error, Expression, Selector},
55
poly::Rotation,
66
};
@@ -12,7 +12,7 @@ pub(crate) struct Config {
1212
}
1313

1414
impl Config {
15-
pub fn configure<F: PrimeField + FromUniformBytes<64> + Ord, const N: usize>(
15+
pub fn configure<F: FromUniformBytes<64> + Ord, const N: usize>(
1616
meta: &mut ConstraintSystem<F>,
1717
sel: Selector,
1818
rep: &[Column<Advice>; N],
@@ -49,7 +49,7 @@ impl Config {
4949
Self { rep_hi, rep_lo }
5050
}
5151

52-
pub fn assign<F: PrimeField + FromUniformBytes<64> + Ord>(
52+
pub fn assign<F: FromUniformBytes<64> + Ord>(
5353
&self,
5454
region: &mut Region<'_, F>,
5555
offset: usize,
@@ -67,7 +67,7 @@ impl Config {
6767
Ok(true)
6868
}
6969

70-
pub fn flush<F: PrimeField + FromUniformBytes<64> + Ord>(
70+
pub fn flush<F: FromUniformBytes<64> + Ord>(
7171
&self,
7272
region: &mut Region<'_, F>,
7373
offset: usize,
@@ -84,6 +84,7 @@ mod test {
8484
use super::super::value_rep::Config as RepConfig;
8585
use super::*;
8686
use crate::test_utils::*;
87+
use halo2_proofs::ff::PrimeField;
8788
use halo2_proofs::{
8889
circuit::{Layouter, Region, SimpleFloorPlanner},
8990
dev::{MockProver, VerifyFailure},

0 commit comments

Comments
 (0)