69 const std::vector<bb::crypto::merkle_tree::PublicDataLeafValue>& public_data_writes,
70 const std::vector<FF>& note_hashes,
81 const std::vector<bb::crypto::merkle_tree::PublicDataLeafValue>& public_data_writes,
82 const std::vector<FF>& note_hashes,
109 const std::vector<bb::crypto::merkle_tree::PublicDataLeafValue>& public_data_writes,
110 const std::vector<FF>& note_hashes,
119 [[maybe_unused]]
const FF& transaction_fee,
121 const Gas& gas_limit);
StrictMock< MockContractDB > contract_db
uses barretenberg/vm2 to simulate the bytecode
SimulatorResult simulate(fuzzer::FuzzerWorldStateManager &ws_mgr, fuzzer::FuzzerContractDB &contract_db, const Tx &tx, const GlobalVariables &globals, const std::vector< bb::crypto::merkle_tree::PublicDataLeafValue > &public_data_writes, const std::vector< FF > ¬e_hashes, const ProtocolContracts &protocol_contracts) override
uses the yarn-project/simulator to simulate the bytecode Singleton, because initializing the simulato...
SimulatorResult simulate(fuzzer::FuzzerWorldStateManager &ws_mgr, fuzzer::FuzzerContractDB &contract_db, const Tx &tx, const GlobalVariables &globals, const std::vector< bb::crypto::merkle_tree::PublicDataLeafValue > &public_data_writes, const std::vector< FF > ¬e_hashes, const ProtocolContracts &protocol_contracts) override
static JsSimulator * getInstance()
JsSimulator(JsSimulator &other)=delete
static JsSimulator * instance
JsSimulator & operator=(JsSimulator &&)=delete
JsSimulator(JsSimulator &&)=delete
std::string simulator_path
void operator=(const JsSimulator &)=delete
static void initialize(std::string &simulator_path)
Simulator & operator=(const Simulator &)=delete
Simulator(Simulator &&)=delete
Simulator(const Simulator &)=delete
virtual ~Simulator()=default
virtual SimulatorResult simulate(fuzzer::FuzzerWorldStateManager &ws_mgr, fuzzer::FuzzerContractDB &contract_db, const Tx &tx, const GlobalVariables &globals, const std::vector< bb::crypto::merkle_tree::PublicDataLeafValue > &public_data_writes, const std::vector< FF > ¬e_hashes, const ProtocolContracts &protocol_contracts)=0
Simulator & operator=(Simulator &&)=delete
AztecAddress contract_address
FuzzerWorldStateManager * ws_mgr
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
bool compare_simulator_results(SimulatorResult &result1, SimulatorResult &result2)
Tx create_default_tx(const AztecAddress &contract_address, const AztecAddress &sender_address, const std::vector< FF > &calldata, const FF &transaction_fee, bool is_static_call, const Gas &gas_limit)
GlobalVariables create_default_globals()
std::vector< std::pair< AztecAddress, ContractInstance > > contract_instances
std::vector< FF > note_hashes
MSGPACK_CAMEL_CASE_FIELDS(ws_data_dir, ws_map_size_kb, tx, globals, contract_classes, contract_instances, public_data_writes, note_hashes, protocol_contracts)
std::vector< bb::crypto::merkle_tree::PublicDataLeafValue > public_data_writes
std::vector< ContractClass > contract_classes
ProtocolContracts protocol_contracts
MSGPACK_CAMEL_CASE_FIELDS(reverted, output, end_tree_snapshots, revert_reason, public_tx_effect)
TreeSnapshots end_tree_snapshots
PublicTxEffect public_tx_effect
std::string revert_reason