Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
internal_call_stack_manager.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <cstdint>
4#include <stack>
5#include <stdexcept>
6
10
11namespace bb::avm2::simulation {
12
17
19 public:
21
22 virtual void push(PC return_pc) = 0;
23 virtual PC pop() = 0;
24 virtual InternalCallId get_next_call_id() const = 0;
25 virtual InternalCallId get_call_id() const = 0;
27};
28
29// This contains the context_id due to circuit requirements similar to memory (i.e. it is used in the event emitter)
30// There might be a way to avoid this by emitting in the context / execution itself.
54
61
76
77} // namespace bb::avm2::simulation
EventEmitterInterface< InternalCallStackEvent > & internal_call_stack_events
InternalCallStackManager(uint32_t context_id, EventEmitterInterface< InternalCallStackEvent > &emitter)
virtual InternalCallId get_return_call_id() const =0
virtual InternalCallId get_next_call_id() const =0
InternalCallStackManagerProvider(EventEmitterInterface< InternalCallStackEvent > &event_emitter)
EventEmitterInterface< InternalCallStackEvent > & events
std::unique_ptr< InternalCallStackManagerInterface > make_internal_call_stack_manager(uint32_t context_id) override
virtual std::unique_ptr< InternalCallStackManagerInterface > make_internal_call_stack_manager(uint32_t context_id)=0
EventEmitter< DataCopyEvent > event_emitter
uint32_t PC
uint32_t InternalCallId
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13