Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
poseidon2.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include <array>
4
#include <stdexcept>
5
#include <string>
6
#include <vector>
7
8
#include "
barretenberg/vm2/common/field.hpp
"
9
#include "
barretenberg/vm2/common/memory_types.hpp
"
10
11
namespace
bb::avm2::simulation
{
12
13
// Forward declarations
14
class
MemoryInterface;
15
16
struct
Poseidon2Exception
:
public
std::runtime_error {
17
Poseidon2Exception
(
const
std::string& message)
18
:
std
::runtime_error(
"Poseidon2Exception: "
+ message)
19
{}
20
};
21
22
class
Poseidon2Interface
{
23
public
:
24
virtual
~Poseidon2Interface
() =
default
;
25
virtual
FF
hash
(
const
std::vector<FF>& input) = 0;
26
virtual
std::array<FF, 4>
permutation
(
const
std::array<FF, 4>& input) = 0;
27
// Overload for opcode execution that takes memory addresses
28
virtual
void
permutation
(
MemoryInterface
&
memory
,
MemoryAddress
src_address
,
MemoryAddress
dst_address
) = 0;
29
};
30
31
}
// namespace bb::avm2::simulation
bb::avm2::memory
Definition
memory.hpp:36
bb::avm2::simulation::MemoryInterface
Definition
memory.hpp:10
bb::avm2::simulation::Poseidon2Interface
Definition
poseidon2.hpp:22
bb::avm2::simulation::Poseidon2Interface::permutation
virtual void permutation(MemoryInterface &memory, MemoryAddress src_address, MemoryAddress dst_address)=0
bb::avm2::simulation::Poseidon2Interface::hash
virtual FF hash(const std::vector< FF > &input)=0
bb::avm2::simulation::Poseidon2Interface::permutation
virtual std::array< FF, 4 > permutation(const std::array< FF, 4 > &input)=0
bb::avm2::simulation::Poseidon2Interface::~Poseidon2Interface
virtual ~Poseidon2Interface()=default
SStoreMutationOptions::src_address
@ src_address
CalldataCopyMutationOptions::dst_address
@ dst_address
memory_types.hpp
bb::avm2::simulation
Definition
address_derivation_event.hpp:6
bb::avm2::FF
AvmFlavorSettings::FF FF
Definition
field.hpp:10
bb::avm2::MemoryAddress
uint32_t MemoryAddress
Definition
memory_types.hpp:11
std
STL namespace.
bb::avm2::simulation::Poseidon2Exception
Definition
poseidon2.hpp:16
bb::avm2::simulation::Poseidon2Exception::Poseidon2Exception
Poseidon2Exception(const std::string &message)
Definition
poseidon2.hpp:17
field.hpp
src
barretenberg
vm2
simulation
interfaces
poseidon2.hpp
Generated by
1.9.8