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 <vector>
5
8
9namespace bb::avm2::simulation {
10
11// Forward declarations
12class MemoryInterface;
13
14struct Poseidon2Exception : public std::runtime_error {
15 Poseidon2Exception(const std::string& message)
16 : std::runtime_error("Poseidon2Exception: " + message)
17 {}
18};
19
21 public:
22 virtual ~Poseidon2Interface() = default;
23 virtual FF hash(const std::vector<FF>& input) = 0;
24 virtual std::array<FF, 4> permutation(const std::array<FF, 4>& input) = 0;
25 // Overload for opcode execution that takes memory addresses
27};
28
29} // namespace bb::avm2::simulation
virtual void permutation(MemoryInterface &memory, MemoryAddress src_address, MemoryAddress dst_address)=0
virtual FF hash(const std::vector< FF > &input)=0
virtual std::array< FF, 4 > permutation(const std::array< FF, 4 > &input)=0
uint32_t MemoryAddress
AvmFlavorSettings::FF FF
Definition field.hpp:10
STL namespace.
Poseidon2Exception(const std::string &message)
Definition poseidon2.hpp:15