Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
fuzzer_lib.cpp File Reference

Go to the source code of this file.

Functions

size_t LLVMFuzzerMutate (uint8_t *Data, size_t Size, size_t MaxSize)
 
void setup_fuzzer_state (FuzzerWorldStateManager &ws_mgr, FuzzerContractDB &contract_db, const FuzzerTxData &tx_data)
 
void fund_fee_payer (FuzzerWorldStateManager &ws_mgr, const Tx &tx)
 
SimulatorResult fuzz_tx (FuzzerWorldStateManager &ws_mgr, FuzzerContractDB &contract_db, FuzzerTxData &tx_data)
 Run the C++ simulator on a full transaction containing multiple enqueued calls.
 
TxSimulationResult fuzz_prover (FuzzerWorldStateManager &ws_mgr, FuzzerContractDB &contract_db, FuzzerTxData &tx_data)
 Run the prover fuzzer: fast simulation, hint collection, comparison, and check_circuit.
 
FuzzerTxData create_default_tx_data (std::mt19937_64 &rng, FuzzerContext &context)
 
FuzzerTxData create_default_tx_data (FuzzerContext &context)
 
ContractArtifacts build_bytecode_and_artifacts (FuzzerData &fuzzer_data)
 
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)
 
void populate_context_from_tx_data (FuzzerContext &context, const FuzzerTxData &tx_data)
 

Function Documentation

◆ build_bytecode_and_artifacts()

ContractArtifacts build_bytecode_and_artifacts ( FuzzerData fuzzer_data)

Definition at line 255 of file fuzzer_lib.cpp.

◆ create_default_tx_data() [1/2]

FuzzerTxData create_default_tx_data ( FuzzerContext context)

Definition at line 249 of file fuzzer_lib.cpp.

◆ create_default_tx_data() [2/2]

FuzzerTxData create_default_tx_data ( std::mt19937_64 rng,
FuzzerContext context 
)

Definition at line 221 of file fuzzer_lib.cpp.

◆ fund_fee_payer()

void fund_fee_payer ( FuzzerWorldStateManager ws_mgr,
const Tx tx 
)

Definition at line 81 of file fuzzer_lib.cpp.

◆ fuzz_prover()

TxSimulationResult fuzz_prover ( FuzzerWorldStateManager ws_mgr,
FuzzerContractDB contract_db,
FuzzerTxData tx_data 
)

Run the prover fuzzer: fast simulation, hint collection, comparison, and check_circuit.

Parameters
ws_mgrThe world state manager (should already be forked)
contract_dbThe contract database
tx_dataThe transaction data
Returns
the simulation result
Exceptions
Anexception if simulation results differ or check_circuit fails

Definition at line 131 of file fuzzer_lib.cpp.

◆ fuzz_tx()

SimulatorResult fuzz_tx ( FuzzerWorldStateManager ws_mgr,
FuzzerContractDB contract_db,
FuzzerTxData tx_data 
)

Run the C++ simulator on a full transaction containing multiple enqueued calls.

Parameters
tx_dataThe transaction data containing multiple enqueued calls
Returns
The simulation result; a reverted result carrying the message if the simulator throws

Definition at line 94 of file fuzzer_lib.cpp.

◆ LLVMFuzzerMutate()

size_t LLVMFuzzerMutate ( uint8_t *  Data,
size_t  Size,
size_t  MaxSize 
)
extern

◆ mutate_tx_data()

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 
)

Definition at line 288 of file fuzzer_lib.cpp.

◆ populate_context_from_tx_data()

void populate_context_from_tx_data ( FuzzerContext context,
const FuzzerTxData tx_data 
)

Definition at line 428 of file fuzzer_lib.cpp.

◆ setup_fuzzer_state()

void setup_fuzzer_state ( FuzzerWorldStateManager ws_mgr,
FuzzerContractDB contract_db,
const FuzzerTxData tx_data 
)

Definition at line 35 of file fuzzer_lib.cpp.