pub trait JubjubParams<E: JubjubEngine>: Sized {
// Required methods
fn edwards_d(&self) -> &E::Fr;
fn montgomery_a(&self) -> &E::Fr;
fn montgomery_2a(&self) -> &E::Fr;
fn scale(&self) -> &E::Fr;
fn pedersen_hash_generators(&self) -> &[Point<E, PrimeOrder>];
fn pedersen_hash_exp_table(&self) -> &[Vec<Vec<Point<E, PrimeOrder>>>];
fn pedersen_hash_chunks_per_generator(&self) -> usize;
fn pedersen_circuit_generators(&self) -> &[Vec<Vec<(E::Fr, E::Fr)>>];
fn fixed_base_chunks_per_generator(&self) -> usize;
fn generator(&self, base: FixedGenerators) -> &Point<E, PrimeOrder>;
fn circuit_generators(
&self,
base: FixedGenerators,
) -> &[Vec<(E::Fr, E::Fr)>];
fn pedersen_hash_exp_window_size(&self) -> u32;
}
Expand description
The pre-computed parameters for Jubjub, including curve constants and various limits and window tables.
Required Methods§
Sourcefn montgomery_a(&self) -> &E::Fr
fn montgomery_a(&self) -> &E::Fr
The A
constant of the birationally equivalent Montgomery curve.
Sourcefn montgomery_2a(&self) -> &E::Fr
fn montgomery_2a(&self) -> &E::Fr
The A
constant, doubled.
Sourcefn pedersen_hash_generators(&self) -> &[Point<E, PrimeOrder>]
fn pedersen_hash_generators(&self) -> &[Point<E, PrimeOrder>]
Returns the generators (for each segment) used in all Pedersen commitments.
Sourcefn pedersen_hash_exp_table(&self) -> &[Vec<Vec<Point<E, PrimeOrder>>>]
fn pedersen_hash_exp_table(&self) -> &[Vec<Vec<Point<E, PrimeOrder>>>]
Returns the exp table for Pedersen hashes.
Sourcefn pedersen_hash_chunks_per_generator(&self) -> usize
fn pedersen_hash_chunks_per_generator(&self) -> usize
Returns the maximum number of chunks per segment of the Pedersen hash.
Sourcefn pedersen_circuit_generators(&self) -> &[Vec<Vec<(E::Fr, E::Fr)>>]
fn pedersen_circuit_generators(&self) -> &[Vec<Vec<(E::Fr, E::Fr)>>]
Returns the pre-computed window tables [-4, 3, 2, 1, 1, 2, 3, 4] of different magnitudes of the Pedersen hash segment generators.
Sourcefn fixed_base_chunks_per_generator(&self) -> usize
fn fixed_base_chunks_per_generator(&self) -> usize
Returns the number of chunks needed to represent a full scalar during fixed-base exponentiation.
Sourcefn generator(&self, base: FixedGenerators) -> &Point<E, PrimeOrder>
fn generator(&self, base: FixedGenerators) -> &Point<E, PrimeOrder>
Returns a fixed generator.
Sourcefn circuit_generators(&self, base: FixedGenerators) -> &[Vec<(E::Fr, E::Fr)>]
fn circuit_generators(&self, base: FixedGenerators) -> &[Vec<(E::Fr, E::Fr)>]
Returns a window table [0, 1, …, 8] for different magnitudes of some fixed generator.
Sourcefn pedersen_hash_exp_window_size(&self) -> u32
fn pedersen_hash_exp_window_size(&self) -> u32
Returns the window size for exponentiation of Pedersen hash generators outside the circuit
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.