Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
data_copy_events.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include <cstdint>
4
#include <stdexcept>
5
#include <vector>
6
7
#include "
barretenberg/vm2/common/field.hpp
"
8
#include "
barretenberg/vm2/common/memory_types.hpp
"
9
10
namespace
bb::avm2::simulation
{
11
12
struct
DataCopyException
:
public
std::runtime_error {
13
explicit
DataCopyException
(
const
std::string& message)
14
:
std
::runtime_error(message)
15
{}
16
};
17
18
enum class
DataCopyOperation
: uint8_t {
19
CD_COPY
,
20
RD_COPY
,
21
};
22
23
struct
DataCopyEvent
{
24
uint32_t
execution_clk
= 0;
// Data copy will read and write memory,
25
DataCopyOperation
operation
=
DataCopyOperation::CD_COPY
;
26
std::vector<MemoryValue>
copying_data
;
// A portion of the padded version of calldata/returndata
27
uint32_t
write_context_id
= 0;
// For mem aware subtraces, they need the context id when referencing memory
28
uint32_t
read_context_id
= 0;
// Refers to the parent/child context id
29
// Loaded from X_data_copy opcode
30
uint32_t
data_copy_size
= 0;
31
uint32_t
data_offset
= 0;
32
// This is a direct address from the parent/child context for calldata/returndata
33
MemoryAddress
src_data_addr
= 0;
34
uint32_t
src_data_size
= 0;
// Size of the calldata/returndata
35
bool
is_nested
=
false
;
36
// Output Address
37
MemoryAddress
dst_addr
= 0;
38
};
39
40
}
// namespace bb::avm2::simulation
memory_types.hpp
bb::avm2::simulation
Definition
address_derivation_event.hpp:6
bb::avm2::simulation::DataCopyOperation
DataCopyOperation
Definition
data_copy_events.hpp:18
bb::avm2::simulation::DataCopyOperation::RD_COPY
@ RD_COPY
bb::avm2::simulation::DataCopyOperation::CD_COPY
@ CD_COPY
bb::avm2::MemoryAddress
uint32_t MemoryAddress
Definition
memory_types.hpp:11
std
STL namespace.
std::get
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition
tuple.hpp:13
bb::avm2::simulation::DataCopyEvent
Definition
data_copy_events.hpp:23
bb::avm2::simulation::DataCopyEvent::copying_data
std::vector< MemoryValue > copying_data
Definition
data_copy_events.hpp:26
bb::avm2::simulation::DataCopyEvent::data_offset
uint32_t data_offset
Definition
data_copy_events.hpp:31
bb::avm2::simulation::DataCopyEvent::src_data_addr
MemoryAddress src_data_addr
Definition
data_copy_events.hpp:33
bb::avm2::simulation::DataCopyEvent::read_context_id
uint32_t read_context_id
Definition
data_copy_events.hpp:28
bb::avm2::simulation::DataCopyEvent::is_nested
bool is_nested
Definition
data_copy_events.hpp:35
bb::avm2::simulation::DataCopyEvent::operation
DataCopyOperation operation
Definition
data_copy_events.hpp:25
bb::avm2::simulation::DataCopyEvent::dst_addr
MemoryAddress dst_addr
Definition
data_copy_events.hpp:37
bb::avm2::simulation::DataCopyEvent::write_context_id
uint32_t write_context_id
Definition
data_copy_events.hpp:27
bb::avm2::simulation::DataCopyEvent::execution_clk
uint32_t execution_clk
Definition
data_copy_events.hpp:24
bb::avm2::simulation::DataCopyEvent::data_copy_size
uint32_t data_copy_size
Definition
data_copy_events.hpp:30
bb::avm2::simulation::DataCopyEvent::src_data_size
uint32_t src_data_size
Definition
data_copy_events.hpp:34
bb::avm2::simulation::DataCopyException
Definition
data_copy_events.hpp:12
bb::avm2::simulation::DataCopyException::DataCopyException
DataCopyException(const std::string &message)
Definition
data_copy_events.hpp:13
field.hpp
src
barretenberg
vm2
simulation
events
data_copy_events.hpp
Generated by
1.9.8