code: def approve(self, template_address, account):
          
          try:
              approved = self._keeper.template_manager.approve_template(template_address, account)
              return approved
          except ValueError as err:
              template_values = self._keeper.template_manager.get_template(template_address)
              if not template_values:
                  logger.warning(f'Approve template failed: {err}')
                  return False
  
              if template_values.state == 1:
                  logger.warning(f'Approve template failed, this template is '
                                 f'currently in "proposed" state.')
                  return False
  
              if template_values.state == 3:
                  logger.warning(f'Approve template failed, this template appears to be '
                                 f'revoked.')
                  return False
  
              if template_values.state == 2:
                  return True
  
              return False
docs: Approve a template already proposed. The account needs to be owner of the templateManager
          contract to be able of approve the template.
  
          :param template_address: Address of the template contract, str
          :param account: account approving the template, Account
          :return: bool