Update gadgets traits

This commit is contained in:
howardwu 2021-03-04 10:38:28 -08:00
parent 400e3dd440
commit 3c4b8e9f68
85 changed files with 225 additions and 213 deletions

View File

@ -36,8 +36,8 @@ use snarkvm_dpc::base_dpc::instantiated::Components;
use snarkvm_dpc::SystemParameters;
use snarkvm_errors::gadgets::SynthesisError;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSynthesizer;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_r1cs::ConstraintSynthesizer;
use snarkvm_r1cs::ConstraintSystem;
use sha2::Digest;
use sha2::Sha256;

View File

@ -24,9 +24,9 @@ use crate::GroupType;
use leo_asg::Expression;
use leo_asg::Span;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_r1cs::ConstraintSystem;
impl<'a, F: PrimeField, G: GroupType<F>> ConstrainedProgram<'a, F, G> {
pub fn evaluate_console_assert<CS: ConstraintSystem<F>>(

View File

@ -23,9 +23,9 @@ use crate::GroupType;
use leo_asg::ConsoleFunction;
use leo_asg::ConsoleStatement;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_r1cs::ConstraintSystem;
impl<'a, F: PrimeField, G: GroupType<F>> ConstrainedProgram<'a, F, G> {
pub fn evaluate_console_function_call<CS: ConstraintSystem<F>>(

View File

@ -22,7 +22,7 @@ use crate::GroupType;
use leo_asg::FormattedString;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_r1cs::ConstraintSystem;
impl<'a, F: PrimeField, G: GroupType<F>> ConstrainedProgram<'a, F, G> {
pub fn format<CS: ConstraintSystem<F>>(

View File

@ -27,8 +27,8 @@ use leo_input::LeoInputParser;
use leo_package::inputs::InputPairs;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::r1cs::TestConstraintSystem;
use snarkvm_r1cs::ConstraintSystem;
use std::path::Path;
pub fn generate_constraints<'a, F: PrimeField, G: GroupType<F>, CS: ConstraintSystem<F>>(

View File

@ -22,7 +22,7 @@ use crate::GroupType;
use leo_ast::Span;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_r1cs::ConstraintSystem;
pub fn enforce_add<'a, F: PrimeField, G: GroupType<F>, CS: ConstraintSystem<F>>(
cs: &mut CS,

View File

@ -22,7 +22,7 @@ use crate::GroupType;
use leo_ast::Span;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_r1cs::ConstraintSystem;
pub fn enforce_div<'a, F: PrimeField, G: GroupType<F>, CS: ConstraintSystem<F>>(
cs: &mut CS,

View File

@ -22,7 +22,7 @@ use crate::GroupType;
use leo_ast::Span;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_r1cs::ConstraintSystem;
pub fn enforce_mul<'a, F: PrimeField, G: GroupType<F>, CS: ConstraintSystem<F>>(
cs: &mut CS,

View File

@ -22,7 +22,7 @@ use crate::GroupType;
use leo_ast::Span;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_r1cs::ConstraintSystem;
pub fn enforce_negate<'a, F: PrimeField, G: GroupType<F>, CS: ConstraintSystem<F>>(
cs: &mut CS,

View File

@ -22,7 +22,7 @@ use crate::GroupType;
use leo_ast::Span;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_r1cs::ConstraintSystem;
pub fn enforce_pow<'a, F: PrimeField, G: GroupType<F>, CS: ConstraintSystem<F>>(
cs: &mut CS,

View File

@ -22,7 +22,7 @@ use crate::GroupType;
use leo_ast::Span;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_r1cs::ConstraintSystem;
pub fn enforce_sub<'a, F: PrimeField, G: GroupType<F>, CS: ConstraintSystem<F>>(
cs: &mut CS,

View File

@ -24,7 +24,7 @@ use leo_asg::Expression;
use leo_asg::Span;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_r1cs::ConstraintSystem;
impl<'a, F: PrimeField, G: GroupType<F>> ConstrainedProgram<'a, F, G> {
#[allow(clippy::too_many_arguments)]

View File

@ -24,7 +24,7 @@ use leo_asg::Expression;
use leo_asg::Span;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_r1cs::ConstraintSystem;
impl<'a, F: PrimeField, G: GroupType<F>> ConstrainedProgram<'a, F, G> {
pub(crate) fn enforce_index<CS: ConstraintSystem<F>>(

View File

@ -23,7 +23,7 @@ use crate::GroupType;
use leo_asg::Expression;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_r1cs::ConstraintSystem;
type ConstrainedValuePair<'a, T, U> = (ConstrainedValue<'a, T, U>, ConstrainedValue<'a, T, U>);

View File

@ -24,7 +24,7 @@ use leo_asg::CircuitAccessExpression;
use leo_asg::Node;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_r1cs::ConstraintSystem;
impl<'a, F: PrimeField, G: GroupType<F>> ConstrainedProgram<'a, F, G> {
#[allow(clippy::too_many_arguments)]

View File

@ -26,7 +26,7 @@ use leo_asg::CircuitMember;
use leo_asg::Span;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_r1cs::ConstraintSystem;
impl<'a, F: PrimeField, G: GroupType<F>> ConstrainedProgram<'a, F, G> {
pub fn enforce_circuit<CS: ConstraintSystem<F>>(

View File

@ -23,9 +23,9 @@ use crate::GroupType;
use leo_asg::Expression;
use leo_asg::Span;
use snarkvm_gadgets::traits::select::CondSelectGadget;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::utilities::select::CondSelectGadget;
use snarkvm_r1cs::ConstraintSystem;
impl<'a, F: PrimeField, G: GroupType<F>> ConstrainedProgram<'a, F, G> {
/// Enforce ternary conditional expression

View File

@ -32,9 +32,9 @@ use leo_asg::ConstValue;
use leo_asg::Expression;
use leo_asg::Node;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_r1cs::ConstraintSystem;
impl<'a, F: PrimeField, G: GroupType<F>> ConstrainedProgram<'a, F, G> {
pub(crate) fn enforce_expression<CS: ConstraintSystem<F>>(

View File

@ -26,7 +26,7 @@ use leo_asg::Expression;
use leo_asg::Function;
use leo_asg::Span;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_r1cs::ConstraintSystem;
impl<'a, F: PrimeField, G: GroupType<F>> ConstrainedProgram<'a, F, G> {
/// Call a default core circuit function with arguments

View File

@ -27,7 +27,7 @@ use leo_asg::Function;
use leo_asg::Span;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_r1cs::ConstraintSystem;
impl<'a, F: PrimeField, G: GroupType<F>> ConstrainedProgram<'a, F, G> {
#[allow(clippy::too_many_arguments)]

View File

@ -21,8 +21,8 @@ use crate::value::ConstrainedValue;
use crate::GroupType;
use leo_asg::Span;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_r1cs::ConstraintSystem;
pub fn enforce_and<'a, F: PrimeField, G: GroupType<F>, CS: ConstraintSystem<F>>(

View File

@ -21,9 +21,9 @@ use crate::value::ConstrainedValue;
use crate::GroupType;
use leo_asg::Span;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_r1cs::ConstraintSystem;
pub fn enforce_or<'a, F: PrimeField, G: GroupType<F>, CS: ConstraintSystem<F>>(
cs: &mut CS,

View File

@ -22,10 +22,10 @@ use crate::value::ConstrainedValue;
use crate::GroupType;
use leo_asg::Span;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_gadgets::traits::eq::EvaluateEqGadget;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_models::gadgets::utilities::eq::EvaluateEqGadget;
use snarkvm_r1cs::ConstraintSystem;
pub fn evaluate_eq<'a, F: PrimeField, G: GroupType<F>, CS: ConstraintSystem<F>>(
cs: &mut CS,

View File

@ -23,7 +23,7 @@ use leo_asg::Span;
use leo_gadgets::bits::ComparatorGadget;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_r1cs::ConstraintSystem;
pub fn evaluate_ge<'a, F: PrimeField, G: GroupType<F>, CS: ConstraintSystem<F>>(
cs: &mut CS,

View File

@ -23,7 +23,7 @@ use leo_asg::Span;
use leo_gadgets::bits::ComparatorGadget;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_r1cs::ConstraintSystem;
pub fn evaluate_gt<'a, F: PrimeField, G: GroupType<F>, CS: ConstraintSystem<F>>(
cs: &mut CS,

View File

@ -23,7 +23,7 @@ use leo_asg::Span;
use leo_gadgets::bits::ComparatorGadget;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_r1cs::ConstraintSystem;
pub fn evaluate_le<'a, F: PrimeField, G: GroupType<F>, CS: ConstraintSystem<F>>(
cs: &mut CS,

View File

@ -24,7 +24,7 @@ use leo_asg::Expression;
use leo_asg::Span;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_r1cs::ConstraintSystem;
impl<'a, F: PrimeField, G: GroupType<F>> ConstrainedProgram<'a, F, G> {
#[allow(clippy::too_many_arguments)]

View File

@ -25,7 +25,7 @@ use crate::GroupType;
use leo_asg::Expression;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_r1cs::ConstraintSystem;
impl<'a, F: PrimeField, G: GroupType<F>> ConstrainedProgram<'a, F, G> {
/// Enforce tuple expressions

View File

@ -26,9 +26,9 @@ use leo_asg::Function;
use leo_asg::FunctionQualifier;
use std::cell::Cell;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_r1cs::ConstraintSystem;
impl<'a, F: PrimeField, G: GroupType<F>> ConstrainedProgram<'a, F, G> {
pub(crate) fn enforce_function<CS: ConstraintSystem<F>>(

View File

@ -26,7 +26,7 @@ use leo_ast::InputValue;
use leo_ast::Span;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_r1cs::ConstraintSystem;
impl<'a, F: PrimeField, G: GroupType<F>> ConstrainedProgram<'a, F, G> {
pub fn allocate_array<CS: ConstraintSystem<F>>(

View File

@ -27,7 +27,7 @@ use leo_ast::Input;
use leo_ast::Span;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_r1cs::ConstraintSystem;
pub const RECORD_VARIABLE_NAME: &str = "record";
pub const REGISTERS_VARIABLE_NAME: &str = "registers";

View File

@ -30,7 +30,7 @@ use leo_asg::Type;
use leo_ast::InputValue;
use leo_ast::Span;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_r1cs::ConstraintSystem;
impl<'a, F: PrimeField, G: GroupType<F>> ConstrainedProgram<'a, F, G> {
pub fn allocate_main_function_input<CS: ConstraintSystem<F>>(

View File

@ -26,7 +26,7 @@ use leo_ast::InputValue;
use leo_ast::Span;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_r1cs::ConstraintSystem;
impl<'a, F: PrimeField, G: GroupType<F>> ConstrainedProgram<'a, F, G> {
pub fn allocate_tuple<CS: ConstraintSystem<F>>(

View File

@ -28,7 +28,7 @@ use leo_ast::Input;
use std::cell::Cell;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_r1cs::ConstraintSystem;
impl<'a, F: PrimeField, G: GroupType<F>> ConstrainedProgram<'a, F, G> {
pub fn enforce_main_function<CS: ConstraintSystem<F>>(

View File

@ -31,7 +31,7 @@ use leo_asg::TupleAccessExpression;
use leo_asg::Variable;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_r1cs::ConstraintSystem;
impl<'a, F: PrimeField, G: GroupType<F>> ConstrainedProgram<'a, F, G> {
fn prepare_mut_access<CS: ConstraintSystem<F>>(

View File

@ -25,10 +25,10 @@ use crate::GroupType;
use leo_asg::Span;
use leo_asg::Type;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_gadgets::traits::select::CondSelectGadget;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_models::gadgets::utilities::select::CondSelectGadget;
use snarkvm_r1cs::ConstraintSystem;
impl<'a, F: PrimeField, G: GroupType<F>> ConstrainedProgram<'a, F, G> {
///

View File

@ -22,11 +22,11 @@ use crate::Integer;
use leo_asg::Function;
use leo_asg::Span;
use snarkvm_gadgets::algorithms::prf::Blake2sGadget;
use snarkvm_gadgets::traits::uint::UInt8;
use snarkvm_gadgets::traits::ToBytesGadget;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::algorithms::PRFGadget;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::utilities::uint::UInt8;
use snarkvm_models::gadgets::utilities::ToBytesGadget;
use snarkvm_r1cs::ConstraintSystem;
pub struct Blake2s;

View File

@ -23,7 +23,7 @@ use crate::GroupType;
use leo_asg::Function;
use leo_asg::Span;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_r1cs::ConstraintSystem;
pub trait CoreCircuit<'a, F: PrimeField, G: GroupType<F>>: Send + Sync {
fn call_function<CS: ConstraintSystem<F>>(

View File

@ -25,10 +25,10 @@ use leo_asg::AssignOperation;
use leo_asg::AssignStatement;
use leo_asg::Span;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_gadgets::traits::select::CondSelectGadget;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_models::gadgets::utilities::select::CondSelectGadget;
use snarkvm_r1cs::ConstraintSystem;
impl<'a, F: PrimeField, G: GroupType<F>> ConstrainedProgram<'a, F, G> {
#[allow(clippy::too_many_arguments)]

View File

@ -26,7 +26,7 @@ use leo_asg::Identifier;
use leo_asg::Span;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_r1cs::ConstraintSystem;
pub(crate) enum ResolvedAssigneeAccess {
ArrayRange(Option<usize>, Option<usize>),

View File

@ -22,9 +22,9 @@ use crate::IndicatorAndConstrainedValue;
use crate::StatementResult;
use leo_asg::BlockStatement;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_r1cs::ConstraintSystem;
impl<'a, F: PrimeField, G: GroupType<F>> ConstrainedProgram<'a, F, G> {
/// Evaluates a branch of one or more statements and returns a result in

View File

@ -24,9 +24,9 @@ use crate::IndicatorAndConstrainedValue;
use crate::StatementResult;
use leo_asg::ConditionalStatement;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_r1cs::ConstraintSystem;
fn indicator_to_string(indicator: &Boolean) -> String {
indicator

View File

@ -25,7 +25,7 @@ use leo_asg::Span;
use leo_asg::Variable;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_r1cs::ConstraintSystem;
impl<'a, F: PrimeField, G: GroupType<F>> ConstrainedProgram<'a, F, G> {
fn enforce_multiple_definition(

View File

@ -24,10 +24,10 @@ use crate::Integer;
use crate::StatementResult;
use leo_asg::IterationStatement;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_gadgets::traits::uint::UInt32;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_models::gadgets::utilities::uint::UInt32;
use snarkvm_r1cs::ConstraintSystem;
impl<'a, F: PrimeField, G: GroupType<F>> ConstrainedProgram<'a, F, G> {
#[allow(clippy::too_many_arguments)]

View File

@ -23,7 +23,7 @@ use crate::GroupType;
use leo_asg::ReturnStatement;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_r1cs::ConstraintSystem;
impl<'a, F: PrimeField, G: GroupType<F>> ConstrainedProgram<'a, F, G> {
pub fn enforce_return_statement<CS: ConstraintSystem<F>>(

View File

@ -22,9 +22,9 @@ use crate::value::ConstrainedValue;
use crate::GroupType;
use leo_asg::Statement;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_r1cs::ConstraintSystem;
pub type StatementResult<T> = Result<T, StatementError>;
pub type IndicatorAndConstrainedValue<'a, T, U> = (Boolean, ConstrainedValue<'a, T, U>);

View File

@ -22,18 +22,18 @@ use leo_ast::Span;
use snarkvm_dpc::base_dpc::instantiated::Components;
use snarkvm_errors::gadgets::SynthesisError;
use snarkvm_gadgets::traits::alloc::AllocGadget;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_gadgets::traits::eq::ConditionalEqGadget;
use snarkvm_gadgets::traits::eq::EqGadget;
use snarkvm_gadgets::traits::eq::EvaluateEqGadget;
use snarkvm_gadgets::traits::select::CondSelectGadget;
use snarkvm_gadgets::traits::uint::UInt;
use snarkvm_gadgets::traits::uint::UInt8;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::Assignment;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::utilities::alloc::AllocGadget;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_models::gadgets::utilities::eq::ConditionalEqGadget;
use snarkvm_models::gadgets::utilities::eq::EqGadget;
use snarkvm_models::gadgets::utilities::eq::EvaluateEqGadget;
use snarkvm_models::gadgets::utilities::select::CondSelectGadget;
use snarkvm_models::gadgets::utilities::uint::UInt;
use snarkvm_models::gadgets::utilities::uint::UInt8;
use snarkvm_objects::account::AccountAddress;
use snarkvm_r1cs::ConstraintSystem;
use snarkvm_utilities::ToBytes;
use std::borrow::Borrow;
use std::str::FromStr;
@ -207,7 +207,11 @@ impl<F: PrimeField> ConditionalEqGadget<F> for Address {
}
fn cond_select_helper(first: &Address, second: &Address, cond: bool) -> Address {
if cond { first.clone() } else { second.clone() }
if cond {
first.clone()
} else {
second.clone()
}
}
impl<F: PrimeField> CondSelectGadget<F> for Address {

View File

@ -23,9 +23,9 @@ use leo_ast::InputValue;
use leo_ast::Span;
use snarkvm_errors::gadgets::SynthesisError;
use snarkvm_gadgets::traits::alloc::AllocGadget;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::utilities::alloc::AllocGadget;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_r1cs::ConstraintSystem;
pub(crate) fn allocate_bool<F: PrimeField, CS: ConstraintSystem<F>>(

View File

@ -21,20 +21,20 @@ use crate::number_string_typing;
use leo_ast::Span;
use snarkvm_errors::gadgets::SynthesisError;
use snarkvm_gadgets::traits::alloc::AllocGadget;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_gadgets::traits::eq::ConditionalEqGadget;
use snarkvm_gadgets::traits::eq::EqGadget;
use snarkvm_gadgets::traits::eq::EvaluateEqGadget;
use snarkvm_gadgets::traits::select::CondSelectGadget;
use snarkvm_gadgets::traits::uint::UInt8;
use snarkvm_gadgets::traits::ToBitsGadget;
use snarkvm_gadgets::traits::ToBytesGadget;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::curves::AllocatedFp;
use snarkvm_models::gadgets::curves::FieldGadget;
use snarkvm_models::gadgets::curves::FpGadget;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::utilities::alloc::AllocGadget;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_models::gadgets::utilities::eq::ConditionalEqGadget;
use snarkvm_models::gadgets::utilities::eq::EqGadget;
use snarkvm_models::gadgets::utilities::eq::EvaluateEqGadget;
use snarkvm_models::gadgets::utilities::select::CondSelectGadget;
use snarkvm_models::gadgets::utilities::uint::UInt8;
use snarkvm_models::gadgets::utilities::ToBitsGadget;
use snarkvm_models::gadgets::utilities::ToBytesGadget;
use snarkvm_r1cs::ConstraintSystem;
use std::borrow::Borrow;
use std::cmp::Ordering;
@ -293,7 +293,11 @@ impl<F: PrimeField> CondSelectGadget<F> for FieldType<F> {
second: &Self,
) -> Result<Self, SynthesisError> {
if let Boolean::Constant(cond) = *cond {
if cond { Ok(first.clone()) } else { Ok(second.clone()) }
if cond {
Ok(first.clone())
} else {
Ok(second.clone())
}
} else {
let first_gadget = first.allocated(&mut cs)?;
let second_gadget = second.allocated(&mut cs)?;

View File

@ -25,9 +25,9 @@ use leo_ast::InputValue;
use leo_ast::Span;
use snarkvm_errors::gadgets::SynthesisError;
use snarkvm_gadgets::traits::alloc::AllocGadget;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::utilities::alloc::AllocGadget;
use snarkvm_r1cs::ConstraintSystem;
pub(crate) fn allocate_field<F: PrimeField, CS: ConstraintSystem<F>>(
cs: &mut CS,

View File

@ -21,15 +21,15 @@ use leo_asg::GroupValue;
use leo_asg::Span;
use snarkvm_fields::Field;
use snarkvm_gadgets::traits::alloc::AllocGadget;
use snarkvm_gadgets::traits::eq::ConditionalEqGadget;
use snarkvm_gadgets::traits::eq::EqGadget;
use snarkvm_gadgets::traits::eq::EvaluateEqGadget;
use snarkvm_gadgets::traits::select::CondSelectGadget;
use snarkvm_gadgets::traits::ToBitsGadget;
use snarkvm_gadgets::traits::ToBytesGadget;
use snarkvm_models::curves::One;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::utilities::alloc::AllocGadget;
use snarkvm_models::gadgets::utilities::eq::ConditionalEqGadget;
use snarkvm_models::gadgets::utilities::eq::EqGadget;
use snarkvm_models::gadgets::utilities::eq::EvaluateEqGadget;
use snarkvm_models::gadgets::utilities::select::CondSelectGadget;
use snarkvm_models::gadgets::utilities::ToBitsGadget;
use snarkvm_models::gadgets::utilities::ToBytesGadget;
use snarkvm_r1cs::ConstraintSystem;
use std::fmt::Debug;
use std::fmt::Display;

View File

@ -27,6 +27,15 @@ use snarkvm_curves::edwards_bls12::Fq;
use snarkvm_curves::templates::twisted_edwards_extended::GroupAffine;
use snarkvm_errors::gadgets::SynthesisError;
use snarkvm_gadgets::curves::edwards_bls12::EdwardsBlsGadget;
use snarkvm_gadgets::traits::alloc::AllocGadget;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_gadgets::traits::eq::ConditionalEqGadget;
use snarkvm_gadgets::traits::eq::EqGadget;
use snarkvm_gadgets::traits::eq::EvaluateEqGadget;
use snarkvm_gadgets::traits::select::CondSelectGadget;
use snarkvm_gadgets::traits::uint::UInt8;
use snarkvm_gadgets::traits::ToBitsGadget;
use snarkvm_gadgets::traits::ToBytesGadget;
use snarkvm_models::curves::AffineCurve;
use snarkvm_models::curves::Fp256;
use snarkvm_models::curves::One;
@ -36,16 +45,7 @@ use snarkvm_models::gadgets::curves::AllocatedFp;
use snarkvm_models::gadgets::curves::FieldGadget;
use snarkvm_models::gadgets::curves::FpGadget;
use snarkvm_models::gadgets::curves::GroupGadget;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::utilities::alloc::AllocGadget;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_models::gadgets::utilities::eq::ConditionalEqGadget;
use snarkvm_models::gadgets::utilities::eq::EqGadget;
use snarkvm_models::gadgets::utilities::eq::EvaluateEqGadget;
use snarkvm_models::gadgets::utilities::select::CondSelectGadget;
use snarkvm_models::gadgets::utilities::uint::UInt8;
use snarkvm_models::gadgets::utilities::ToBitsGadget;
use snarkvm_models::gadgets::utilities::ToBytesGadget;
use snarkvm_r1cs::ConstraintSystem;
use std::borrow::Borrow;
use std::ops::Mul;
use std::ops::Neg;
@ -488,7 +488,11 @@ impl CondSelectGadget<Fq> for EdwardsGroupType {
second: &Self,
) -> Result<Self, SynthesisError> {
if let Boolean::Constant(cond) = *cond {
if cond { Ok(first.clone()) } else { Ok(second.clone()) }
if cond {
Ok(first.clone())
} else {
Ok(second.clone())
}
} else {
let first_gadget = first.allocated(cs.ns(|| "first"))?;
let second_gadget = second.allocated(cs.ns(|| "second"))?;

View File

@ -28,15 +28,15 @@ use leo_gadgets::signed_integer::*;
use snarkvm_errors::gadgets::SynthesisError;
use snarkvm_fields::Field;
use snarkvm_gadgets::traits::alloc::AllocGadget;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_gadgets::traits::eq::ConditionalEqGadget;
use snarkvm_gadgets::traits::eq::EqGadget;
use snarkvm_gadgets::traits::eq::EvaluateEqGadget;
use snarkvm_gadgets::traits::select::CondSelectGadget;
use snarkvm_gadgets::traits::uint::*;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::utilities::alloc::AllocGadget;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_models::gadgets::utilities::eq::ConditionalEqGadget;
use snarkvm_models::gadgets::utilities::eq::EqGadget;
use snarkvm_models::gadgets::utilities::eq::EvaluateEqGadget;
use snarkvm_models::gadgets::utilities::select::CondSelectGadget;
use snarkvm_models::gadgets::utilities::uint::*;
use snarkvm_r1cs::ConstraintSystem;
use std::fmt;
/// An integer type enum wrapping the integer value.

View File

@ -16,12 +16,12 @@
use leo_gadgets::signed_integer::*;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_models::gadgets::utilities::uint::UInt128;
use snarkvm_models::gadgets::utilities::uint::UInt16;
use snarkvm_models::gadgets::utilities::uint::UInt32;
use snarkvm_models::gadgets::utilities::uint::UInt64;
use snarkvm_models::gadgets::utilities::uint::UInt8;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_gadgets::traits::uint::UInt128;
use snarkvm_gadgets::traits::uint::UInt16;
use snarkvm_gadgets::traits::uint::UInt32;
use snarkvm_gadgets::traits::uint::UInt64;
use snarkvm_gadgets::traits::uint::UInt8;
use std::fmt::Debug;
pub trait IntegerTrait: Sized + Clone + Debug {

View File

@ -27,11 +27,11 @@ use leo_asg::Span;
use leo_asg::Type;
use snarkvm_errors::gadgets::SynthesisError;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_gadgets::traits::eq::ConditionalEqGadget;
use snarkvm_gadgets::traits::select::CondSelectGadget;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_models::gadgets::utilities::eq::ConditionalEqGadget;
use snarkvm_models::gadgets::utilities::select::CondSelectGadget;
use snarkvm_r1cs::ConstraintSystem;
use std::fmt;
#[derive(Clone, PartialEq, Eq)]

View File

@ -21,10 +21,10 @@ use leo_gadgets::Int32;
use leo_gadgets::Int64;
use leo_gadgets::Int8;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_gadgets::traits::alloc::AllocGadget;
use snarkvm_models::gadgets::r1cs::Fr;
use snarkvm_models::gadgets::r1cs::TestConstraintSystem;
use snarkvm_models::gadgets::utilities::alloc::AllocGadget;
use snarkvm_r1cs::ConstraintSystem;
use rand::Rng;
use rand::SeedableRng;

View File

@ -16,14 +16,14 @@
use snarkvm_errors::gadgets::SynthesisError;
use snarkvm_fields::Field;
use snarkvm_gadgets::traits::uint::UInt;
use snarkvm_gadgets::traits::uint::UInt128;
use snarkvm_gadgets::traits::uint::UInt16;
use snarkvm_gadgets::traits::uint::UInt32;
use snarkvm_gadgets::traits::uint::UInt64;
use snarkvm_gadgets::traits::uint::UInt8;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::utilities::uint::UInt;
use snarkvm_models::gadgets::utilities::uint::UInt128;
use snarkvm_models::gadgets::utilities::uint::UInt16;
use snarkvm_models::gadgets::utilities::uint::UInt32;
use snarkvm_models::gadgets::utilities::uint::UInt64;
use snarkvm_models::gadgets::utilities::uint::UInt8;
use snarkvm_r1cs::ConstraintSystem;
/// Returns addition of `self` + `other` in the constraint system.
pub trait Add<F: Field, Rhs = Self>

View File

@ -15,7 +15,7 @@
// along with the Leo library. If not, see <https://www.gnu.org/licenses/>.
use snarkvm_fields::Field;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_r1cs::ConstraintSystem;
/// Returns division of `self` / `other` in the constraint system.
pub trait Div<F: Field, Rhs = Self>

View File

@ -15,7 +15,7 @@
// along with the Leo library. If not, see <https://www.gnu.org/licenses/>.
use snarkvm_fields::Field;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_r1cs::ConstraintSystem;
/// Returns multiplication of `self` * `other` in the constraint system.
pub trait Mul<F: Field, Rhs = Self>

View File

@ -18,8 +18,8 @@ use crate::bits::RippleCarryAdder;
use snarkvm_errors::gadgets::SynthesisError;
use snarkvm_fields::Field;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_r1cs::ConstraintSystem;
use std::iter;

View File

@ -15,7 +15,7 @@
// along with the Leo library. If not, see <https://www.gnu.org/licenses/>.
use snarkvm_fields::Field;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_r1cs::ConstraintSystem;
/// Returns exponentiation of `self` ** `other` in the constraint system.
pub trait Pow<F: Field, Rhs = Self>

View File

@ -16,8 +16,8 @@
use snarkvm_errors::gadgets::SynthesisError;
use snarkvm_fields::Field;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_r1cs::ConstraintSystem;
/// Single bit binary adder with carry bit
/// https://en.wikipedia.org/wiki/Adder_(electronics)#Full_adder

View File

@ -16,14 +16,14 @@
use snarkvm_errors::gadgets::SynthesisError;
use snarkvm_fields::Field;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_gadgets::traits::select::CondSelectGadget;
use snarkvm_gadgets::traits::uint::UInt128;
use snarkvm_gadgets::traits::uint::UInt16;
use snarkvm_gadgets::traits::uint::UInt32;
use snarkvm_gadgets::traits::uint::UInt64;
use snarkvm_gadgets::traits::uint::UInt8;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_models::gadgets::utilities::select::CondSelectGadget;
use snarkvm_models::gadgets::utilities::uint::UInt128;
use snarkvm_models::gadgets::utilities::uint::UInt16;
use snarkvm_models::gadgets::utilities::uint::UInt32;
use snarkvm_models::gadgets::utilities::uint::UInt64;
use snarkvm_models::gadgets::utilities::uint::UInt8;
use snarkvm_r1cs::ConstraintSystem;
pub trait EvaluateLtGadget<F: Field> {

View File

@ -19,9 +19,9 @@ use crate::signed_integer::*;
use snarkvm_errors::gadgets::SynthesisError;
use snarkvm_fields::Field;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_r1cs::ConstraintSystem;
/// Returns the bitwise sum of a n-bit number with carry bit
pub trait RippleCarryAdder<F: Field, Rhs = Self>

View File

@ -14,7 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with the Leo library. If not, see <https://www.gnu.org/licenses/>.
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_gadgets::traits::boolean::Boolean;
use std::iter;

View File

@ -24,14 +24,14 @@ use crate::Int32;
use crate::Int64;
use crate::Int8;
use snarkvm_gadgets::traits::alloc::AllocGadget;
use snarkvm_gadgets::traits::boolean::AllocatedBit;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_models::curves::fp_parameters::FpParameters;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::Assignment;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::r1cs::LinearCombination;
use snarkvm_models::gadgets::utilities::alloc::AllocGadget;
use snarkvm_models::gadgets::utilities::boolean::AllocatedBit;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_r1cs::ConstraintSystem;
macro_rules! add_int_impl {
($($gadget: ident)*) => ($(

View File

@ -26,13 +26,13 @@ use crate::Int16;
use crate::Int32;
use crate::Int64;
use crate::Int8;
use snarkvm_gadgets::traits::alloc::AllocGadget;
use snarkvm_gadgets::traits::boolean::AllocatedBit;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_gadgets::traits::eq::EvaluateEqGadget;
use snarkvm_gadgets::traits::select::CondSelectGadget;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::utilities::alloc::AllocGadget;
use snarkvm_models::gadgets::utilities::boolean::AllocatedBit;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_models::gadgets::utilities::eq::EvaluateEqGadget;
use snarkvm_models::gadgets::utilities::select::CondSelectGadget;
use snarkvm_r1cs::ConstraintSystem;
macro_rules! div_int_impl {
($($gadget:ident),*) => ($(

View File

@ -24,15 +24,15 @@ use crate::Int16;
use crate::Int32;
use crate::Int64;
use crate::Int8;
use snarkvm_gadgets::traits::alloc::AllocGadget;
use snarkvm_gadgets::traits::boolean::AllocatedBit;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_gadgets::traits::select::CondSelectGadget;
use snarkvm_models::curves::FpParameters;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::Assignment;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::r1cs::LinearCombination;
use snarkvm_models::gadgets::utilities::alloc::AllocGadget;
use snarkvm_models::gadgets::utilities::boolean::AllocatedBit;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_models::gadgets::utilities::select::CondSelectGadget;
use snarkvm_r1cs::ConstraintSystem;
use std::iter;

View File

@ -19,7 +19,7 @@ use crate::errors::SignedIntegerError;
use crate::signed_integer::*;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_r1cs::ConstraintSystem;
macro_rules! neg_int_impl {
($($gadget: ident)*) => ($(

View File

@ -24,11 +24,11 @@ use crate::Int32;
use crate::Int64;
use crate::Int8;
use snarkvm_gadgets::traits::alloc::AllocGadget;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_gadgets::traits::select::CondSelectGadget;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::utilities::alloc::AllocGadget;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_models::gadgets::utilities::select::CondSelectGadget;
use snarkvm_r1cs::ConstraintSystem;
macro_rules! pow_int_impl {
($($gadget:ty)*) => ($(

View File

@ -24,7 +24,7 @@ use crate::Int32;
use crate::Int64;
use crate::Int8;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_r1cs::ConstraintSystem;
macro_rules! sub_int_impl {
($($gadget: ident)*) => ($(

View File

@ -14,7 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with the Leo library. If not, see <https://www.gnu.org/licenses/>.
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_gadgets::traits::boolean::Boolean;
use std::fmt::Debug;

View File

@ -23,10 +23,10 @@ use crate::Int64;
use crate::Int8;
use snarkvm_errors::gadgets::SynthesisError;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_gadgets::traits::select::CondSelectGadget;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_models::gadgets::utilities::select::CondSelectGadget;
use snarkvm_r1cs::ConstraintSystem;
use std::cmp::Ordering;
macro_rules! cmp_gadget_impl {

View File

@ -22,10 +22,10 @@ use crate::Int64;
use crate::Int8;
use snarkvm_errors::gadgets::SynthesisError;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_gadgets::traits::eq::EvaluateEqGadget;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_models::gadgets::utilities::eq::EvaluateEqGadget;
use snarkvm_r1cs::ConstraintSystem;
macro_rules! eq_gadget_impl {
($($gadget: ident)*) => ($(

View File

@ -25,10 +25,10 @@ use core::borrow::Borrow;
use core::iter;
use snarkvm_errors::gadgets::SynthesisError;
use snarkvm_fields::Field;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::utilities::alloc::AllocGadget;
use snarkvm_models::gadgets::utilities::boolean::AllocatedBit;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_gadgets::traits::alloc::AllocGadget;
use snarkvm_gadgets::traits::boolean::AllocatedBit;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_r1cs::ConstraintSystem;
fn create_value<T: Borrow<bool>, I: IntoIterator<Item = Option<T>>, F: Field, CS: ConstraintSystem<F>>(
cs: &mut CS,

View File

@ -17,10 +17,10 @@
use crate::signed_integer::*;
use snarkvm_errors::gadgets::SynthesisError;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_gadgets::traits::eq::ConditionalEqGadget;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_models::gadgets::utilities::eq::ConditionalEqGadget;
use snarkvm_r1cs::ConstraintSystem;
macro_rules! cond_eq_int_impl {
($($gadget: ident),*) => ($(

View File

@ -17,13 +17,13 @@
use crate::signed_integer::*;
use snarkvm_errors::gadgets::SynthesisError;
use snarkvm_gadgets::traits::alloc::AllocGadget;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_gadgets::traits::eq::EqGadget;
use snarkvm_gadgets::traits::select::CondSelectGadget;
use snarkvm_models::curves::PrimeField;
use snarkvm_models::gadgets::r1cs::Assignment;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::utilities::alloc::AllocGadget;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_models::gadgets::utilities::eq::EqGadget;
use snarkvm_models::gadgets::utilities::select::CondSelectGadget;
use snarkvm_r1cs::ConstraintSystem;
macro_rules! select_int_impl {
($($gadget: ident)*) => ($(

View File

@ -17,13 +17,13 @@
use leo_gadgets::arithmetic::*;
use leo_gadgets::Int128;
use snarkvm_gadgets::traits::alloc::AllocGadget;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_models::curves::One;
use snarkvm_models::curves::Zero;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::r1cs::Fr;
use snarkvm_models::gadgets::r1cs::TestConstraintSystem;
use snarkvm_models::gadgets::utilities::alloc::AllocGadget;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_r1cs::ConstraintSystem;
use rand::Rng;
use rand_core::SeedableRng;

View File

@ -17,13 +17,13 @@
use leo_gadgets::arithmetic::*;
use leo_gadgets::Int16;
use snarkvm_gadgets::traits::alloc::AllocGadget;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_models::curves::One;
use snarkvm_models::curves::Zero;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::r1cs::Fr;
use snarkvm_models::gadgets::r1cs::TestConstraintSystem;
use snarkvm_models::gadgets::utilities::alloc::AllocGadget;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_r1cs::ConstraintSystem;
use rand::Rng;
use rand_core::SeedableRng;

View File

@ -17,13 +17,13 @@
use leo_gadgets::arithmetic::*;
use leo_gadgets::Int32;
use snarkvm_gadgets::traits::alloc::AllocGadget;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_models::curves::One;
use snarkvm_models::curves::Zero;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::r1cs::Fr;
use snarkvm_models::gadgets::r1cs::TestConstraintSystem;
use snarkvm_models::gadgets::utilities::alloc::AllocGadget;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_r1cs::ConstraintSystem;
use rand::Rng;
use rand_core::SeedableRng;

View File

@ -17,12 +17,12 @@
use leo_gadgets::arithmetic::*;
use leo_gadgets::Int64;
use snarkvm_gadgets::traits::alloc::AllocGadget;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_models::curves::One;
use snarkvm_models::curves::Zero;
use snarkvm_models::gadgets::r1cs::Fr;
use snarkvm_models::gadgets::r1cs::TestConstraintSystem;
use snarkvm_models::gadgets::utilities::alloc::AllocGadget;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_r1cs::ConstraintSystem;
use rand::Rng;

View File

@ -17,13 +17,13 @@
use leo_gadgets::arithmetic::*;
use leo_gadgets::Int8;
use snarkvm_gadgets::traits::alloc::AllocGadget;
use snarkvm_gadgets::traits::boolean::Boolean;
use snarkvm_models::curves::One;
use snarkvm_models::curves::Zero;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::r1cs::Fr;
use snarkvm_models::gadgets::r1cs::TestConstraintSystem;
use snarkvm_models::gadgets::utilities::alloc::AllocGadget;
use snarkvm_models::gadgets::utilities::boolean::Boolean;
use snarkvm_r1cs::ConstraintSystem;
use rand::Rng;
use rand_core::SeedableRng;

View File

@ -35,7 +35,7 @@ use leo_synthesizer::SerializedCircuit;
use anyhow::Result;
use snarkvm_curves::bls12_377::Bls12_377;
use snarkvm_curves::edwards_bls12::Fq;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_r1cs::ConstraintSystem;
use structopt::StructOpt;
use tracing::span::Span;

View File

@ -16,12 +16,12 @@
use snarkvm_errors::gadgets::SynthesisError;
use snarkvm_fields::Field;
use snarkvm_gadgets::traits::OptionalVec;
use snarkvm_models::curves::PairingEngine;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::r1cs::Index;
use snarkvm_models::gadgets::r1cs::LinearCombination;
use snarkvm_models::gadgets::r1cs::Variable;
use snarkvm_models::gadgets::utilities::OptionalVec;
use snarkvm_r1cs::ConstraintSystem;
#[derive(Default)]
pub struct Namespace {

View File

@ -20,10 +20,10 @@ use serde::Deserialize;
use serde::Serialize;
use snarkvm_curves::bls12_377::Bls12_377;
use snarkvm_errors::curves::FieldError;
use snarkvm_gadgets::traits::OptionalVec;
use snarkvm_models::curves::PairingEngine;
use snarkvm_models::gadgets::r1cs::ConstraintSystem;
use snarkvm_models::gadgets::r1cs::Index;
use snarkvm_models::gadgets::utilities::OptionalVec;
use snarkvm_r1cs::ConstraintSystem;
use crate::CircuitSynthesizer;
use crate::SerializedField;