(blockNum uint32)
| 169 | } |
| 170 | |
| 171 | func (self *ChainStore) getBlock(blockNum uint32) (*Block, error) { |
| 172 | if blk, present := self.pendingBlocks[blockNum]; present { |
| 173 | return blk.block, nil |
| 174 | } |
| 175 | block, err := self.db.GetBlockByHeight(uint32(blockNum)) |
| 176 | if err != nil { |
| 177 | return nil, err |
| 178 | } |
| 179 | prevMerkleRoot := common.Uint256{} |
| 180 | if blockNum > 1 { |
| 181 | prevMerkleRoot, err = self.db.GetStateMerkleRoot(blockNum - 1) |
| 182 | if err != nil { |
| 183 | log.Errorf("GetStateMerkleRoot blockNum:%d, error :%s", blockNum, err) |
| 184 | return nil, fmt.Errorf("GetStateMerkleRoot blockNum:%d, error :%s", blockNum, err) |
| 185 | } |
| 186 | } |
| 187 | return initVbftBlock(block, prevMerkleRoot) |
| 188 | } |
no test coverage detected