Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
call_stack_metadata_collector.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <vector>
4
8
9namespace bb::avm2::simulation {
10
14
16 public:
18
19 virtual void set_phase(CoarseTransactionPhase phase) = 0;
21 uint32_t caller_pc,
22 const CalldataProvider& calldata_provider,
23 bool is_static_call,
24 const Gas& gas_limit) = 0;
25 virtual void notify_exit_call(bool success,
26 uint32_t pc,
27 const std::optional<std::string>& halting_message,
28 const ReturnDataProvider& return_data_provider,
29 const InternalCallStackProvider& internal_call_stack_provider) = 0;
30 // Notify a tx-level revert that happened outside of an enqueued call (e.g., during revertible insertions).
31 // This creates a synthetic CallStackMetadata entry to capture the revert reason.
32 virtual void notify_tx_revert(const std::string& revert_message) = 0;
34};
35
36} // namespace bb::avm2::simulation
virtual std::vector< CallStackMetadata > dump_call_stack_metadata()=0
virtual void set_phase(CoarseTransactionPhase phase)=0
virtual void notify_tx_revert(const std::string &revert_message)=0
virtual void notify_exit_call(bool success, uint32_t pc, const std::optional< std::string > &halting_message, const ReturnDataProvider &return_data_provider, const InternalCallStackProvider &internal_call_stack_provider)=0
virtual void notify_enter_call(const AztecAddress &contract_address, uint32_t caller_pc, const CalldataProvider &calldata_provider, bool is_static_call, const Gas &gas_limit)=0
std::function< std::vector< PC >()> InternalCallStackProvider
std::function< std::vector< FF >(uint32_t max_size)> CalldataProvider
std::function< std::vector< FF >(uint32_t max_size)> ReturnDataProvider
CoarseTransactionPhase
Definition avm_io.hpp:482
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13