Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
simulation_helper.hpp
Go to the documentation of this file.
1#pragma once
2
9
10namespace bb::avm2 {
11
13 public:
14 // Fast simulation without event collection (used in block building, TXE, etc).
16 const world_state::WorldStateRevision& world_state_revision,
18 const PublicSimulatorConfig& config,
19 const Tx& tx,
20 const GlobalVariables& global_variables,
21 const ProtocolContracts& protocol_contracts,
22 simulation::CancellationTokenPtr cancellation_token = nullptr);
23
24 // Simulation to collect hints (used by the prover node).
26 const world_state::WorldStateRevision& world_state_revision,
28 const PublicSimulatorConfig& config,
29 const Tx& tx,
30 const GlobalVariables& global_variables,
31 const ProtocolContracts& protocol_contracts,
32 simulation::CancellationTokenPtr cancellation_token = nullptr);
33
34 // Simulation with event collection (used in witgen and proving).
36
37 // An extra entry point that is not used in production.
39
40 protected:
43 const PublicSimulatorConfig& config,
44 const Tx& tx,
45 const GlobalVariables& global_variables,
46 const ProtocolContracts& protocol_contracts,
47 simulation::CancellationTokenPtr cancellation_token = nullptr);
48
49 template <template <typename> class DefaultEventEmitter, template <typename> class DefaultDeduplicatingEventEmitter>
51 simulation::ContractDBInterface& raw_contract_db,
53 const PublicSimulatorConfig& config,
54 const Tx& tx,
55 const GlobalVariables& global_variables,
56 const ProtocolContracts& protocol_contracts);
57};
58
59} // namespace bb::avm2
TxSimulationResult simulate_fast_internal(simulation::ContractDBInterface &raw_contract_db, simulation::LowLevelMerkleDBInterface &raw_merkle_db, const PublicSimulatorConfig &config, const Tx &tx, const GlobalVariables &global_variables, const ProtocolContracts &protocol_contracts, simulation::CancellationTokenPtr cancellation_token=nullptr)
std::tuple< simulation::EventsContainer, TxSimulationResult > simulate_for_witgen_internal(simulation::ContractDBInterface &raw_contract_db, simulation::LowLevelMerkleDBInterface &raw_merkle_db, const PublicSimulatorConfig &config, const Tx &tx, const GlobalVariables &global_variables, const ProtocolContracts &protocol_contracts)
TxSimulationResult simulate_for_hint_collection(simulation::ContractDBInterface &raw_contract_db, const world_state::WorldStateRevision &world_state_revision, world_state::WorldState &ws, const PublicSimulatorConfig &config, const Tx &tx, const GlobalVariables &global_variables, const ProtocolContracts &protocol_contracts, simulation::CancellationTokenPtr cancellation_token=nullptr)
TxSimulationResult simulate_fast_with_hinted_dbs(const ExecutionHints &hints, const PublicSimulatorConfig &config)
TxSimulationResult simulate_fast_with_existing_ws(simulation::ContractDBInterface &raw_contract_db, const world_state::WorldStateRevision &world_state_revision, world_state::WorldState &ws, const PublicSimulatorConfig &config, const Tx &tx, const GlobalVariables &global_variables, const ProtocolContracts &protocol_contracts, simulation::CancellationTokenPtr cancellation_token=nullptr)
simulation::EventsContainer simulate_for_witgen(const ExecutionHints &hints)
Holds the Merkle trees responsible for storing the state of the Aztec protocol.
std::shared_ptr< CancellationToken > CancellationTokenPtr
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13