Skip to content

Commit

Permalink
feat(api): external cpp header for circuits (#489)
Browse files Browse the repository at this point in the history
* missing header includes

* comments in api header with issues/todos
  • Loading branch information
dbanks12 authored May 31, 2023
1 parent 17e0201 commit fbbb342
Show file tree
Hide file tree
Showing 5 changed files with 78 additions and 1 deletion.
2 changes: 1 addition & 1 deletion cpp/.aztec-packages-commit
Original file line number Diff line number Diff line change
@@ -1 +1 @@
84754bbb47e32c722a9c13de17c328ae15e58f01
a952e233e2a436e37f295d06d1ce344aafba90d0
1 change: 1 addition & 0 deletions cpp/src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,7 @@ else()
if(INSTALL_BARRETENBERG)
# The `install` function takes targets to install in different destinations on the system.
install(
# TODO(dbanks12): should only need to install API headers
TARGETS barretenberg barretenberg_headers
# We also give it an optional export name in case something wants to target the install.
EXPORT barretenbergTargets
Expand Down
74 changes: 74 additions & 0 deletions cpp/src/barretenberg/barretenberg.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
#pragma once

// External Barretenberg C++ API
#include "common/container.hpp"
#include "common/map.hpp"
#include "common/serialize.hpp"
#include "common/streams.hpp"
#include "common/throw_or_abort.hpp"
#include "crypto/blake2s/blake2s.hpp"
#include "crypto/blake3s/blake3s.hpp"
#include "crypto/ecdsa/ecdsa.hpp"
#include "crypto/generators/generator_data.hpp"
#include "crypto/keccak/keccak.hpp"
#include "crypto/pedersen_commitment/pedersen.hpp"
#include "crypto/pedersen_hash/pedersen.hpp"
#include "crypto/schnorr/schnorr.hpp"
#include "crypto/sha256/sha256.hpp"
#include "ecc/curves/bn254/fq.hpp"
#include "ecc/curves/bn254/fr.hpp"
#include "ecc/curves/bn254/g1.hpp"
#include "ecc/curves/grumpkin/grumpkin.hpp"
#include "numeric/random/engine.hpp"
#include "numeric/uint256/uint256.hpp"
#include "plonk/composer/turbo_plonk_composer.hpp"
#include "plonk/composer/ultra_plonk_composer.hpp"
#include "plonk/proof_system/types/proof.hpp"
#include "plonk/proof_system/verification_key/verification_key.hpp"
#include "proof_system/types/composer_type.hpp"
// TODO(https://github.com/AztecProtocol/barretenberg/issues/491):
// consider helper header(s) for serialization and other non-stdlib includes
// - possibly: common, serialize, srs, transcript
#include "serialize/cbind.hpp"
#include "serialize/cbind_fwd.hpp"
#include "serialize/msgpack.hpp"
#include "serialize/test_helper.hpp"
#include "srs/reference_string/env_reference_string.hpp"
#include "srs/reference_string/mem_reference_string.hpp"
#include "stdlib/commitment/pedersen/pedersen.hpp"
#include "stdlib/commitment/pedersen/pedersen_plookup.hpp"
#include "stdlib/encryption/ecdsa/ecdsa.hpp"
#include "stdlib/encryption/schnorr/schnorr.hpp"
#include "stdlib/hash/blake2s/blake2s.hpp"
#include "stdlib/hash/blake3s/blake3s.hpp"
#include "stdlib/hash/pedersen/pedersen.hpp"
#include "stdlib/merkle_tree/hash.hpp"
#include "stdlib/merkle_tree/membership.hpp"
#include "stdlib/merkle_tree/memory_store.hpp"
#include "stdlib/merkle_tree/memory_tree.hpp"
#include "stdlib/merkle_tree/merkle_tree.hpp"
// TODO(https://github.com/AztecProtocol/aztec-packages/issues/728):
// Consider moving nullifier tree logic out of barretenberg into aztec repo
#include "stdlib/merkle_tree/nullifier_tree/nullifier_leaf.hpp"
#include "stdlib/merkle_tree/nullifier_tree/nullifier_memory_tree.hpp"
#include "stdlib/merkle_tree/nullifier_tree/nullifier_tree.hpp"
#include "stdlib/primitives/address/address.hpp"
#include "stdlib/primitives/bigfield/bigfield.hpp"
#include "stdlib/primitives/biggroup/biggroup.hpp"
#include "stdlib/primitives/bit_array/bit_array.hpp"
#include "stdlib/primitives/bool/bool.hpp"
#include "stdlib/primitives/byte_array/byte_array.hpp"
#include "stdlib/primitives/curves/bn254.hpp"
#include "stdlib/primitives/field/array.hpp"
#include "stdlib/primitives/field/field.hpp"
#include "stdlib/primitives/group/group.hpp"
#include "stdlib/primitives/packed_byte_array/packed_byte_array.hpp"
#include "stdlib/primitives/point/point.hpp"
#include "stdlib/primitives/uint/uint.hpp"
#include "stdlib/primitives/witness/witness.hpp"
#include "stdlib/recursion/aggregation_state/aggregation_state.hpp"
#include "stdlib/recursion/aggregation_state/native_aggregation_state.hpp"
#include "stdlib/recursion/verification_key/verification_key.hpp"
#include "stdlib/recursion/verifier/program_settings.hpp"
#include "stdlib/recursion/verifier/verifier.hpp"
#include "transcript/manifest.hpp"
1 change: 1 addition & 0 deletions cpp/src/barretenberg/common/container.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
#include <stddef.h>
#include <vector>
#include <string>
#include <algorithm>

template <typename C> C slice(C const& container, size_t start)
{
Expand Down
1 change: 1 addition & 0 deletions cpp/src/barretenberg/common/map.hpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#pragma once
#include <algorithm>
#include <array>
#include <type_traits>

/*
Expand Down

0 comments on commit fbbb342

Please sign in to comment.