From a308fff56322726fa2c7b88b0cdf1ed8af121efe Mon Sep 17 00:00:00 2001
From: qh11 <qh11@illinois.edu>
Date: Sun, 13 Feb 2022 15:39:32 -0600
Subject: [PATCH] Update worker.rs

---
 src/miner/worker.rs | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/miner/worker.rs b/src/miner/worker.rs
index ffaf26e..452439c 100644
--- a/src/miner/worker.rs
+++ b/src/miner/worker.rs
@@ -3,21 +3,26 @@ use log::{debug, info};
 use crate::types::block::Block;
 use crate::network::server::Handle as ServerHandle;
 use std::thread;
+use std::sync::{Arc, Mutex};
+use crate::Blockchain;
 
 #[derive(Clone)]
 pub struct Worker {
     server: ServerHandle,
     finished_block_chan: Receiver<Block>,
+    blockchain:Arc<Mutex<Blockchain>>
 }
 
 impl Worker {
     pub fn new(
         server: &ServerHandle,
         finished_block_chan: Receiver<Block>,
+        blockchain: &Arc<Mutex<Blockchain>>
     ) -> Self {
         Self {
             server: server.clone(),
             finished_block_chan,
+            blockchain: Arc::clone(blockchain)
         }
     }
 
@@ -35,6 +40,8 @@ impl Worker {
         loop {
             let _block = self.finished_block_chan.recv().expect("Receive finished block error");
             // TODO for student: insert this finished block to blockchain, and broadcast this block hash
+            let mut new_blockchain = self.blockchain.lock().unwrap();
+            new_blockchain.insert(&_block);
         }
     }
 }
-- 
GitLab