* bn256+grumpkin from halo2curves
* chore: Integrate halo2curves more extensively
- Extend existing tests with additional test cases using the new curve types
* fix: Assign correct orders to bn256 and grumpkin scalar fields
- Swap scalar orders between grumpkin and bn256 in `impl_traits!` implementation
* test: Finish improving test integration with halo2curves
- Enhances test coverage for `pasta_curves` and `halo2curves`
- Cleans up commented code in `test_ivc_nontrivial` and `test_ivc_nontrivial_with_compression` tests
- Updates relevant test cases in `src/lib.rs` to include new curve tests
* chore: Remove commented-out/uneeded code in bn254_grumpkin.rs
* test: reproduce test_from_label for bn254_grumpkin
- Implement the `from_label_serial` function in bn254_grumpkin provider
- Add a test to compare parallel and serial implementations of `from_label` function
* refactor: Clean up to_coordinate & summarize changes
* refactor: rename bn254_grumpkin -> bn256_grumpkin
* test: Expand testing for public params digest using bn256 and grumpkin
* chore: Update halo2curves dependency in Cargo.toml
- Updated the `halo2curves` dependency in `Cargo.toml` to the latest version `0.1.0` from a specific git branch.
* refactor: Refactor multi-exponentiation methods across providers
- Updated bn256_grumpkin.rs to use the cpu_best_multiexp function from pasta provider instead of its native function.
- Modified visibility of cpu_best_multiexp function in pasta.rs from private to crate level.
* chore: set up dependencies to import the correct getrandom feature on Wasm
---------
Co-authored-by: Leo Alt <leo@ethereum.org>
* refactor: make circuit tests generic wrt curves
- Improve modularity by introducing generic `test_recursive_circuit_with` function in `src/circuit.rs`
- Refactor `test_recursive_circuit` to utilize the new function
- Implement type constraints for `test_recursive_circuit_with` function
* refactor: make bellperson tests generic in type of group
- Introduce `test_alloc_bit_with` function utilizing generic types
- Adapt existing `test_alloc_bit` function to use the new `test_alloc_bit_with` function with correct types
* refactor: make the nifs test generic in the type of group
* refactor: make the ivc tests generic in the type of curve
* refactor: simplify generics in tests
* make the keccak tests generic
* make the poseidon tests generic
* make the spartan tests generic
* chore: update to ff/group 0.13 and associated dependencies
Updates:
- zkcrypto/ff, zkcrypto/group to 0.13,
- bellperson to 0.25,
- pasta_curves to 0.5.1, and removes the fil_pasta_curves fork
- pasta-msm should no longer need a fork (WIP)
Adapts source in function, mostly for const usage and API updates.
* expose the portable feature of pasta-MSM
* update pointer to pasta-msm
* Clippy
---------
Co-authored-by: François Garillot <francois@garillot.net>
* VerificationCircuit --> NIFSVerifierCircuit, for clarity
* InnerCircuit --> StepCircuit
* Rename
* cleanup imports
* additional cleanup in the test
* small cleanup