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)
 Fuzz CPP vs JS simulator with 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 273 of file fuzzer_lib.cpp.

◆ create_default_tx_data() [1/2]

FuzzerTxData create_default_tx_data ( FuzzerContext context)

Definition at line 267 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 239 of file fuzzer_lib.cpp.

◆ fund_fee_payer()

void fund_fee_payer ( FuzzerWorldStateManager ws_mgr,
const Tx tx 
)

Definition at line 82 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 154 of file fuzzer_lib.cpp.

◆ fuzz_tx()

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

Fuzz CPP vs JS simulator with a full transaction containing multiple enqueued calls.

Parameters
tx_dataThe transaction data containing multiple enqueued calls
Returns
The simulator result if the results are the same
Exceptions
Anexception if the simulator results are different

Definition at line 96 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 306 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 446 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 36 of file fuzzer_lib.cpp.