func (c *Casper) prevCheckpointHashByPrevHash(prevBlockHash *bc.Hash) (*bc.Hash, error) {
prevHash := prevBlockHash
for {
- if data, ok := c.prevCheckpointCache.Get(*prevHash); ok {
- c.prevCheckpointCache.Add(*prevBlockHash, data)
- return data.(*bc.Hash), nil
- }
-
prevBlock, err := c.store.GetBlockHeader(prevHash)
if err != nil {
return nil, err
return prevHash, nil
}
+ if data, ok := c.prevCheckpointCache.Get(*prevHash); ok {
+ c.prevCheckpointCache.Add(*prevBlockHash, data)
+ return data.(*bc.Hash), nil
+ }
+
prevHash = &prevBlock.PreviousBlockHash
}
}