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 <cstdint>
5#include <vector>
6
11
12namespace bb::avm2::simulation {
13
15 public:
16 virtual ~Poseidon2Interface() = default;
17 virtual FF hash(const std::vector<FF>& input) = 0;
18 virtual std::array<FF, 4> permutation(const std::array<FF, 4>& input) = 0;
19 // Overload for opcode execution that takes memory addresses
20 virtual void permutation(MemoryInterface& memory, MemoryAddress src_address, MemoryAddress dst_address) = 0;
21};
22
48
49} // namespace bb::avm2::simulation
std::array< FF, 4 > permutation(const std::array< FF, 4 > &input) override
Definition poseidon2.cpp:53
FF hash(const std::vector< FF > &input) override
Definition poseidon2.cpp:17
GreaterThanInterface & gt
Definition poseidon2.hpp:43
EventEmitterInterface< Poseidon2PermutationEvent > & perm_events
Definition poseidon2.hpp:45
EventEmitterInterface< Poseidon2HashEvent > & hash_events
Definition poseidon2.hpp:44
ExecutionIdManagerInterface & execution_id_manager
Definition poseidon2.hpp:42
Poseidon2(ExecutionIdManagerInterface &execution_id_manager, GreaterThanInterface &gt, EventEmitterInterface< Poseidon2HashEvent > &hash_emitter, EventEmitterInterface< Poseidon2PermutationEvent > &perm_emitter, EventEmitterInterface< Poseidon2PermutationMemoryEvent > &perm_mem_emitter)
Definition poseidon2.hpp:25
EventEmitterInterface< Poseidon2PermutationMemoryEvent > & perm_mem_events
Definition poseidon2.hpp:46
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