51 os <<
"FuzzerTxData { "
52 <<
"\n tx: " <<
data.tx <<
","
53 <<
"\n global_variables: " <<
data.global_variables <<
","
54 <<
"\n protocol_contracts: " <<
data.protocol_contracts <<
"\n}";
114 uint8_t* serialized_fuzzer_data,
115 size_t serialized_fuzzer_data_size,
StrictMock< MockContractDB > contract_db
const std::vector< MemoryValue > data
FuzzerWorldStateManager * ws_mgr
void setup_fuzzer_state(bb::avm2::fuzzer::FuzzerWorldStateManager &ws_mgr, bb::avm2::fuzzer::FuzzerContractDB &contract_db, const FuzzerTxData &tx_data)
void fund_fee_payer(bb::avm2::fuzzer::FuzzerWorldStateManager &ws_mgr, const Tx &tx)
void populate_context_from_tx_data(FuzzerContext &context, const FuzzerTxData &tx_data)
@ ContractInstanceMutation
@ ProtocolContractsMutation
@ GlobalVariablesMutation
WeightedSelectionConfig< FuzzerTxDataMutationType, 7 > FuzzerTxDataMutationConfig
SimulatorResult fuzz_tx(bb::avm2::fuzzer::FuzzerWorldStateManager &ws_mgr, bb::avm2::fuzzer::FuzzerContractDB &contract_db, FuzzerTxData &tx_data)
Fuzz CPP vs JS simulator with a full transaction containing multiple enqueued calls.
ContractArtifacts build_bytecode_and_artifacts(FuzzerData &fuzzer_data)
std::ostream & operator<<(std::ostream &os, const FuzzerTxData &data)
std::tuple< Bytecode, ContractClassWithCommitment, ContractInstance > ContractArtifacts
TxSimulationResult fuzz_prover(bb::avm2::fuzzer::FuzzerWorldStateManager &ws_mgr, bb::avm2::fuzzer::FuzzerContractDB &contract_db, FuzzerTxData &tx_data)
Run the prover fuzzer: fast simulation, hint collection, comparison, and check_circuit.
size_t mutate_tx_data(FuzzerContext &context, uint8_t *serialized_fuzzer_data, size_t serialized_fuzzer_data_size, size_t max_size, unsigned int seed)
std::vector< uint8_t > Bytecode
constexpr FuzzerTxDataMutationConfig FUZZER_TX_DATA_MUTATION_CONFIGURATION
FuzzerTxData create_default_tx_data(std::mt19937_64 &rng, FuzzerContext &context)
bool compare_cpp_simulator_results(const std::vector< TxSimulationResult > &results)
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
describes the data which will be used for fuzzing Should contain instructions, calldata,...
std::vector< AztecAddress > contract_addresses
MSGPACK_FIELDS(input_programs, contract_classes, contract_instances, contract_addresses, tx, global_variables, protocol_contracts, public_data_writes, note_hashes)
ProtocolContracts protocol_contracts
std::vector< FF > note_hashes
std::vector< FuzzerData > input_programs
std::vector< ContractInstance > contract_instances
std::vector< ContractClassWithCommitment > contract_classes
GlobalVariables global_variables
std::vector< bb::crypto::merkle_tree::PublicDataLeafValue > public_data_writes