}
func (sm *SyncManager) handleBlockMsg(peer *peer, msg *BlockMessage) {
- sm.blockKeeper.processBlock(peer.ID(), msg.GetBlock())
+ block, err := msg.GetBlock()
+ if err != nil {
+ return
+ }
+ sm.blockKeeper.processBlock(peer.ID(), block)
}
func (sm *SyncManager) handleBlocksMsg(peer *peer, msg *BlocksMessage) {
}
//GetBlock get block from msg
-func (m *BlockMessage) GetBlock() *types.Block {
+func (m *BlockMessage) GetBlock() (*types.Block, error) {
block := &types.Block{
BlockHeader: types.BlockHeader{},
Transactions: []*types.Tx{},
}
- block.UnmarshalText(m.RawBlock)
- return block
+ if err := block.UnmarshalText(m.RawBlock); err != nil {
+ return nil, err
+ }
+ return block, nil
}
//String convert msg to string