23 std::vector<AztecAddress>& contract_addresses,
38 std::vector<AztecAddress>& contract_addresses,
41 if (!teardown_call.has_value()) {
50 fuzz_info(
"Discarding teardown enqueued call");
69 fuzz_info(
"Mutating setup enqueued calls: ",
tx.setup_enqueued_calls.size());
70 mutate_enqueued_calls(
tx.setup_enqueued_calls, contract_addresses, rng);
74 fuzz_info(
"Mutating app logic enqueued calls: ",
tx.app_logic_enqueued_calls.size());
75 mutate_enqueued_calls(
tx.app_logic_enqueued_calls, contract_addresses, rng);
79 fuzz_info(
"Mutating teardown enqueued call");
80 mutate_teardown(
tx.teardown_enqueued_call, contract_addresses, rng);
84 fuzz_info(
"Mutating non-revertible accumulated data");
89 fuzz_info(
"Mutating revertible accumulated data");
97 tx.effective_gas_fees.fee_per_da_gas =
98 std::min(
tx.effective_gas_fees.fee_per_da_gas,
tx.gas_settings.max_fees_per_gas.fee_per_da_gas);
99 tx.effective_gas_fees.fee_per_l2_gas =
100 std::min(
tx.effective_gas_fees.fee_per_l2_gas,
tx.gas_settings.max_fees_per_gas.fee_per_l2_gas);
104 fuzz_info(
"Mutating effective gas fees");
107 tx.effective_gas_fees.fee_per_da_gas =
108 std::min(
tx.effective_gas_fees.fee_per_da_gas,
tx.gas_settings.max_fees_per_gas.fee_per_da_gas);
109 tx.effective_gas_fees.fee_per_l2_gas =
110 std::min(
tx.effective_gas_fees.fee_per_l2_gas,
tx.gas_settings.max_fees_per_gas.fee_per_l2_gas);
114 fuzz_info(
"Mutating gas used by private");
115 mutate_gas(
tx.gas_used_by_private, rng,
tx.gas_settings.gas_limits);
126 std::vector<FuzzerData>& enqueued_calls,
136 if (enqueued_calls.size() < max_size) {
143 fuzz_info(
"Mutating an existing enqueued call");
144 if (!enqueued_calls.empty()) {
146 fuzz_info(
"Mutating enqueued call at index: ", idx);
154 fuzz_info(
"Removing an existing enqueued call");
155 if (!enqueued_calls.empty()) {
157 enqueued_calls.erase(enqueued_calls.begin() +
static_cast<std::ptrdiff_t>(idx));
void mutate_field(bb::avm2::FF &value, std::mt19937_64 &rng, const FieldMutationConfig &config)
T select(std::mt19937_64 &rng) const
constexpr FieldMutationConfig BASIC_FIELD_MUTATION_CONFIGURATION
constexpr VecMutationConfig BASIC_VEC_MUTATION_CONFIGURATION
void mutate_tx(Tx &tx, std::vector< AztecAddress > &contract_addresses, std::mt19937_64 &rng)
void mutate_gas_settings(GasSettings &gas_settings, std::mt19937_64 &rng)
void mutate_non_revertible_accumulated_data(AccumulatedData &data, std::mt19937_64 &rng)
FuzzerData generate_fuzzer_data(std::mt19937_64 &rng, const FuzzerContext &context)
PublicCallRequestWithCalldata generate_public_call_request(std::vector< AztecAddress > &contract_addresses, std::mt19937_64 &rng)
void mutate_fuzzer_data_vec(const FuzzerContext &context, std::vector< FuzzerData > &enqueued_calls, std::mt19937_64 &rng, size_t max_size)
void add_default_instruction_block_if_empty(FuzzerData &fuzzer_data, std::mt19937_64 &rng, const FuzzerContext &context)
void mutate_fuzzer_data(FuzzerData &fuzzer_data, std::mt19937_64 &rng, const FuzzerContext &context)
void mutate_gas_fees(GasFees &fees, std::mt19937_64 &rng)
void mutate_public_call_request(PublicCallRequestWithCalldata &request, std::vector< AztecAddress > &contract_addresses, std::mt19937_64 &rng)
void mutate_revertible_accumulated_data(AccumulatedData &data, std::mt19937_64 &rng)
void mutate_gas(Gas &gas, std::mt19937_64 &rng, const Gas &max)
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
constexpr EnqueuedCallMutationConfig ENQUEUED_CALL_MUTATION_CONFIGURATION
constexpr TxMutationConfig TX_MUTATION_CONFIGURATION