TARAXA
Loading...
Searching...
No Matches
query.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "QueryObject.h"
4#include "dag/dag_manager.hpp"
6#include "graphql/block.hpp"
7#include "network/network.hpp"
11
12namespace graphql::taraxa {
13class Query {
14 public:
15 explicit Query(std::shared_ptr<::taraxa::final_chain::FinalChain> final_chain,
16 std::shared_ptr<::taraxa::DagManager> dag_manager, std::shared_ptr<::taraxa::PbftManager> pbft_manager,
17 std::shared_ptr<::taraxa::TransactionManager> transaction_manager,
18 std::shared_ptr<::taraxa::DbStorage> db, std::shared_ptr<::taraxa::GasPricer> gas_pricer,
19 std::weak_ptr<::taraxa::Network> network, uint64_t chain_id) noexcept;
20
21 std::shared_ptr<object::Block> getBlock(std::optional<response::Value>&& numberArg,
22 std::optional<response::Value>&& hashArg) const;
23 std::vector<std::shared_ptr<object::Block>> getBlocks(response::Value&& fromArg,
24 std::optional<response::Value>&& toArg) const;
25 std::shared_ptr<object::Transaction> getTransaction(response::Value&& hashArg) const;
26 std::shared_ptr<object::Account> getAccount(response::Value&& addressArg,
27 std::optional<response::Value>&& blockArg) const;
28 response::Value getGasPrice() const;
29 std::shared_ptr<object::SyncState> getSyncing() const;
30 response::Value getChainID() const;
31 std::shared_ptr<object::DagBlock> getDagBlock(std::optional<response::Value>&& hashArg) const;
32 std::vector<std::shared_ptr<object::DagBlock>> getPeriodDagBlocks(std::optional<response::Value>&& periodArg) const;
33 std::vector<std::shared_ptr<object::DagBlock>> getDagBlocks(std::optional<response::Value>&& dagLevelArg,
34 std::optional<int>&& countArg,
35 std::optional<bool>&& reverseArg) const;
36 std::shared_ptr<object::CurrentState> getNodeState() const;
37
38 private:
39 // TODO: use pagination limit for all "list" queries
40 static constexpr size_t kMaxPropagationLimit{100};
41
42 std::shared_ptr<::taraxa::final_chain::FinalChain> final_chain_;
43 std::shared_ptr<::taraxa::DagManager> dag_manager_;
44 std::shared_ptr<::taraxa::PbftManager> pbft_manager_;
45 std::shared_ptr<::taraxa::TransactionManager> transaction_manager_;
46 std::shared_ptr<::taraxa::DbStorage> db_;
47 std::shared_ptr<::taraxa::GasPricer> gas_pricer_;
48 std::weak_ptr<::taraxa::Network> network_;
49 const uint64_t kChainId;
50 std::function<std::shared_ptr<object::Block>(::taraxa::EthBlockNumber)> get_block_by_num_;
51};
52
53} // namespace graphql::taraxa
Definition query.hpp:13
response::Value getChainID() const
Definition query.cpp:128
std::shared_ptr<::taraxa::DbStorage > db_
Definition query.hpp:46
std::weak_ptr<::taraxa::Network > network_
Definition query.hpp:48
std::shared_ptr< object::SyncState > getSyncing() const
Definition query.cpp:124
std::shared_ptr< object::Account > getAccount(response::Value &&addressArg, std::optional< response::Value > &&blockArg) const
Definition query.cpp:112
std::shared_ptr< object::DagBlock > getDagBlock(std::optional< response::Value > &&hashArg) const
Definition query.cpp:130
std::shared_ptr< object::Block > getBlock(std::optional< response::Value > &&numberArg, std::optional< response::Value > &&hashArg) const
Definition query.cpp:35
std::shared_ptr<::taraxa::GasPricer > gas_pricer_
Definition query.hpp:47
std::vector< std::shared_ptr< object::Block > > getBlocks(response::Value &&fromArg, std::optional< response::Value > &&toArg) const
Definition query.cpp:70
std::shared_ptr< object::CurrentState > getNodeState() const
Definition query.cpp:220
std::function< std::shared_ptr< object::Block >(::taraxa::EthBlockNumber)> get_block_by_num_
Definition query.hpp:50
std::shared_ptr<::taraxa::TransactionManager > transaction_manager_
Definition query.hpp:45
static constexpr size_t kMaxPropagationLimit
Definition query.hpp:40
const uint64_t kChainId
Definition query.hpp:49
response::Value getGasPrice() const
Definition query.cpp:122
std::shared_ptr<::taraxa::PbftManager > pbft_manager_
Definition query.hpp:44
std::vector< std::shared_ptr< object::DagBlock > > getDagBlocks(std::optional< response::Value > &&dagLevelArg, std::optional< int > &&countArg, std::optional< bool > &&reverseArg) const
Definition query.cpp:172
std::vector< std::shared_ptr< object::DagBlock > > getPeriodDagBlocks(std::optional< response::Value > &&periodArg) const
Definition query.cpp:152
std::shared_ptr<::taraxa::DagManager > dag_manager_
Definition query.hpp:43
std::shared_ptr< object::Transaction > getTransaction(response::Value &&hashArg) const
Definition query.cpp:104
std::shared_ptr<::taraxa::final_chain::FinalChain > final_chain_
Definition query.hpp:42
Definition account.hpp:10
uint64_t EthBlockNumber
Definition types.hpp:24