12using namespace numeric;
13#ifndef AZTEC_NO_ORIGIN_TAGS
31 if (*challenges_a == 0 && *challenges_b == 0 && *submitted_a != 0 && *submitted_b != 0 &&
32 *submitted_a != *submitted_b) {
33 throw_or_abort(
"Submitted values from 2 different rounds are mixing without challenges");
46 throw_or_abort(
"Touched an element that should not have been touched");
61 throw_or_abort(
"A free witness element should not interact with an element that has an origin");
70 throw_or_abort(
"A free witness element should not interact with an element that has an origin");
78#ifndef DISABLE_DIFFERENT_TRANSCRIPT_CHECKS
80 throw_or_abort(
"Tags from different transcripts were involved in the same computation");
83#ifndef DISABLE_CHILD_TAG_CHECKS
Entry point for Barretenberg command-line interface.
void check_child_tags(const uint256_t &tag_a, const uint256_t &tag_b)
Detect if two elements from the same transcript are performing a suspicious interaction.
This file contains part of the logic for the Origin Tag mechanism that tracks the use of in-circuit p...
unsigned __int128 uint128_t
numeric::uint256_t child_tag
static constexpr size_t CONSTANT
bool is_free_witness() const
bool operator==(const OriginTag &other) const
void throw_or_abort(std::string const &err)