Removing invalid transactions from queue

This commit is contained in:
Tomasz Drwięga
2016-03-17 12:17:20 +01:00
committed by arkpar
parent 5aed421fa3
commit 1f363b22fc
5 changed files with 45 additions and 9 deletions

View File

@@ -132,7 +132,20 @@ impl MinerService for Miner {
self.extra_data(),
transactions,
);
*self.sealing_block.lock().unwrap() = b;
match b {
None => {
*self.sealing_block.lock().unwrap() = None
},
Some((block, invalid_transactions)) => {
let mut queue = self.transaction_queue.lock().unwrap();
queue.remove_all(
&invalid_transactions.into_iter().collect::<Vec<H256>>(),
|a: &Address| chain.nonce(a)
);
*self.sealing_block.lock().unwrap() = Some(block)
}
}
}
fn sealing_block(&self, chain: &BlockChainClient) -> &Mutex<Option<ClosedBlock>> {