diff --git a/ethereum.go b/ethereum.go index db66c3ce7..74e47d7bf 100644 --- a/ethereum.go +++ b/ethereum.go @@ -60,7 +60,7 @@ func New() (*Ethereum, error) { } ethereum.TxPool = ethchain.NewTxPool() ethereum.TxPool.Speaker = ethereum - ethereum.BlockManager = ethchain.NewBlockManager() + ethereum.BlockManager = ethchain.NewBlockManager(ethereum) ethereum.TxPool.BlockManager = ethereum.BlockManager ethereum.BlockManager.TransactionPool = ethereum.TxPool diff --git a/peer.go b/peer.go index 4f799e890..afbe728fe 100644 --- a/peer.go +++ b/peer.go @@ -128,7 +128,7 @@ out: p.lastSend = time.Now() case <-tickleTimer.C: - p.writeMessage(ðwire.Msg{Type: ethwire.MsgPingTy}) + p.writeMessage(ethwire.NewMessage(ethwire.MsgPingTy, "")) // Break out of the for loop if a quit message is posted case <-p.quit: @@ -170,12 +170,12 @@ out: // Version message p.handleHandshake(msg) case ethwire.MsgBlockTy: - /* - err := p.ethereum.BlockManager.ProcessBlock(ethchain.NewBlock(msg.Data)) - if err != nil { - log.Println(err) - } - */ + block := ethchain.NewBlockFromRlpValue(msg.Data.Get(0)) + block.MakeContracts() + err := p.ethereum.BlockManager.ProcessBlock(block) + if err != nil { + log.Println(err) + } case ethwire.MsgTxTy: //p.ethereum.TxPool.QueueTransaction(ethchain.NewTransactionFromData(msg.Data)) p.ethereum.TxPool.QueueTransaction(ethchain.NewTransactionFromRlpValue(msg.Data.Get(0))) @@ -203,7 +203,7 @@ out: } case ethwire.MsgPingTy: // Respond back with pong - p.QueueMessage(ðwire.Msg{Type: ethwire.MsgPongTy}) + p.QueueMessage(ethwire.NewMessage(ethwire.MsgPongTy, "")) case ethwire.MsgPongTy: p.lastPong = time.Now().Unix() }