28 init.reserve(constraint.
init.size());
29 for (
const auto idx : constraint.
init) {
33 switch (constraint.
type) {
45 "UltraCircuitBuilder (standalone Noir application) does not support CallData/ReturnData "
46 "block constraints. Use MegaCircuitBuilder (Aztec app) or fall back to RAM and ROM operations.");
63 init.reserve(constraint.
init.size());
64 for (
const auto idx : constraint.
init) {
68 switch (constraint.
type) {
87template <
typename Builder>
96 for (
const auto& op : constraint.
trace) {
100 switch (op.access_type) {
111template <
typename Builder>
120 for (
const auto& op : constraint.
trace) {
124 switch (op.access_type) {
138template <
typename Builder>
149 auto process_calldata = [&](
auto& calldata_array) {
150 calldata_array.set_context(&
builder);
151 calldata_array.set_values(
init);
153 for (
const auto& op : constraint.
trace) {
157 switch (op.access_type) {
182template <
typename Builder>
190 BB_ASSERT_EQ(constraint.
trace.size(), 0U,
"Return data opcodes should have empty traces");
#define BB_ASSERT_EQ(actual, expected,...)
void set_values(const std::vector< field_pt > &entries_in)
Set the entries of the bus vector from possibly unnormalized or constant inputs.
void set_context(Builder *builder_context)
bus_vector secondary_calldata
static field_t from_witness_index(Builder *ctx, uint32_t witness_index)
field_pt read(const field_pt &index) const
Read a field element from the RAM table at an index value.
void write(const field_pt &index, const field_pt &value)
Write a field element from the RAM table at an index value.
Entry point for Barretenberg command-line interface.
void assert_failure(std::string const &err)
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept