Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v0.4.1 #246

Merged
merged 167 commits into from
Jan 18, 2024
Merged

Release v0.4.1 #246

merged 167 commits into from
Jan 18, 2024

Commits on Feb 6, 2023

  1. feat: upgrade overall halo2-base API to support future multi-threaded

    assignments using our basic gate
    
    * WIP: currently `gates::flex_gate` is updated and passes basic test
    jonathanpwang committed Feb 6, 2023
    Configuration menu
    Copy the full SHA
    863de11 View commit details
    Browse the repository at this point in the history
  2. BUG: GateInstructions::idx_to_indicator was missing a constraint to

    check that the indicator witness was equal to 1 when non-zero.
    * Previously the constraint ensured that `ind[i] = 0` when `idx != i`
      however `ind[idx]` could be anything!!!
    jonathanpwang committed Feb 6, 2023
    Configuration menu
    Copy the full SHA
    941035a View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    4abc9cd View commit details
    Browse the repository at this point in the history

Commits on Feb 7, 2023

  1. Configuration menu
    Copy the full SHA
    ec80e15 View commit details
    Browse the repository at this point in the history
  2. BUG: get_last_bit did not do an assert_bit check on the answer

    * this function was not used anywhere
    jonathanpwang committed Feb 7, 2023
    Configuration menu
    Copy the full SHA
    987853e View commit details
    Browse the repository at this point in the history
  3. fix: builder::assign_* was not handling cases where two gates overlap

    and there is a break point in that overlap
    * we need to copy a cell between columns to fix
    jonathanpwang committed Feb 7, 2023
    Configuration menu
    Copy the full SHA
    631a71e View commit details
    Browse the repository at this point in the history
  4. feat: update gates::range to working tests and new API

    * In keygen mode, the `CircuitBuilder` will clone the `ThreadBuilder`
      instead of `take`ing it because the same circuit is used for both vk
    gen and pk gen. This could lead to more memory usage for pk gen.
    jonathanpwang committed Feb 7, 2023
    Configuration menu
    Copy the full SHA
    22195f4 View commit details
    Browse the repository at this point in the history

Commits on Feb 8, 2023

  1. fix: change AssignedValue type to KeccakAssignedValue for

    compatibility after halo2-base update
    jonathanpwang committed Feb 8, 2023
    Configuration menu
    Copy the full SHA
    eff200f View commit details
    Browse the repository at this point in the history

Commits on Apr 15, 2023

  1. Initial version 0.3.0 of halo2-ecc (#12)

    * add multi-thread witness assignment support for `variable_base_msm`
      and `fixed_base_msm`
    * batch size 100 MSM witness generation went from 500ms -> 100ms
    
    * Sync with updates in `halo2_proofs_axiom`
    * `assign_advice` not longer returns `Result` so no more `unwrap`
    jonathanpwang authored Apr 15, 2023
    Configuration menu
    Copy the full SHA
    bd55bf5 View commit details
    Browse the repository at this point in the history
  2. Fix: assert uses of size hint in release mode (#13)

    * remove `size_hint` in `inner_product_simple`
    
    * change other uses of `size_hint` to follow with `assert_eq!` instead
      of `debug_assert_eq!`
    jonathanpwang authored Apr 15, 2023
    Configuration menu
    Copy the full SHA
    10d1d9f View commit details
    Browse the repository at this point in the history
  3. Fix: bit decomposition edge cases (#14)

    * fix: change `debug_assert` in `decompose_u64_digits_limbs` to restrict
    `bit_len < 64` and `decompose_biguint` to `64 <= bit_len < 128`
    * add more comprehensive tests for above two functions
    jonathanpwang authored Apr 15, 2023
    Configuration menu
    Copy the full SHA
    8ab531c View commit details
    Browse the repository at this point in the history
  4. Initial checkpoint for halo2-ecc v0.3.0 (#15)

    * chore: clippy --fix
    
    * Feat/add readme (#4)
    
    * feat: add README
    
    * feat: re-enable `secp256k1` module with updated tests
    
    * chore: fix result println
    
    * chore: update Cargo halo2_proofs_axiom to axiom/dev branch
    
    * compatibility update with `halo2_proofs_axiom`
    
    Co-authored-by: Matthias Seitz <[email protected]>
    jonathanpwang and mattsse authored Apr 15, 2023
    Configuration menu
    Copy the full SHA
    ac1a926 View commit details
    Browse the repository at this point in the history
  5. Fix: make GateThreadBuilder compatible with external usage (#16)

    * chore: expose gate_builder.unknown
    
    * feat: `GateThreadBuilder::assign_all` takes assigned_{advices,constants}
        as input instead of new hashmap, in case we want to constrain equalities
        for cells not belonging to this builder
    
    * chore: update halo2-pse tag
    
    * fix: `GateThreadBuilder::assign_all` now returns `HashMap`s of
        assigned cells for external equality constraints (e.g., instance cells,
        `AssignedCells` from chips not using halo2-lib).
    
    * fix: `assign_all` was not assigning constants as desired: it was
        assigning a new constant per context. This leads to confusion and
        possible undesired consequences down the line.
    jonathanpwang authored Apr 15, 2023
    Configuration menu
    Copy the full SHA
    d3f21dc View commit details
    Browse the repository at this point in the history
  6. Fix: under-constrained idx_to_indicator (#17)

    *fix(BUG): `GateChip::idx_to_indicator` still had soundness bug where at index
    `idx` the value could be 0 or 1 (instead of only 1)
    
    * feat: add some function documentation
    
    * test(idx_to_indicator): add comprehensive tests
    * both positive and negative tests
    jonathanpwang authored Apr 15, 2023
    Configuration menu
    Copy the full SHA
    514dbda View commit details
    Browse the repository at this point in the history

Commits on Apr 16, 2023

  1. Fix: soundness error in FpChip::assert_eq due to typo (#18)

    * chore: update halo2-ecc version to 0.3.0
    
    * fix(BUG): `FpChip::assert_equal` had `a` instead of `b` typo
    
    * feat: add tests for `FpChip::assert_eq`
    * positive and negative tests
    jonathanpwang authored Apr 16, 2023
    Configuration menu
    Copy the full SHA
    11adaa1 View commit details
    Browse the repository at this point in the history
  2. Remove redundant code and prevent race conditions (#19)

    * feat: move `GateCircuitBuilder::synthesize` to `sub_synthesize` function
    which also returns the assigned advices.
    
    * reduces code duplication between `GateCircuitBuilder::synthesize` and
      `RangeCircuitBuilder::synthesize` and also makes it easier to assign
    public instances elsewhere (e.g., snark-verifier)
    
    * feat: remove `Mutex` to prevent non-deterministism
    
    * In variable and fixed base `msm_par` functions, remove use of
      `Mutex<GateThreadBuilder>` because even the `Mutex` is not thread-
      safe in the sense that: if you let `Mutex` decide order
      that `GateThreadBuilder` is unlocked, you may still add Contexts to
      the builder in a non-deterministic order.
    
    * fix: `fixed_base::msm_par` loading new zeros
    
    * In `msm_par` each parallelized context was loading a new zero via
      `ctx.load_zero()`
    * This led to using more cells than the non-parallelized version
    * In `fixed_base_msm_in`, the if statement depending on
      `rayon::current_number_threads` leads to inconsistent proving keys
    between different machines. This has been removed and now uses a fixed
    number `25`.
    jonathanpwang authored Apr 16, 2023
    Configuration menu
    Copy the full SHA
    61e516d View commit details
    Browse the repository at this point in the history

Commits on Apr 28, 2023

  1. chore: use info! instead of println for params

    * Allow `assign_all` also if `witness_gen_only = true`
    jonathanpwang committed Apr 28, 2023
    Configuration menu
    Copy the full SHA
    fe649ae View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0a2964f View commit details
    Browse the repository at this point in the history

Commits on May 3, 2023

  1. Add documentation for halo2-base (#27)

    * adds draft documentation for range.rs
    
    * draft docs for lib.rs, utiils.rs, builder.rs
    
    * fix: add suggested doc edits for range.rs
    
    * docs: add draft documentation for flex_gate.rs
    
    * fix: range.rs doc capitalization error
    
    * fix: suggested edits for utils.rs docs
    
    * fix: resolve comments for range.rs docs
    
    * fix: resolve comments on flex_gate.rs docs
    
    * fix: resolve comments for lib.rs, util.rs docs
    
    * fix: resolve comments for builder.rs docs
    
    * chore: use `info!` instead of `println` for params
    
    * Allow `assign_all` also if `witness_gen_only = true`
    
    * Fix: `inner_product_left_last` size hint (#25)
    
    * docs: minor fixes
    
    ---------
    
    Co-authored-by: PatStiles <[email protected]>
    jonathanpwang and PatStiles authored May 3, 2023
    Configuration menu
    Copy the full SHA
    6f0ca51 View commit details
    Browse the repository at this point in the history

Commits on May 6, 2023

  1. Smart Range Builder (#29)

    * feat: smart `RangeCircuitBuilder`
    
    Allow `RangeCircuitBuilder` to not create lookup table if it detects
    that there's nothing to look up.
    
    * feat: add `RangeWithInstanceCircuitBuilder`
    
    * Moved from `snark-verifier-sdk`
    * Also made this circuit builder smart so it doesn't load lookup table
      if not necessary
        * In particular this can also be used as a
          `GateWithInstanceCircuitBuilder`
    
    * chore: derive Eq for CircuitBuilderStage
    
    * fix: RangeConfig should not unwrap LOOKUP_BITS
    jonathanpwang authored May 6, 2023
    Configuration menu
    Copy the full SHA
    06905cc View commit details
    Browse the repository at this point in the history

Commits on May 10, 2023

  1. Configuration menu
    Copy the full SHA
    f566451 View commit details
    Browse the repository at this point in the history

Commits on May 18, 2023

  1. Feat: extend halo2 base test coverage (#35)

    * feat: add flex_gate_test.rs and pos add() test
    
    * feat: add pos sub() test
    
    * feat: add pos neg() test
    
    * feat: add pos mul() test
    
    * feat: add pos mul_add() test
    
    * feat: add pos mul_not() test
    
    * feat: add pos assert_bit
    
    * feat: add pos div_unsafe() test
    
    * feat: add pos assert_is_const test
    
    * feat: add pos inner_product() test
    
    * feat: add pos inner_product_left_last() test
    
    * feat: add pos inner_product_with_sums test
    
    * feat: add pos sum_products_with_coeff_and_var test
    
    * feat: add pos and() test
    
    * feat: add pos not() test
    
    * feat: add pos select() test
    
    * feat: add pos or_and() test
    
    * feat: add pos bits_to_indicator() test
    
    * feat: add pos idx_to_indicator() test
    
    * feat: add pos select_by_indicator() test
    
    * feat: add pos select_from_idx() test
    
    * feat: add pos is_zero() test
    
    * feat: add pos is_equal() test
    
    * feat: add pos num_to_bits() test
    
    * feat: add pos lagrange_eval() test
    
    * feat: add pos get_field_element() test
    
    * feat: add pos range_check() tests
    
    * feat: add pos check_less_than() test
    
    * feat: add pos check_less_than_safe() test
    
    * feat: add pos check_big_less_than_safe() test
    
    * feat: add pos is_less_than() test
    
    * feat: add pos is_less_than_safe() test
    
    * feat: add pos is_big_less_than_safe() test
    
    * feat: add pos div_mod() test
    
    * feat: add pos get_last_bit() test
    
    * feat: add pos div_mod_var() test
    
    * fix: pass slices into test functions not arrays
    
    * feat: Add pos property tests for flex_gate
    
    * feat: Add positive property tests for flex_gate
    
    * feat: add pos property tests for range_check.rs
    
    * feat: add neg pranking test for idx_to_indicator
    
    * fix: change div_mod_var test values
    
    * feat(refactor): refactor property tests
    
    * fix: fix neg test, assert_const, assert_bit
    
    * fix: failing prop tests
    
    * feat: expand negative testing is_less_than_failing
    
    * fix: Circuit overflow errors on neg tests
    
    * fix: prop_test_mul_not
    
    * fix: everything but get_last_bit & lagrange
    
    * fix: clippy
    
    * fix: set LOOKUP_BITS in range tests, make range check neg test more
    
    robust
    
    * fix: neg_prop_tests cannot prank inputs
    
    Inputs have many copy constraints; pranking initial input will cause all
    copy constraints to fail
    
    * fix: test_is_big_less_than_safe, 240 bits max
    
    * Didn't want to change current `is_less_than` implementation, which in
      order to optimize lookups for smaller bits, only works when inputs
    have at most `(F::CAPACITY // lookup_bits - 1) * lookup_bits` bits
    
    * fix: inline doc for lagrange_and_eval
    
    * Remove proptest for lagrange_and_eval and leave as todo
    
    * tests: add readme about serial execution
    
    ---------
    
    Co-authored-by: Jonathan Wang <[email protected]>
    PatStiles and jonathanpwang authored May 18, 2023
    Configuration menu
    Copy the full SHA
    a79db0e View commit details
    Browse the repository at this point in the history

Commits on May 19, 2023

  1. fix(ecdsa): allow u1*G == u2*PK case (#36)

    NOTE: current ecdsa requires `r, s` to be given as proper CRT integers
    
    TODO: newtypes to guard this assumption
    jonathanpwang authored May 19, 2023
    Configuration menu
    Copy the full SHA
    086c62c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    55eebd4 View commit details
    Browse the repository at this point in the history
  3. Guard ScalarField byte representations to always be little-endian (#38

    )
    
    fix: guard `ScalarField` to be little-endian
    jonathanpwang authored May 19, 2023
    Configuration menu
    Copy the full SHA
    0948203 View commit details
    Browse the repository at this point in the history
  4. fix: get_last_bit two errors (#39)

    2 embarassing errors:
    * Witness gen for last bit was wrong (used xor instead of &)
    * `ctx.get` was called after `range_check` so it was getting the wrong
      cell
    jonathanpwang authored May 19, 2023
    Configuration menu
    Copy the full SHA
    e477c34 View commit details
    Browse the repository at this point in the history
  5. Add documentation for all debug_asserts (#40)

    feat: add documentation for all debug_asserts
    jonathanpwang authored May 19, 2023
    Configuration menu
    Copy the full SHA
    7e564c8 View commit details
    Browse the repository at this point in the history
  6. fix: FieldChip::divide renamed divide_unsafe (#41)

    Add `divide` that checks denomintor is nonzero.
    Add documentation in cases where `divide_unsafe` is used.
    jonathanpwang authored May 19, 2023
    Configuration menu
    Copy the full SHA
    34f1e7e View commit details
    Browse the repository at this point in the history

Commits on May 22, 2023

  1. Use new types to validate input assumptions (#43)

    * feat: add new types `ProperUint` and `ProperCrtUint`
    
    To guard around assumptions about big integer representations
    
    * fix: remove unused `FixedAssignedCRTInteger`
    
    * feat: use new types for bigint and field chips
    
    New types now guard for different assumptions on non-native bigint
    arithmetic. Distinguish between:
    - Overflow CRT integers
    - Proper BigUint with native part derived from limbs
    - Field elements where inequality < modulus is checked
    
    Also add type to help guard for inequality check in
    ec_add_unequal_strict
    
    Rust traits did not play so nicely with references, so I had to switch
    many functions to move inputs instead of borrow by reference. However to
    avoid writing `clone` everywhere, we allow conversion `From` reference
    to the new type via cloning.
    
    * feat: use `ProperUint` for `big_less_than`
    
    * feat(ecc): add fns for assign private witness points
    
    that constrain point to lie on curve
    
    * fix: unnecessary lifetimes
    
    * chore: remove clones
    jonathanpwang authored May 22, 2023
    Configuration menu
    Copy the full SHA
    0f037e7 View commit details
    Browse the repository at this point in the history
  2. Better handling of EC point at infinity (#44)

    * feat: allow `msm_par` to return identity point
    
    * feat: handle point at infinity
    
    `multi_scalar_multiply` and `multi_exp_par` now handle point at infinity
    completely
    
    Add docs for `ec_add_unequal, ec_sub_unequal, ec_double_and_add_unequal`
    to specify point at infinity leads to undefined behavior
    jonathanpwang authored May 22, 2023
    Configuration menu
    Copy the full SHA
    07f2eba View commit details
    Browse the repository at this point in the history
  3. feat: use strict ec ops more often (#45)

    * `msm` implementations now always use `ec_{add,sub}_unequal` in strict
    mode for safety
    * Add docs to `scalar_multiply` and a flag to specify when it's safe to
      turn off some strict assumptions
    jonathanpwang authored May 22, 2023
    Configuration menu
    Copy the full SHA
    652f9e3 View commit details
    Browse the repository at this point in the history
  4. feat: add parallelize_in helper function (#46)

    Multi-threading of witness generation is tricky because one has to
    ensure the circuit column assignment order stays deterministic. To
    ensure good developer experience / avoiding pitfalls, we provide a new
    helper function for this.
    
    Co-authored-by: Jonathan Wang <[email protected]>
    jonathanpwang and jonathanpwang authored May 22, 2023
    Configuration menu
    Copy the full SHA
    f978636 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    e5cbf14 View commit details
    Browse the repository at this point in the history
  6. feat: fixed_base::msm_par handles identity point (#48)

    We still require fixed base points to be non-identity, but now handle
    the case when scalars may be zero or the final MSM value is identity
    point.
    jonathanpwang authored May 22, 2023
    Configuration menu
    Copy the full SHA
    28d6220 View commit details
    Browse the repository at this point in the history

Commits on May 23, 2023

  1. Configuration menu
    Copy the full SHA
    2c76cc3 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0e176f3 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    3fce68c View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    4a24493 View commit details
    Browse the repository at this point in the history
  5. Release 0.3.0 ecdsa tests (#54)

    * More ecdsa tests
    
    * Update mod.rs
    
    * Update tests.rs
    
    * Update ecdsa.rs
    
    * Update ecdsa.rs
    
    * Update ecdsa.rs
    
    * chore: sync with release-0.3.0 and update CI
    
    Co-authored-by: yulliakot <[email protected]>
    Co-authored-by: yuliakot <[email protected]>
    3 people authored May 23, 2023
    Configuration menu
    Copy the full SHA
    53e3ad3 View commit details
    Browse the repository at this point in the history
  6. chore: fix CI

    cannot multi-thread tests involving lookups due to environment variables
    jonathanpwang committed May 23, 2023
    Configuration menu
    Copy the full SHA
    bebfb39 View commit details
    Browse the repository at this point in the history
  7. fix: prop_test_is_less_than_safe (#58)

    This test doesn't run any prover so the input must satisfy range check
    assumption. More serious coverage is provided by
    `prop_test_neg_is_less_than_safe`
    jonathanpwang authored May 23, 2023
    Configuration menu
    Copy the full SHA
    71cfc51 View commit details
    Browse the repository at this point in the history

Commits on May 26, 2023

  1. Add halo2-base readme (#66)

    * feat: add halo2-base readme
    
    * fix: readme formatting
    
    * fix: readme edits
    
    * fix: grammer
    
    * fix: use relative links and formatting
    
    * fix: formatting
    
    * feat: add RangeCircuitBuilder description
    
    * feat: rewording and small edits
    
    ---------
    
    Co-authored-by: PatStiles <[email protected]>
    jonathanpwang and PatStiles authored May 26, 2023
    Configuration menu
    Copy the full SHA
    bce3c82 View commit details
    Browse the repository at this point in the history

Commits on Jun 3, 2023

  1. Configuration menu
    Copy the full SHA
    282ee8e View commit details
    Browse the repository at this point in the history

Commits on Jun 6, 2023

  1. [Fix] Panic when dealing with identity point (#71)

    * More ecdsa tests
    
    * Update mod.rs
    
    * Update tests.rs
    
    * Update ecdsa.rs
    
    * Update ecdsa.rs
    
    * Update ecdsa.rs
    
    * msm tests
    
    * Update mod.rs
    
    * Update msm_sum_infinity.rs
    
    * fix: ec_sub_strict was panicing when output is identity
    
    * affects the MSM functions: right now if the answer is identity, there
      will be a panic due to divide by 0 instead of just returning 0
    * there could be a more optimal solution, but due to the traits for
      EccChip, we just generate a random point solely to avoid divide by 0
    in the case of identity point
    
    * Fix/fb msm zero (#77)
    
    * fix: fixed_base scalar multiply for [-1]P
    
    * feat: use `multi_scalar_multiply` instead of `scalar_multiply`
    
    * to reduce code maintanence / redundancy
    
    * fix: add back scalar_multiply using any_point
    
    * feat: remove flag from variable base `scalar_multiply`
    
    * feat: add scalar multiply tests for secp256k1
    
    * fix: variable scalar_multiply last select
    
    * Fix/msm tests output identity (#75)
    
    * fixed base msm tests for output infinity
    
    * fixed base msm tests for output infinity
    
    ---------
    
    Co-authored-by: yulliakot <[email protected]>
    
    * feat: add tests and update CI
    
    ---------
    
    Co-authored-by: yuliakot <[email protected]>
    Co-authored-by: yulliakot <[email protected]>
    
    ---------
    
    Co-authored-by: yulliakot <[email protected]>
    Co-authored-by: yuliakot <[email protected]>
    3 people authored Jun 6, 2023
    Configuration menu
    Copy the full SHA
    8b9bdc2 View commit details
    Browse the repository at this point in the history

Commits on Jun 7, 2023

  1. Configuration menu
    Copy the full SHA
    05cfc1c View commit details
    Browse the repository at this point in the history
  2. Add SafeType (#26)

    * Add SafeType
    
    * Refactor & add testing
    
    * Add doc comment
    
    * Refactor SafeChip
    
    * Move gen_proof/check_proof to utils
    
    * Fix merge issues
    nyunyunyunyu authored and jonathanpwang committed Jun 7, 2023
    Configuration menu
    Copy the full SHA
    0be26d4 View commit details
    Browse the repository at this point in the history

Commits on Jun 9, 2023

  1. Configuration menu
    Copy the full SHA
    d3ed3a9 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e4b956b View commit details
    Browse the repository at this point in the history

Commits on Jun 14, 2023

  1. feat: add SafeAddress and SafeUint160 (#85)

    * feat: add SafeAddress and SafeUint160
    
    * fix incorrect byte size
    PatStiles authored Jun 14, 2023
    Configuration menu
    Copy the full SHA
    5293793 View commit details
    Browse the repository at this point in the history

Commits on Jul 7, 2023

  1. Configuration menu
    Copy the full SHA
    f6b22ab View commit details
    Browse the repository at this point in the history
  2. feat: FpChip::range_check now works with max_bits < n * (k-1) (#91)

    * feat(base): range_check 0 bits by asserting is zero
    
    * chore: add range_check 0 bits test
    
    * feat(ecc): `FpChip::range_check` now works with `max_bits < n * (k-1)`
    jonathanpwang committed Jul 7, 2023
    Configuration menu
    Copy the full SHA
    da451da View commit details
    Browse the repository at this point in the history

Commits on Jul 20, 2023

  1. Feat: test suite (#92)

    * feat: stop using env var to pass around FLEX_GATE_CONFIG_PARAMS and
    
    LOOKUP_BITS. Bad for testing (multi-threaded issues). Now we use
    thread_local to have a global static for these config params that can be
    passed around.
    
    * chore: make utils folder and move some files
    
    * Fix halo2 base tests naming (#76)
    
    * feat: `BaseConfig` to switch between `FlexGateConfig` and `RangeConfig`
    
    - `RangeCircuitBuilder` now uses `BaseConfig` to auto-decide whether to
      create lookup table or not.
        - In the future this should be renamed `BaseCircuitBuilder` or just
          `CircuitBuilder`, but for backwards compatibility we leave the name for now.
    - `GateCircuitBuilder` no longer implements `Circuit` because we want to
      switch to having everyone just use `RangeCircuitBuilder`.
    - Tests won't compile now because we still need to refactor
    
    * feat: refactored halo2-base tests to use new test suite
    
    * feat: remove use of env var in halo2-ecc
    
    CI now can just run `cargo test`
    
    * feat: remove use of env var from zkevm-keccak
    
    * Add zkevm-keccak test to CI
    
    * chore: fix CI
    
    * chore: add lint to CI
    
    * chore: make Baseconfig fns public
    
    * fix(test): zkevm-keccak test should have `first_pass = SKIP_FIRST_PASS`
    
    Currently with `first_pass = true`, it skips the first pass, but when
    feature "halo2-axiom" is used, there is only one pass of `synthesize` so
    the whole thing gets skipped. Mea culpa!
    
    ---------
    
    Co-authored-by: Xinding Wei <[email protected]>
    jonathanpwang and nyunyunyunyu authored Jul 20, 2023
    Configuration menu
    Copy the full SHA
    08a16ce View commit details
    Browse the repository at this point in the history

Commits on Jul 21, 2023

  1. Configuration menu
    Copy the full SHA
    d1beb92 View commit details
    Browse the repository at this point in the history

Commits on Jul 26, 2023

  1. feat: add debugging functions (#99)

    * feat: add debugging functions
    
    Functions only available for testing:
    * `ctx.debug_assert_false` for debug break point to search for other
      constrain failures in mock prover
    * `assigned_value.debug_prank(prank_value)` to prank witness values for
      negative tests
    
    * chore: code pretty
    jonathanpwang authored Jul 26, 2023
    Configuration menu
    Copy the full SHA
    160f503 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    081d475 View commit details
    Browse the repository at this point in the history

Commits on Aug 6, 2023

  1. Configuration menu
    Copy the full SHA
    2b3dd5d View commit details
    Browse the repository at this point in the history

Commits on Aug 15, 2023

  1. Use halo2curves v0.4.0 and ff v0.13 (#107)

    * wip: change import to ff v0.13
    
    * feat: remove `GateInstructions::get_field_element`
    
    halo2curves now has `bn256-table` which creates table of small field
    elements at compile time, so we should just use `F::from` always. This
    also improves readability.
    
    * chore: fix syntax and imports after update
    
    * chore: add asm feature
    
    * chore: workspace.resolver = 2
    
    * chore: update ethers-core
    
    * chore: add jemallocator feature to zkevm-keccak crate
    
    * test: add bigger test case to keccak prover
    
    * feat: use `configure_with_params`
    
    remove `thread_local!` usage
    
    * chore: bump zkevm-keccak version to 0.1.1
    
    * feat: add `GateThreadBuilder::from_stage` for convenience
    
    * chore: fixes
    
    * fix: removed `lookup_bits` from `GateThreadBuilder::config`
    
    * fix: debug_assert_false should load witness for debugging
    
    * chore: use unreachable to document that Circuit::configure is never used
    
    * chore: fix comment
    
    * feat(keccak): use configure_with_params
    
    * chore: fix halo2-pse errors
    
    * chore: change halo2_proofs to main
    jonathanpwang authored Aug 15, 2023
    Configuration menu
    Copy the full SHA
    0b16812 View commit details
    Browse the repository at this point in the history
  2. Add sub_mul to GateInstructions (#102)

    * Add `sub_mul` to GateInstructions
    
    * Add `sub_mul` prop test
    mmagician authored and jonathanpwang committed Aug 15, 2023
    Configuration menu
    Copy the full SHA
    3408b7a View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    a62ae5d View commit details
    Browse the repository at this point in the history

Commits on Aug 17, 2023

  1. Configuration menu
    Copy the full SHA
    7100c23 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    49aeedd View commit details
    Browse the repository at this point in the history
  3. [Feat] Add Poseidon Hasher Chip (#110)

    * Add Poseidon chip
    
    * chore: minor fixes
    
    * test(poseidon): add compatbility tests
    
    Cherry-picked from #98
    
    Co-authored-by: Antonio Mejías Gil <[email protected]>
    
    * chore: minor refactor to more closely match snark-verifier
    
    https://github.com/axiom-crypto/snark-verifier/blob/main/snark-verifier/src/util/hash/poseidon.rs
    
    ---------
    
    Co-authored-by: Xinding Wei <[email protected]>
    Co-authored-by: Jonathan Wang <[email protected]>
    Co-authored-by: Antonio Mejías Gil <[email protected]>
    4 people authored Aug 17, 2023
    Configuration menu
    Copy the full SHA
    a7b5433 View commit details
    Browse the repository at this point in the history

Commits on Aug 18, 2023

  1. feat: add VariableByteArray (#88)

    * feat: add VariableByteArray
    
    * fix: correct type in panic msg
    
    * feat: make MAX_VAR_LEN const generic
    
    * feat: add `SafeBool` and `SafeByte` types
    
    These are very common so we have separate wrapper to avoid the extra length 1
    vector heap allocation.
    
    * wip: add VarLenBytes
    
    * Refactor VarLenBytes
    Add VarLenBytesVec and FixLenBytes
    Fix tests
    
    * Add unsafe methods for bytes
    Address NITs
    
    ---------
    
    Co-authored-by: Jonathan Wang <[email protected]>
    Co-authored-by: Xinding Wei <[email protected]>
    3 people authored Aug 18, 2023
    Configuration menu
    Copy the full SHA
    f724c9b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3bacff7 View commit details
    Browse the repository at this point in the history
  3. Rename PoseidonHasherChip to PoseidonHasher (#113)

    Co-authored-by: Xinding Wei <[email protected]>
    nyunyunyunyu and nyunyunyunyu authored Aug 18, 2023
    Configuration menu
    Copy the full SHA
    cd9b6a4 View commit details
    Browse the repository at this point in the history

Commits on Aug 21, 2023

  1. Configuration menu
    Copy the full SHA
    25e211a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b58046c View commit details
    Browse the repository at this point in the history
  3. feat: add select_array_by_indicator to GateInstructions (#115)

    feat(base): add `select_array_by_indicator` to `GateInstructions`
    jonathanpwang authored Aug 21, 2023
    Configuration menu
    Copy the full SHA
    204a699 View commit details
    Browse the repository at this point in the history

Commits on Aug 22, 2023

  1. cleanup: use test-utils for benching (#112)

    * cleanup: use test-utils for benching
    
    * feat: add `{gen,check}_proof_with_instances`
    
    * feat: add initial `bench_builder` cmd to `BaseTester`
    
    * fix: cargo fmt
    jonathanpwang authored Aug 22, 2023
    Configuration menu
    Copy the full SHA
    1c33fbc View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    83ca65e View commit details
    Browse the repository at this point in the history
  3. [feat] Add Poseidon Chip (#114)

    * Add Poseidon hasher
    
    * Fix test/lint
    
    * Fix nits
    
    * Fix lint
    
    * Fix nits & add comments
    
    * Add prover test
    
    * Fix CI
    nyunyunyunyu authored Aug 22, 2023
    Configuration menu
    Copy the full SHA
    7b23747 View commit details
    Browse the repository at this point in the history
  4. [chore] Reorg Folder Structure of hashes/zkevm (#118)

    * chore: rename crate zkevm-keccak to zkevm-hashes
    
    * fix: add `input_len` back to `KeccakTable`
    
    * chore: move keccak specific constants to `keccak_packed_multi/util`
    
    * Fix test
    
    ---------
    
    Co-authored-by: Jonathan Wang <[email protected]>
    nyunyunyunyu and jonathanpwang authored Aug 22, 2023
    Configuration menu
    Copy the full SHA
    9798c85 View commit details
    Browse the repository at this point in the history

Commits on Aug 23, 2023

  1. [fix] CI for zkevm hashes (#119)

    Fix CI for zkevm hashes
    nyunyunyunyu authored Aug 23, 2023
    Configuration menu
    Copy the full SHA
    9fac2a8 View commit details
    Browse the repository at this point in the history
  2. [chore] Split keccak implementation into multiple files (#120)

    Split keccak implementation into multiple files
    nyunyunyunyu authored Aug 23, 2023
    Configuration menu
    Copy the full SHA
    154cd8c View commit details
    Browse the repository at this point in the history

Commits on Aug 24, 2023

  1. feat: keccak constant visibility changes (#121)

    feat: constant visibility changes
    MonkeyKing-1 authored Aug 24, 2023
    Configuration menu
    Copy the full SHA
    89da366 View commit details
    Browse the repository at this point in the history

Commits on Aug 27, 2023

  1. [feat] Keccak Raw Output (#122)

    * Replace raw keccak output instead of RLCOC
    
    * Fix lint
    
    * Add comments & improve expression performance
    nyunyunyunyu authored Aug 27, 2023
    Configuration menu
    Copy the full SHA
    eb4fe65 View commit details
    Browse the repository at this point in the history
  2. Virtual region managers and dynamic lookup support (#123)

    * feat: add `VirtualRegionManager` trait
    
    Create `CopyConstraintManager` to manage global copy constraints.
    
    * wip: separate `SinglePhaseGateManager` and `CopyConstraintManager`
    
    `GateThreadBuilder` was very messy before
    
    Todo:
    - Split out lookup functionality
    
    * wip: add `LookupAnyManager`
    
    * wip: `RangeChip` with `LookupAnyManager`
    
    reorg:
    - previous `builder/threads` moved to `flex_gate/threads` because
    it is all part of `FlexGateConfig` advice assignment logic
    - `builder` moved to `range/circuit/builder.rs` as it is part of the
      assignment logic of `RangeCircuitBuilder`
    
    * feat: working `BaseCircuitBuilder` backwards compatible
    
    - `GateThreadBuilder` has become `MultiPhaseCoreManager`
    - Some of the functionality has been moved into `BaseCircuitBuilder`,
      which is a generalization of `RangeCircuitBuilder`
    - Some fixes on virtual managers because keygen calls `synthesize` twice
      (once for vk, once for pk) so can't drop
    
    * fix: update halo2-ecc and sort `constant_equalities`
    
    Sort `constant_equalities` to ensure deterministism.
    Update `halo2-ecc` (mostly the tests) with new circuit builder format.
    
    * fix: `LookupAnyManager` drop check `Arc` strong_count
    
    * feat: add back single column lookup with selector
    
    Special case: if only single advice column that you need to lookup, you
    can create a selector and enable lookup on that column.
    This means you add 1 selector column, instead of 1 advice column.
    
    Only using this for `RangeConfig` and not generalizing it for now.
    
    * feat: add example of dynamic lookup memory table
    
    * Bump versions to 0.4.0
    
    * chore: re-enable poseidon and safe_types
    
    `Drop` for managers no longer panics because rust `should_panic` test
    cannot handle non-unwinding panics.
    
    * chore: remove `row_offset` from `assigned_advices`
    
    This PR was merged: privacy-scaling-explorations/halo2#192
    
    * chore: move `range::circuit` to `gates::circuit`
    
    * nits: address review comments
    
    * feat: add `num_instance_columns` to `BaseCircuitParams`
    
    No longer a const generic
    
    * chore(CI): use larger runner
    jonathanpwang authored Aug 27, 2023
    Configuration menu
    Copy the full SHA
    15bca77 View commit details
    Browse the repository at this point in the history

Commits on Aug 28, 2023

  1. Use raw_assign_{advice,fixed} in keccak (#125)

    * chore: switch `halo2_proofs` branch to `main`
    
    * chore: use `raw_assign_{advice,fixed}` in keccak
    jonathanpwang authored Aug 28, 2023
    Configuration menu
    Copy the full SHA
    f4c7e2a View commit details
    Browse the repository at this point in the history
  2. [feat] PoseidonHasher supports multiple inputs in compact format (#127)

    * PoseidonHasher supports multiple inputs in compact format
    
    * Add comments
    
    * Remove unnecessary uses
    nyunyunyunyu authored Aug 28, 2023
    Configuration menu
    Copy the full SHA
    7831b00 View commit details
    Browse the repository at this point in the history

Commits on Aug 29, 2023

  1. [feat] Expose Keccack Raw Inputs in Bytes instead of Input RLCs (#124)

    * Expose Keccack raw inputs in bytes instead of input RLCs
    
    * Fix column name in comments
    
    * Add comments
    
    * Compress 8 bytes of inputs into a single witness
    
    * chore: add some comments
    
    * Rewrite gates
    
    * Fix comments & typos
    
    * Fix naming
    
    * Add comments
    
    * Selector improvement
    
    * Remove unused
    
    ---------
    
    Co-authored-by: Jonathan Wang <[email protected]>
    nyunyunyunyu and jonathanpwang authored Aug 29, 2023
    Configuration menu
    Copy the full SHA
    7bdf089 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d07b0d4 View commit details
    Browse the repository at this point in the history
  3. chore: clippy fix

    jonathanpwang committed Aug 29, 2023
    Configuration menu
    Copy the full SHA
    6c80289 View commit details
    Browse the repository at this point in the history
  4. Generic vertical gate assignment (#129)

    * feat: make `single_phase::assign_with_constraints` generic
    
    Use const generic for max rotations accessed by the vertical gate.
    This way we can re-use the code for RLC gate.
    
    * chore: make single_phase pub
    
    * feat: add safety check for overlapping gates
    jonathanpwang authored Aug 29, 2023
    Configuration menu
    Copy the full SHA
    f2cf3e8 View commit details
    Browse the repository at this point in the history

Commits on Sep 1, 2023

  1. Add deep_clone to BaseCircuitBuilder (#131)

    * chore: add convenience function to `BaseConfig`
    
    * feat: add `deep_clone` to `BaseCircuitBuilder`
    
    We sometimes want to clone `BaseCircuitBuilder` completely (for example
    to re-run witness generation). The derived clone only clones the shared
    references, instead of the underlying objects.
    jonathanpwang authored Sep 1, 2023
    Configuration menu
    Copy the full SHA
    be52d1d View commit details
    Browse the repository at this point in the history

Commits on Sep 2, 2023

  1. fix: SingleCorePhaseManager should not create thread in constructor

    Because the thread will default to phase 0.
    jonathanpwang committed Sep 2, 2023
    Configuration menu
    Copy the full SHA
    edd239f View commit details
    Browse the repository at this point in the history

Commits on Sep 3, 2023

  1. Configuration menu
    Copy the full SHA
    f39fef3 View commit details
    Browse the repository at this point in the history

Commits on Sep 4, 2023

  1. Convenience functions and fixes for multi-phase (#133)

    * feat: add `clear` function to circuit builder and managers
    
    * feat: add `BaseConfig::initialize`
    
    * fix: break points for multiphase
    
    * fix: clear should not change phase
    
    * chore: remove dbg
    jonathanpwang authored Sep 4, 2023
    Configuration menu
    Copy the full SHA
    608b8f2 View commit details
    Browse the repository at this point in the history

Commits on Sep 5, 2023

  1. Configuration menu
    Copy the full SHA
    2b03c17 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    64c8123 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    04a40d4 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    671f0cc View commit details
    Browse the repository at this point in the history

Commits on Sep 6, 2023

  1. fix(copy_constraints): backend permutation argument depends on order

    Backend implementation of `constrain_equal` depends on the order in
    which you add equality constraints, so it is not thread-safe...
    jonathanpwang committed Sep 6, 2023
    Configuration menu
    Copy the full SHA
    d27e46a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a1fec64 View commit details
    Browse the repository at this point in the history

Commits on Sep 8, 2023

  1. Configuration menu
    Copy the full SHA
    72b53bf View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0acc05a View commit details
    Browse the repository at this point in the history

Commits on Sep 9, 2023

  1. Configuration menu
    Copy the full SHA
    61fda9d View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    58155d7 View commit details
    Browse the repository at this point in the history
  3. feat(base): add GateInstructions::inner_product_left function (#143)

    * chore: fix comments
    
    * feat(base): add `GateInstructions::inner_product_left` function
    jonathanpwang authored Sep 9, 2023
    Configuration menu
    Copy the full SHA
    3a35050 View commit details
    Browse the repository at this point in the history
  4. [feat] Keccak Coprocessor Leaf Circuit (#130)

    * WIP
    
    * chore: make `KeccakAssignedRow` fields public
    
    * Refactor Keccak coprocessor circuit
    
    * Optimize Keccak circuit MAX_DEGREE
    
    * Fix comments
    
    * Fix bug & typos
    
    * Add testing & refactor folder structure
    
    * Debugging
    
    * Fix bugs
    
    * Fix typo & bug
    
    * feat(test): real prover tests use dummy input for keygen
    
    * chore: make `LoadedKeccakF` public
    
    * Also made `encoded_inputs_from_keccak_fs` public
    * Both are useful for external use to make lookup tables in app circuits
    
    * fix(keccak_leaf): review comments and optimization
    
    * chore: use `gate` when `range` not necessary
    
    * Move calculate base ciruit params out & Fix naming/comments
    
    * Make Field-related parameter functions const
    
    * feat: change `is_final` to `SafeBool`
    
    * nit
    
    * Fix typo
    
    ---------
    
    Co-authored-by: Jonathan Wang <[email protected]>
    nyunyunyunyu and jonathanpwang authored Sep 9, 2023
    Configuration menu
    Copy the full SHA
    9377d90 View commit details
    Browse the repository at this point in the history
  5. [feat] App Circuit Utils for Keccak Coprocessor (#141)

    * Add keccak coprocessor encoding for VarLenBytesVec/FixLenBytesVec
    
    * Fix naming/nits
    
    * Fix nit
    nyunyunyunyu authored Sep 9, 2023
    Configuration menu
    Copy the full SHA
    54044c9 View commit details
    Browse the repository at this point in the history

Commits on Sep 10, 2023

  1. [chore] Fix fmt (#144)

    Fix fmt
    nyunyunyunyu authored Sep 10, 2023
    Configuration menu
    Copy the full SHA
    14bec5a View commit details
    Browse the repository at this point in the history
  2. chore: add misc utility functions (#146)

    * chore(keccak_leaf): make `generate_circuit_final_outputs` public
    
    * chore: add misc utility functions
    jonathanpwang authored Sep 10, 2023
    Configuration menu
    Copy the full SHA
    c2a9341 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    482bed6 View commit details
    Browse the repository at this point in the history
  4. chore(keccak): use snark-verifier native Poseidon for encoding (#148)

    Currently only used for testing
    jonathanpwang authored Sep 10, 2023
    Configuration menu
    Copy the full SHA
    41ea795 View commit details
    Browse the repository at this point in the history

Commits on Sep 11, 2023

  1. Configuration menu
    Copy the full SHA
    1ea4f84 View commit details
    Browse the repository at this point in the history
  2. [chore] cleanup code (#150)

    chore: cleanup code
    jonathanpwang authored Sep 11, 2023
    Configuration menu
    Copy the full SHA
    2ccfc43 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    18057d3 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    46c5769 View commit details
    Browse the repository at this point in the history
  5. chore: fix fmt

    jonathanpwang committed Sep 11, 2023
    Configuration menu
    Copy the full SHA
    eb5b284 View commit details
    Browse the repository at this point in the history
  6. [Doc] Keccak Doc (#145)

    * Keccak docs
    
    * Fix typos
    
    * Add examples
    
    * Fix comments/docs
    nyunyunyunyu authored Sep 11, 2023
    Configuration menu
    Copy the full SHA
    92277ce View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    1bf36b1 View commit details
    Browse the repository at this point in the history

Commits on Sep 18, 2023

  1. [fix] max_rows in BaseCircuitBuilder in Keccak Leaf Circuit (#152)

    Fix max_rows in BaseCircuitBuilder inside Keccak Vanilla
    nyunyunyunyu authored and jonathanpwang committed Sep 18, 2023
    Configuration menu
    Copy the full SHA
    12f190a View commit details
    Browse the repository at this point in the history
  2. [chore] Remove Unnecessary Lookup in Keccak Coprocessor Leaf Circuit (#…

    …153)
    
    * chore: fix fmt
    
    * [fix] max_rows in BaseCircuitBuilder in Keccak Leaf Circuit (#152)
    
    Fix max_rows in BaseCircuitBuilder inside Keccak Vanilla
    
    * Remove lookup in Keccak Leaf circuit
    nyunyunyunyu authored Sep 18, 2023
    Configuration menu
    Copy the full SHA
    9a2fc70 View commit details
    Browse the repository at this point in the history
  3. Revert "chore: pin snark-verifier branch"

    This reverts commit 1bf36b1.
    jonathanpwang committed Sep 18, 2023
    Configuration menu
    Copy the full SHA
    17d297b View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    26b81a3 View commit details
    Browse the repository at this point in the history

Commits on Sep 19, 2023

  1. Configuration menu
    Copy the full SHA
    712d889 View commit details
    Browse the repository at this point in the history
  2. [fix] Multiple Phase Lookup (#162)

    Fix multiple phase lookup
    nyunyunyunyu authored Sep 19, 2023
    Configuration menu
    Copy the full SHA
    e36c45b View commit details
    Browse the repository at this point in the history
  3. [fix] Multiple Phase Lookup (#162)

    Fix multiple phase lookup
    nyunyunyunyu authored and jonathanpwang committed Sep 19, 2023
    Configuration menu
    Copy the full SHA
    d3828a4 View commit details
    Browse the repository at this point in the history

Commits on Sep 26, 2023

  1. [chore] add conversion SafePrimitive to QuantumCell::Existing (#169)

    chore: add conversion `SafePrimitive` to `QuantumCell::Existing`
    jonathanpwang authored Sep 26, 2023
    Configuration menu
    Copy the full SHA
    215fe1c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    524c818 View commit details
    Browse the repository at this point in the history
  3. [chore] add conversion SafePrimitive to QuantumCell::Existing (#169)

    chore: add conversion `SafePrimitive` to `QuantumCell::Existing`
    jonathanpwang committed Sep 26, 2023
    Configuration menu
    Copy the full SHA
    7acbe4d View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    5a43f96 View commit details
    Browse the repository at this point in the history
  5. chore: make {Fixed,Var}LenBytes* constructor public

    It's convenient to be able to construct the structs from vectors of safe
    bytes externally. Only unsafe-ness is `len <= max_len` is not checked.
    jonathanpwang committed Sep 26, 2023
    Configuration menu
    Copy the full SHA
    4cd0844 View commit details
    Browse the repository at this point in the history
  6. chore: make {Fixed,Var}LenBytes* constructor public

    It's convenient to be able to construct the structs from vectors of safe
    bytes externally. Only unsafe-ness is `len <= max_len` is not checked.
    jonathanpwang committed Sep 26, 2023
    Configuration menu
    Copy the full SHA
    3f84ec2 View commit details
    Browse the repository at this point in the history

Commits on Sep 28, 2023

  1. Configuration menu
    Copy the full SHA
    16fa9e5 View commit details
    Browse the repository at this point in the history

Commits on Sep 29, 2023

  1. [chore] derive Hash for BaseCircuitParams (#172)

    chore: derive `Hash` for `BaseCircuitParams`
    jonathanpwang authored Sep 29, 2023
    Configuration menu
    Copy the full SHA
    dff0e63 View commit details
    Browse the repository at this point in the history

Commits on Oct 1, 2023

  1. [chore] impl AsRef, AsMut for BaseCircuitBuilder to self (#173)

    chore: impl `AsRef, AsMut` for `BaseCircuitBuilder` to self
    jonathanpwang authored Oct 1, 2023
    Configuration menu
    Copy the full SHA
    8a5d469 View commit details
    Browse the repository at this point in the history
  2. [chore] impl AsRef, AsMut for BaseConfig to self (#174)

    chore: impl `AsRef, AsMut` for `BaseConfig` to self
    jonathanpwang authored Oct 1, 2023
    Configuration menu
    Copy the full SHA
    addfbec View commit details
    Browse the repository at this point in the history

Commits on Oct 7, 2023

  1. [chore] Add getters to KeccakComponentShardCircuit (#178)

    * chore: add getters to `KeccakComponentShardCircuit`
    
    For example, it's useful to access `BaseCircuitBuilder` to read public instances.
    
    * chore: `inputs` getter for `KeccakComponentShardCircuit`
    
    * feat: remove getter for `BaseCircuitBuilder`
    
    `BaseCircuitBuilder` is built during `synthesize` after raw vanilla
    circuit synthesis, so it should not be accessed externally.
    jonathanpwang authored Oct 7, 2023
    Configuration menu
    Copy the full SHA
    9e6c9a1 View commit details
    Browse the repository at this point in the history

Commits on Oct 10, 2023

  1. [chore] Expose Keccak Packing (#180)

    Expose Keccak packing
    nyunyunyunyu authored Oct 10, 2023
    Configuration menu
    Copy the full SHA
    fef7316 View commit details
    Browse the repository at this point in the history

Commits on Oct 11, 2023

  1. [chore] Expose Keccak Format (#181)

    Expose Keccak format_input
    nyunyunyunyu authored Oct 11, 2023
    Configuration menu
    Copy the full SHA
    5411321 View commit details
    Browse the repository at this point in the history
  2. [feat] basic dynamic lookup table gadget (#182)

    * feat: basic dynamic lookup table gadget
    
    * chore: fix imports
    jonathanpwang authored Oct 11, 2023
    Configuration menu
    Copy the full SHA
    bf71f0e View commit details
    Browse the repository at this point in the history

Commits on Oct 16, 2023

  1. [chore] expose spec in PoseidonHasher (#183)

    chore: expose `spec` in `PoseidonHasher`
    jonathanpwang authored Oct 16, 2023
    Configuration menu
    Copy the full SHA
    9ff8994 View commit details
    Browse the repository at this point in the history

Commits on Oct 18, 2023

  1. [chore] fix halo2-pse build error (#184)

    chore: fix halo2-pse build error
    jonathanpwang authored Oct 18, 2023
    Configuration menu
    Copy the full SHA
    ff0cadf View commit details
    Browse the repository at this point in the history

Commits on Oct 20, 2023

  1. [feat] expose keccak table loading/packing functions for external cra…

    …te usage (#195)
    
    * feat: expose `load_keccak_assigned_rows` for external crates to use
    
    * feat: split `encode_inputs_from_keccak_fs` into
    
    `pack_inputs_from_keccak_fs` and poseidon hashing part.
    The packing part can be used separately from the Poseidon-specific part.
    
    * chore: rename function
    jonathanpwang authored Oct 20, 2023
    Configuration menu
    Copy the full SHA
    582f671 View commit details
    Browse the repository at this point in the history
  2. [chore] add getters to PoseidonCompactChunkInput (#196)

    chore: add getters to `PoseidonCompactChunkInput`
    jonathanpwang authored Oct 20, 2023
    Configuration menu
    Copy the full SHA
    eef553c View commit details
    Browse the repository at this point in the history

Commits on Oct 21, 2023

  1. [chore] fix deref after using CopyGetters (#197)

    * chore: fix deref from get_copy
    
    * chore: add missing docs from getters
    jonathanpwang authored Oct 21, 2023
    Configuration menu
    Copy the full SHA
    ca498e5 View commit details
    Browse the repository at this point in the history

Commits on Oct 22, 2023

  1. [feat] implement CircuitExt for KeccakComponentShardCircuit (#198)

    * chore: import `snark-verifier-sdk`
    
    * feat: implement `CircuitExt` for `KeccakComponentShardCircuit`
    
    so it can be aggregated by `snark-verifier-sdk`
    
    * chore: derive `Serialize` for keccak circuit params
    jonathanpwang authored Oct 22, 2023
    Configuration menu
    Copy the full SHA
    2e996ae View commit details
    Browse the repository at this point in the history

Commits on Oct 23, 2023

  1. Configuration menu
    Copy the full SHA
    ee822b9 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    267123f View commit details
    Browse the repository at this point in the history

Commits on Nov 2, 2023

  1. [chore] add cargo audit to CI (#207)

    chore: add `cargo audit` to CI
    
    Upgrade criterion version
    jonathanpwang authored Nov 2, 2023
    Configuration menu
    Copy the full SHA
    4ba2efc View commit details
    Browse the repository at this point in the history
  2. [fix] FieldChip::range_check should take FieldPoint instead of `U…

    …nsafeFieldPoint` (#209)
    
    * fix: `FieldChip::range_check` should take `FieldPoint`
    
    instead of `UnsafeFieldPoint`
    
    * chore: fix audit-check CI
    
    * chore: toggle CI on release branches
    jonathanpwang authored Nov 2, 2023
    Configuration menu
    Copy the full SHA
    d4bf2fa View commit details
    Browse the repository at this point in the history

Commits on Nov 3, 2023

  1. [feat] update docs (#211)

    * feat: update doc comments with function assumptions
    
    * feat: update readme
    
    * chore: fix CI
    jonathanpwang authored Nov 3, 2023
    Configuration menu
    Copy the full SHA
    4bc9f0a View commit details
    Browse the repository at this point in the history
  2. [chore] fix dev graph tests (#212)

    * chore: CI uses clippy all-targets
    
    * fix: dev-graph tests (only works for halo2-pse)
    
    Didn't bother refactoring halo2-axiom to support dev-graph
    jonathanpwang authored Nov 3, 2023
    Configuration menu
    Copy the full SHA
    4e78e40 View commit details
    Browse the repository at this point in the history
  3. [fix] BasicDynLookupConfig needs selector on advice table to preven…

    …t lookup poison (#206)
    
    * fix: add fixed column to `BasicDynLookupConfig`
    
    To prevent looking up into poisoned rows of `table`.
    
    * feat: change `memory` example to use `BasicDynLookupConfig` for testing
    
    * feat: change `BasicDynLookupConfig` to support zero key
    
    * chore: move helper functions to `utils::halo2`
    jonathanpwang authored Nov 3, 2023
    Configuration menu
    Copy the full SHA
    a30e3b1 View commit details
    Browse the repository at this point in the history
  4. [feat] add keccak circuit tests against Known Answer Test vectors (#213)

    feat: add keccak circuit tests against Known Answer Test vectors
    jonathanpwang authored Nov 3, 2023
    Configuration menu
    Copy the full SHA
    6cc92c6 View commit details
    Browse the repository at this point in the history
  5. [chore] fix documentation (#215)

    * chore: fix keccak comment
    
    * chore: remove redundant
    
    * chore: fix test case description
    
    * chore: fix documentation
    
    * chore: add comment
    jonathanpwang authored Nov 3, 2023
    Configuration menu
    Copy the full SHA
    cba20ed View commit details
    Browse the repository at this point in the history
  6. [chore] fix doc comment (#216)

    chore: fix doc comment
    jonathanpwang authored Nov 3, 2023
    Configuration menu
    Copy the full SHA
    67e3a0e View commit details
    Browse the repository at this point in the history

Commits on Nov 12, 2023

  1. Configuration menu
    Copy the full SHA
    5e2706f View commit details
    Browse the repository at this point in the history

Commits on Nov 13, 2023

  1. fix: TypeId in ContextTag not stable across builds (#217)

    * fix: use &str instead of TypeId in ContextTag
    
    * chore: add warning to readme
    
    * chore: fix comment
    jonathanpwang authored Nov 13, 2023
    Configuration menu
    Copy the full SHA
    70d6d8a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    dacb885 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    b880af1 View commit details
    Browse the repository at this point in the history

Commits on Nov 14, 2023

  1. [chore] add crate prefix to type_ids (#218)

    * chore: add crate prefix to `type_id`s
    
    * fix: module_path! url
    
    * chore: add type_id warning to `Context::new` and `ContextCell::new`
    jonathanpwang committed Nov 14, 2023
    Configuration menu
    Copy the full SHA
    adb9694 View commit details
    Browse the repository at this point in the history

Commits on Nov 16, 2023

  1. Configuration menu
    Copy the full SHA
    b6a5750 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d45800d View commit details
    Browse the repository at this point in the history

Commits on Nov 20, 2023

  1. Configuration menu
    Copy the full SHA
    26a4504 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    12e07e1 View commit details
    Browse the repository at this point in the history

Commits on Nov 30, 2023

  1. [fix] soundness bug in `BasicDynLookupConfig::assign_virtual_table_to…

    …_raw` (#224)
    
    * fix: `BasicDynLookupConfig::assign_virtual_table_to_raw`
    
    * feat: add safety check on all assigned_advice HashMap insertions
    jonathanpwang authored Nov 30, 2023
    Configuration menu
    Copy the full SHA
    b6625fa View commit details
    Browse the repository at this point in the history

Commits on Dec 10, 2023

  1. [chore] make KeccakComponentShardCircuit inputs into RefCell (#231

    )
    
    chore: make keccak `inputs` `RefCell`
    jonathanpwang authored Dec 10, 2023
    Configuration menu
    Copy the full SHA
    fe3e439 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ae6f378 View commit details
    Browse the repository at this point in the history

Commits on Dec 13, 2023

  1. chore: add utility traits to aid in proving key generation (#227)

    * feat: add utility traits for keygen
    
    * chore: `get_pinning_after_keygen` gets `kzg_params` to record svk
    
    * chore: add safety check on k
    jonathanpwang authored Dec 13, 2023
    Configuration menu
    Copy the full SHA
    4acc096 View commit details
    Browse the repository at this point in the history

Commits on Dec 15, 2023

  1. [chore] get_pinning_after_keygen uses self (#235)

    chore: `get_pinning_after_keygen` uses `self`
    
    In some cases intent might have context that circuit itself does not,
    which we want included in the pinning for convenience.
    jonathanpwang authored Dec 15, 2023
    Configuration menu
    Copy the full SHA
    aae4ae0 View commit details
    Browse the repository at this point in the history

Commits on Dec 16, 2023

  1. fix(docs): div_unsafe docs (#237)

    * fix(docs): `div_unsafe` docs
    
    * chore: use division symbol
    shuklaayush authored and jonathanpwang committed Dec 16, 2023
    Configuration menu
    Copy the full SHA
    f323d89 View commit details
    Browse the repository at this point in the history

Commits on Dec 28, 2023

  1. Configuration menu
    Copy the full SHA
    395cc26 View commit details
    Browse the repository at this point in the history

Commits on Dec 30, 2023

  1. Configuration menu
    Copy the full SHA
    e73f6ed View commit details
    Browse the repository at this point in the history

Commits on Jan 18, 2024

  1. Configuration menu
    Copy the full SHA
    21285fa View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    57d3e19 View commit details
    Browse the repository at this point in the history