TARAXA
key_manager.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <memory>
4 #include <unordered_map>
5 
6 #include "common/vrf_wrapper.hpp"
8 
9 namespace taraxa {
10 
11 class KeyManager {
12  public:
13  KeyManager(std::shared_ptr<final_chain::FinalChain> final_chain);
14  KeyManager(const KeyManager &) = delete;
15  KeyManager(KeyManager &&) = delete;
16  KeyManager &operator=(const KeyManager &) = delete;
18 
19  std::shared_ptr<vrf_wrapper::vrf_pk_t> getVrfKey(EthBlockNumber blk_n, const addr_t &addr);
20 
21  private:
22  std::shared_mutex vrf_keys_mutex_;
23  std::unordered_map<addr_t, std::shared_ptr<vrf_wrapper::vrf_pk_t>> vrf_keys_;
24 
25  std::shared_ptr<final_chain::FinalChain> final_chain_;
26 };
27 
28 } // namespace taraxa
Definition: FixedHash.h:35
Definition: key_manager.hpp:11
KeyManager(KeyManager &&)=delete
std::shared_ptr< final_chain::FinalChain > final_chain_
Definition: key_manager.hpp:25
std::unordered_map< addr_t, std::shared_ptr< vrf_wrapper::vrf_pk_t > > vrf_keys_
Definition: key_manager.hpp:23
KeyManager(std::shared_ptr< final_chain::FinalChain > final_chain)
Definition: key_manager.cpp:7
KeyManager & operator=(KeyManager &&)=delete
std::shared_ptr< vrf_wrapper::vrf_pk_t > getVrfKey(EthBlockNumber blk_n, const addr_t &addr)
Definition: key_manager.cpp:9
KeyManager & operator=(const KeyManager &)=delete
KeyManager(const KeyManager &)=delete
std::shared_mutex vrf_keys_mutex_
Definition: key_manager.hpp:22
Definition: config.hpp:8
uint64_t EthBlockNumber
Definition: types.hpp:23