26 bool has_valid_witness_assignments)
31 init.reserve(constraint.
init.size());
32 for (
const auto idx : constraint.
init) {
36 switch (constraint.
type) {
48 "UltraCircuitBuilder (standalone Noir application) does not support CallData/ReturnData "
49 "block constraints. Use MegaCircuitBuilder (Aztec app) or fall back to RAM and ROM operations.");
64 bool has_valid_witness_assignments)
69 init.reserve(constraint.
init.size());
70 for (
const auto idx : constraint.
init) {
74 switch (constraint.
type) {
93template <
typename Builder>
96 bool has_valid_witness_assignments,
103 for (
const auto& op : constraint.
trace) {
109 if (!has_valid_witness_assignments && !
index.is_constant()) {
113 switch (op.access_type) {
124template <
typename Builder>
127 bool has_valid_witness_assignments,
134 for (
const auto& op : constraint.
trace) {
140 if (!has_valid_witness_assignments && !
index.is_constant()) {
144 switch (op.access_type) {
158template <
typename Builder>
161 bool has_valid_witness_assignments,
170 auto process_calldata = [&](
auto& calldata_array) {
171 calldata_array.set_context(&
builder);
172 calldata_array.set_values(
init);
174 for (
const auto& op : constraint.
trace) {
180 if (!has_valid_witness_assignments && !
index.is_constant()) {
184 switch (op.access_type) {
209template <
typename Builder>
217 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