2#include "barretenberg/common/slab_allocator.hpp"
3#include "barretenberg/dsl/types.hpp"
4#include "barretenberg/serialize/msgpack.hpp"
5#include "blake2s_constraint.hpp"
6#include "block_constraint.hpp"
7#include "ecdsa_secp256k1.hpp"
8#include "ecdsa_secp256r1.hpp"
9#include "fixed_base_scalar_mul.hpp"
10#include "hash_to_field.hpp"
11#include "keccak_constraint.hpp"
12#include "logic_constraint.hpp"
13#include "pedersen.hpp"
14#include "range_constraint.hpp"
15#include "recursion_constraint.hpp"
16#include "schnorr_verify.hpp"
17#include "sha256_constraint.hpp"
19namespace acir_format {
25 std::vector<uint32_t> public_inputs;
27 std::vector<LogicConstraint> logic_constraints;
28 std::vector<RangeConstraint> range_constraints;
29 std::vector<Sha256Constraint> sha256_constraints;
30 std::vector<SchnorrConstraint> schnorr_constraints;
31 std::vector<EcdsaSecp256k1Constraint> ecdsa_k1_constraints;
32 std::vector<EcdsaSecp256r1Constraint> ecdsa_r1_constraints;
33 std::vector<Blake2sConstraint> blake2s_constraints;
34 std::vector<KeccakConstraint> keccak_constraints;
35 std::vector<KeccakVarConstraint> keccak_var_constraints;
36 std::vector<PedersenConstraint> pedersen_constraints;
37 std::vector<PedersenHashConstraint> pedersen_hash_constraints;
38 std::vector<HashToFieldConstraint> hash_to_field_constraints;
39 std::vector<FixedBaseScalarMul> fixed_base_scalar_mul_constraints;
40 std::vector<RecursionConstraint> recursion_constraints;
45 std::vector<poly_triple_<curve::BN254::ScalarField>,
48 std::vector<BlockConstraint> block_constraints;
51 MSGPACK_FIELDS(varnum,
61 keccak_var_constraints,
63 pedersen_hash_constraints,
64 hash_to_field_constraints,
65 fixed_base_scalar_mul_constraints,
66 recursion_constraints,
73using WitnessVector = std::vector<fr, ContainerSlabAllocator<fr>>;
75template <
typename Builder>
void read_witness(
Builder& builder, std::vector<barretenberg::fr>
const& witness);
77template <
typename Builder>
void create_circuit(
Builder& builder,
const acir_format& constraint_system);
79template <
typename Builder = UltraCircuitBuilder>
83 WitnessVector
const& witness,
84 size_t size_hint = 0);
86template <
typename Builder>
87void create_circuit_with_witness(
Builder& builder,
const acir_format& constraint_system, WitnessVector
const& witness);
89template <
typename Builder>
void apply_wire_index_offset(
Builder& builder);
Definition: slab_allocator.hpp:47
Definition: ultra_circuit_builder.hpp:31