20 const uint64_t leaf_index,
25 const uint64_t leaf_index,
27 const FF& current_root) = 0;
38 const uint64_t leaf_index,
40 const FF& root)
override;
44 const uint64_t leaf_index,
46 const FF& current_root)
override;
FF write(const FF ¤t_value, const FF &new_value, const uint64_t leaf_index, std::span< const FF > sibling_path, const FF ¤t_root) override
void assert_membership(const FF &leaf_value, const uint64_t leaf_index, std::span< const FF > sibling_path, const FF &root) override
MerkleCheck(Poseidon2Interface &poseidon2, EventEmitterInterface< MerkleCheckEvent > &event_emitter)
EventEmitterInterface< MerkleCheckEvent > & events
Poseidon2Interface & poseidon2
virtual ~MerkleCheckInterface()=default
virtual void assert_membership(const FF &leaf_value, const uint64_t leaf_index, std::span< const FF > sibling_path, const FF &root)=0
virtual FF write(const FF ¤t_value, const FF &new_value, const uint64_t leaf_index, std::span< const FF > sibling_path, const FF ¤t_root)=0
EventEmitter< DataCopyEvent > event_emitter
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept