Fixes#55.
This commit enables users to re-use more of snark-verifier code when
implementing
impl AccumulationDecider<_, MyLoader> for KzgAs<_, _>
in order to define their own Loader and make it work with KZG10.
The field `svk` was already exported through `impl
AsRef<KzgSuccinctVerifyingKey<M::G1Affine>>`, but this commit
additionally defines it as `pub` for consistency with `g2` and `s_g2`
fields.
* feat: change yul code into Solidity assembly
Just changes to wrapping yul in solidity assembly block
* chore: loosen pragma
* chore: remove example sol file
* feat: add snark-verifier-sdk
* chore: remove config and add example dir
* feat: add "derive_serde" feature to `snark-verifier`
This way `Snark` can be derive `Serialize`d
* fix: remove leftover artifacts
* feat: add back feature `halo2_circuit_params` and fix clippy
* fix: consider for all targets
---------
Co-authored-by: Jonathan Wang <jonathanpwang@users.noreply.github.com>
Co-authored-by: Han <tinghan0110@gmail.com>
* feat: restructure to monorepo and expand the project scope to be generic (s)nark verifier
* feat: reorganize mods and traits for further new features
* refactor: simplify trait bounds
* chore: use hyphen case for crate name (`snark_verifier` -> `snark-verifier`)
* feat: remove dev-dependency `foundry` and vendor necessary part of it
* refactor: simplify traits and remove unused stuff
* refactor: much less clone
* feat: generalized `AccumulatorEncoding` for `EccInstructions`
* feat: generalize `Protocol` for further usage
* feat: add `EccInstruction::{fixed_base_msm,variable_base_msm,sum_with_const}`
* chore: move `rand_chacha` as dev dependency
* feat: move `Accumulator` to `accumulator.rs`
* feat: update due to halo2
* feat: upgrade to use branch `feature/generic-instructions` of `halo2wrong`
* refactor: rollback to `{halo2,halo2_wrong}` without challenge API and cleanup dependencies
* chore: rename statement to instance and auxliary to witness
* chore: use `finalize` instead of `code`
* feat: add `Code::deployment` and `EvmLoader::deployment_code`; add example `evm-verifier-codegen`
* fix: typo
* feat: reduce generated evm verifier size; rename to `evm-verifier` and add another example `evm-verifier-with-accumulator`
* fix: due to `halo2wrong`
* feat: reorganize mods and traits
* fix: allow empty `values` in `sum_*` and move them under `ScalarLoader`
* ci: use `--all-features` for `cargo test`
* fix: use same strategy for aggregation testing
* fix: simplify trait `PlonkVerifier` again
* fix: move system specified transcript under mod `system`
* feat: add `quotient_poly` info in `Protocol`
* feat: implement linearization for circom integration
* feat: re-export loader's dependency for consumer
* refactor: for circom's integration
* tmp: pin `revm` to rev
* fix: remove parentheses
* fix: upgrade for multi-phase halo2
* feat: improve error reporting
* chore: rename crate to snake case
* feat: add `Domain` as an input of `PolynomialCommitmentScheme::read_proof`
* refactor: for further integration
* feat: generalize to suppoer also ipa and add builder fns to `system::halo2::Config`
* feat: add `KzgDecider` for simple evm verifier
* refactor: split `AccumulationScheme` and `AccumulatorEncoding`
* refactor: split `PolynomialCommitmentScheme` and `MultiOpenScheme`
* fix: not need sealed actually
* fix: `chunk_size` should be `LIMBS` when recovering accumulator
* feat: add `Expression::DistributePowers` to avoid stack overflow
* fix: update and pin foundry
* fix: move testing circuits under `system/halo2`
* fix: allow accumulate single accumulator
* feat: remove all patch and make less depending `halo2wrong`