light txq skeleton
This commit is contained in:
parent
0246d5c734
commit
b3440babe3
@ -36,6 +36,7 @@ pub mod client;
|
|||||||
pub mod cht;
|
pub mod cht;
|
||||||
pub mod net;
|
pub mod net;
|
||||||
pub mod on_demand;
|
pub mod on_demand;
|
||||||
|
pub mod transaction_queue;
|
||||||
|
|
||||||
#[cfg(not(feature = "ipc"))]
|
#[cfg(not(feature = "ipc"))]
|
||||||
pub mod provider;
|
pub mod provider;
|
||||||
|
55
ethcore/light/src/transaction_queue.rs
Normal file
55
ethcore/light/src/transaction_queue.rs
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
// Copyright 2015-2017 Parity Technologies (UK) Ltd.
|
||||||
|
// This file is part of Parity.
|
||||||
|
|
||||||
|
// Parity is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
|
||||||
|
// Parity is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
|
||||||
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with Parity. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
//! Light Transaction Queue.
|
||||||
|
//!
|
||||||
|
//! Manages local transactions,
|
||||||
|
//! but stores all local transactions, removing only on invalidated nonce.
|
||||||
|
//!
|
||||||
|
//! Under the assumption that light nodes will have a relatively limited set of
|
||||||
|
//! accounts for which they create transactions, this queue is structured in an
|
||||||
|
//! address-wise manner.
|
||||||
|
|
||||||
|
use ethcore::transaction::PendingTransaction;
|
||||||
|
use util::{Address, U256};
|
||||||
|
|
||||||
|
/// Light transaction queue. See module docs for more details.
|
||||||
|
pub struct TransactionQueue;
|
||||||
|
|
||||||
|
impl TransactionQueue {
|
||||||
|
/// Insert a pending transaction to be queued.
|
||||||
|
pub fn insert(&mut self, tx: PendingTransaction) {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Get the next nonce for a given address based on what's within the queue.
|
||||||
|
/// If the address has no queued transactions
|
||||||
|
pub fn next_nonce(&mut self, address: &Address) -> Option<U256> {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Get pending transactions, ready to be propagated.
|
||||||
|
/// `best_block_number` and `best_block_timestamp` are used to filter out conditionally
|
||||||
|
/// propagated transactions.
|
||||||
|
pub fn pending_transactions(&self, best_block_number: u64, best_block_timestamp: u64) -> Vec<PendingTransaction> {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Cull out all transactions by the given address which are invalidated by the given nonce.
|
||||||
|
pub fn cull(&mut self, address: Address, last_nonce: U256) {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user