14namespace final_chain {
41 TransactionStatus insert(std::shared_ptr<Transaction>&& transaction,
bool proposable, uint64_t last_block_number = 0);
58 std::shared_ptr<Transaction>
get(
const trx_hash_t& hash)
const;
167 std::unordered_map<taraxa::trx_hash_t, std::pair<uint64_t, taraxa::SharedTransaction>>::iterator
removeTransaction(
168 std::unordered_map<
taraxa::trx_hash_t, std::pair<uint64_t, taraxa::SharedTransaction>>::iterator transaction);
std::chrono::system_clock::time_point transaction_overflow_time_
Definition transaction_queue.hpp:186
void purge()
Removes any transactions that are no longer proposable.
Definition transaction_queue.cpp:239
TransactionStatus insert(std::shared_ptr< Transaction > &&transaction, bool proposable, uint64_t last_block_number=0)
insert a transaction into the queue, sorted by priority
Definition transaction_queue.cpp:152
val_t getMinGasPriceForBlockInclusion(uint64_t limit) const
Returns minimum gas price needed for transaction to be included in the next proposed dag block.
Definition transaction_queue.cpp:271
void addTransaction(const SharedTransaction &transaction, bool proposable, uint64_t last_block_number=0)
add transaction to queue
Definition transaction_queue.cpp:19
std::unordered_map< trx_hash_t, std::pair< uint64_t, std::shared_ptr< Transaction > > > non_proposable_transactions_
Definition transaction_queue.hpp:181
ExpirationCache< trx_hash_t > known_txs_
Definition transaction_queue.hpp:183
bool nonProposableTransactionsOverTheLimit() const
return true if non proposable transactions are over the limit
Definition transaction_queue.cpp:263
bool contains(const trx_hash_t &hash) const
returns true/false if the transaction is in the queue
Definition transaction_queue.cpp:62
bool erase(const SharedTransaction &transaction)
remove transaction from queue
Definition transaction_queue.cpp:132
const size_t kNonProposableTransactionsPeriodExpiryLimit
Definition transaction_queue.hpp:196
const size_t kMaxSize
Definition transaction_queue.hpp:208
std::map< val_t, uint64_t, std::greater< val_t > > queue_transactions_gas_prices_
Definition transaction_queue.hpp:177
std::vector< std::shared_ptr< Transaction > > getOrderedTransactions(uint64_t count) const
returns up to the number of requested transaction sorted by priority. This call actually sorts the tr...
Definition transaction_queue.cpp:79
std::shared_ptr< final_chain::FinalChain > final_chain_
Definition transaction_queue.hpp:216
bool isTransactionKnown(const trx_hash_t &trx_hash) const
Definition transaction_queue.cpp:269
const size_t kSingleAccountTransactionsLimitPercentage
Definition transaction_queue.hpp:202
std::vector< SharedTransactions > getAllTransactions() const
returns all transactions grouped by transactions author
Definition transaction_queue.cpp:118
void blockFinalized(uint64_t block_number)
Invoked when block finalized in final chain.
Definition transaction_queue.cpp:228
const std::chrono::seconds kTransactionOverflowTimeLimit
Definition transaction_queue.hpp:193
bool transactionsDropped() const
Have transactions been recently dropped due to queue reaching max size This call is thread-safe.
Definition transaction_queue.hpp:125
bool removeTransaction(const SharedTransaction &transaction, bool proposable)
remove transaction from queue
Definition transaction_queue.cpp:35
size_t size() const
returns size of priority queue
Definition transaction_queue.cpp:17
size_t data_size_
Definition transaction_queue.hpp:189
const size_t kMaxDataSize
Definition transaction_queue.hpp:211
const size_t kMaxSingleAccountTransactionsSize
Definition transaction_queue.hpp:214
std::unordered_map< addr_t, std::map< val_t, std::shared_ptr< Transaction > > > account_nonce_transactions_
Definition transaction_queue.hpp:171
const size_t kNonProposableTransactionsLimitPercentage
Definition transaction_queue.hpp:199
std::shared_ptr< Transaction > get(const trx_hash_t &hash) const
returns the transaction or null
Definition transaction_queue.cpp:66
void markTransactionKnown(const trx_hash_t &trx_hash)
Marks transaction as known (was successfully pushed into the tx pool) This call is thread-safe.
Definition transaction_queue.cpp:267
const size_t kNonProposableTransactionsMaxSize
Definition transaction_queue.hpp:205
std::unordered_map< trx_hash_t, std::shared_ptr< Transaction > > queue_transactions_
Definition transaction_queue.hpp:174
TransactionQueue keeps transactions in memory sorted by priority to be included in a proposed DAG blo...
Definition transaction_queue.hpp:30
TransactionStatus
TransactionStatus enum class defines current transaction status.
Definition transaction_manager.hpp:23
std::shared_ptr< Transaction > SharedTransaction
Definition transaction.hpp:84
constexpr uint32_t kMinTransactionPoolSize
Definition constants.hpp:30
dev::u256 val_t
Definition types.hpp:48