3 #include <json/value.h>
13 explicit InvalidTransaction(
const std::string &msg) : runtime_error(
"invalid transaction - " + msg) {}
54 const secret_t &sk,
const std::optional<addr_t> &receiver = std::nullopt, uint64_t chain_id = 0);
76 Json::Value
toJSON()
const;
Class for writing to an RLP bytestream.
Definition: RLP.h:484
std::vector<::byte > bytes
Definition: Common.h:46
std::shared_ptr< Transaction > SharedTransaction
Definition: transaction.hpp:79
std::vector< Transaction > Transactions
Definition: transaction.hpp:80
std::vector< SharedTransaction > SharedTransactions
Definition: transaction.hpp:81
val_t trx_nonce_t
Definition: types.hpp:54
std::vector< trx_hash_t > TransactionHashes
Definition: transaction.hpp:82
TransactionHashes hashes_from_transactions(const SharedTransactions &transactions)
Definition: transaction.cpp:23
dev::u256 val_t
Definition: types.hpp:47
uint64_t gas_t
Definition: types.hpp:45
Definition: transaction.hpp:16
InvalidSignature(const std::string &msg)
Definition: transaction.hpp:17
Definition: transaction.hpp:12
InvalidTransaction(const std::string &msg)
Definition: transaction.hpp:13
Definition: transaction.hpp:11
trx_hash_t hash_
Definition: transaction.hpp:33
Transaction()
Definition: transaction.hpp:52
bytes data_
Definition: transaction.hpp:29
val_t gas_price_
Definition: transaction.hpp:27
std::atomic_bool cached_rlp_set_
Definition: transaction.hpp:41
bool sender_valid_
Definition: transaction.hpp:38
bool operator==(Transaction const &other) const
Definition: transaction.hpp:72
const auto & getValue() const
Definition: transaction.hpp:61
auto getCost() const
Definition: transaction.hpp:68
const bytes & rlp() const
Definition: transaction.cpp:141
val_t value_
Definition: transaction.hpp:26
bytes cached_rlp_
Definition: transaction.hpp:42
virtual const addr_t & getSender() const
Definition: transaction.cpp:117
auto getNonce() const
Definition: transaction.hpp:60
uint64_t chain_id_
Definition: transaction.hpp:31
std::mutex hash_mu_
Definition: transaction.hpp:36
std::mutex cached_rlp_mu_
Definition: transaction.hpp:43
const auto & getData() const
Definition: transaction.hpp:64
Json::Value toJSON() const
Definition: transaction.cpp:160
Transaction(const trx_nonce_t &nonce, const val_t &value, const val_t &gas_price, gas_t gas, bytes data, const secret_t &sk, const std::optional< addr_t > &receiver=std::nullopt, uint64_t chain_id=0)
addr_t const & get_sender_() const
Definition: transaction.cpp:103
virtual void streamRLP(dev::RLPStream &s, bool for_signature) const
Definition: transaction.cpp:125
virtual void fromRLP(const dev::RLP &_rlp, bool verify_strict, const h256 &hash)
Definition: transaction.cpp:67
auto getGas() const
Definition: transaction.hpp:63
auto getChainID() const
Definition: transaction.hpp:66
const auto & getVRS() const
Definition: transaction.hpp:67
addr_t sender_
Definition: transaction.hpp:39
std::atomic_bool hash_initialized_
Definition: transaction.hpp:34
const auto & getGasPrice() const
Definition: transaction.hpp:62
std::atomic_bool sender_initialized_
Definition: transaction.hpp:37
std::optional< addr_t > receiver_
Definition: transaction.hpp:30
auto isZero() const
Definition: transaction.hpp:58
std::mutex sender_mu_
Definition: transaction.hpp:40
const trx_hash_t & getHash() const
Definition: transaction.cpp:92
gas_t gas_
Definition: transaction.hpp:28
bool is_zero_
Definition: transaction.hpp:35
const auto & getReceiver() const
Definition: transaction.hpp:65
trx_nonce_t nonce_
Definition: transaction.hpp:25
trx_hash_t hash_for_signature() const
Definition: transaction.cpp:154
dev::SignatureStruct vrs_
Definition: transaction.hpp:32