Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
simulator.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <vector>
4
11
12using namespace bb::avm2::simulation;
13using namespace bb::avm2;
14
24
25class Simulator {
26 public:
27 virtual ~Simulator() = default;
28 Simulator(const Simulator&) = delete;
29 Simulator& operator=(const Simulator&) = delete;
30 Simulator(Simulator&&) = delete;
32 Simulator() = default;
36 const Tx& tx,
37 const GlobalVariables& globals,
38 const std::vector<bb::crypto::merkle_tree::PublicDataLeafValue>& public_data_writes,
39 const std::vector<FF>& note_hashes,
40 const ProtocolContracts& protocol_contracts) = 0;
41};
42
44class CppSimulator : public Simulator {
45 public:
48 const Tx& tx,
49 const GlobalVariables& globals,
50 const std::vector<bb::crypto::merkle_tree::PublicDataLeafValue>& public_data_writes,
51 const std::vector<FF>& note_hashes,
52 const ProtocolContracts& protocol_contracts) override;
53};
54
56
57Tx create_default_tx(const AztecAddress& contract_address,
58 const AztecAddress& sender_address,
59 const std::vector<FF>& calldata,
60 [[maybe_unused]] const FF& transaction_fee,
61 bool is_static_call,
62 const Gas& gas_limit);
StrictMock< MockContractDB > contract_db
uses barretenberg/vm2 to simulate the bytecode
Definition simulator.hpp:44
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 > &note_hashes, const ProtocolContracts &protocol_contracts) override
Definition simulator.cpp:45
Simulator & operator=(const Simulator &)=delete
Simulator(Simulator &&)=delete
Simulator(const Simulator &)=delete
Simulator()=default
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 > &note_hashes, const ProtocolContracts &protocol_contracts)=0
Simulator & operator=(Simulator &&)=delete
FuzzerWorldStateManager * ws_mgr
Definition fuzz.test.cpp:15
AVM range check gadget for witness generation.
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)
Definition simulator.cpp:96
GlobalVariables create_default_globals()
Definition simulator.cpp:31
MSGPACK_CAMEL_CASE_FIELDS(reverted, output, end_tree_snapshots, revert_reason, public_tx_effect)
TreeSnapshots end_tree_snapshots
Definition simulator.hpp:18
PublicTxEffect public_tx_effect
Definition simulator.hpp:20
std::string revert_reason
Definition simulator.hpp:19
std::vector< FF > output
Definition simulator.hpp:17