TARAXA
Loading...
Searching...
No Matches
transaction.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <memory>
4#include <string>
5#include <vector>
6
7#include "TransactionObject.h"
11
12namespace graphql::taraxa {
13
14class Transaction final : public std::enable_shared_from_this<Transaction> {
15 public:
16 explicit Transaction(std::shared_ptr<::taraxa::final_chain::FinalChain> final_chain,
17 std::shared_ptr<::taraxa::TransactionManager> trx_manager,
18 std::function<std::shared_ptr<object::Block>(::taraxa::EthBlockNumber)>,
19 std::shared_ptr<::taraxa::Transaction> transaction) noexcept;
20
21 response::Value getHash() const noexcept;
22 response::Value getNonce() const noexcept;
23 std::optional<int> getIndex() const noexcept;
24 std::shared_ptr<object::Account> getFrom(std::optional<response::Value>&& blockArg) const;
25 std::shared_ptr<object::Account> getTo(std::optional<response::Value>&& blockArg) const;
26 response::Value getValue() const noexcept;
27 response::Value getGasPrice() const noexcept;
28 response::Value getGas() const noexcept;
29 response::Value getInputData() const noexcept;
30 std::shared_ptr<object::Block> getBlock() const;
31 std::optional<response::Value> getStatus() const noexcept;
32 std::optional<response::Value> getGasUsed() const noexcept;
33 std::optional<response::Value> getCumulativeGasUsed() const noexcept;
34 std::shared_ptr<object::Account> getCreatedContract(std::optional<response::Value>&& blockArg) const noexcept;
35 std::optional<std::vector<std::shared_ptr<object::Log>>> getLogs() const noexcept;
36 response::Value getR() const noexcept;
37 response::Value getS() const noexcept;
38 response::Value getV() const noexcept;
39
40 private:
41 std::shared_ptr<::taraxa::final_chain::FinalChain> final_chain_;
42 std::shared_ptr<::taraxa::TransactionManager> trx_manager_;
43 std::function<std::shared_ptr<object::Block>(::taraxa::EthBlockNumber)> get_block_by_num_;
44 std::shared_ptr<::taraxa::Transaction> transaction_;
45 // Caching for performance
46 mutable std::optional<::taraxa::TransactionReceipt> receipt_;
48};
49
50} // namespace graphql::taraxa
Definition transaction.hpp:14
std::function< std::shared_ptr< object::Block >(::taraxa::EthBlockNumber)> get_block_by_num_
Definition transaction.hpp:43
std::optional< response::Value > getStatus() const noexcept
Definition transaction.cpp:54
std::shared_ptr<::taraxa::TransactionManager > trx_manager_
Definition transaction.hpp:42
std::optional<::taraxa::TransactionReceipt > receipt_
Definition transaction.hpp:46
response::Value getS() const noexcept
Definition transaction.cpp:104
std::shared_ptr< object::Account > getCreatedContract(std::optional< response::Value > &&blockArg) const noexcept
Definition transaction.cpp:78
std::shared_ptr< object::Account > getTo(std::optional< response::Value > &&blockArg) const
Definition transaction.cpp:34
std::shared_ptr<::taraxa::Transaction > transaction_
Definition transaction.hpp:44
std::optional< response::Value > getCumulativeGasUsed() const noexcept
Definition transaction.cpp:70
std::optional< response::Value > getGasUsed() const noexcept
Definition transaction.cpp:62
std::shared_ptr< object::Account > getFrom(std::optional< response::Value > &&blockArg) const
Definition transaction.cpp:29
response::Value getHash() const noexcept
Definition transaction.cpp:23
std::shared_ptr<::taraxa::final_chain::FinalChain > final_chain_
Definition transaction.hpp:41
::taraxa::TransactionLocation location_
Definition transaction.hpp:47
response::Value getR() const noexcept
Definition transaction.cpp:102
response::Value getInputData() const noexcept
Definition transaction.cpp:48
std::optional< int > getIndex() const noexcept
Definition transaction.cpp:27
response::Value getGasPrice() const noexcept
Definition transaction.cpp:42
response::Value getV() const noexcept
Definition transaction.cpp:106
response::Value getValue() const noexcept
Definition transaction.cpp:40
std::optional< std::vector< std::shared_ptr< object::Log > > > getLogs() const noexcept
Definition transaction.cpp:87
response::Value getNonce() const noexcept
Definition transaction.cpp:25
response::Value getGas() const noexcept
Definition transaction.cpp:44
std::shared_ptr< object::Block > getBlock() const
Definition transaction.cpp:52
Definition account.hpp:10
uint64_t EthBlockNumber
Definition types.hpp:24
Definition receipt.hpp:37