code: func (bc *BlockChain) HasBlockAndState(hash common.Hash, number uint64) bool {
  	// Check first that the block itself is known
  	block := bc.GetBlock(hash, number)
  	if block == nil {
  		return false
  	}
  	return bc.HasState(block.Root())
  }
docs: // HasBlockAndState checks if a block and associated state trie is fully present
  // in the database or not, caching it if present.