code: def run_election_approve(args, bigchain):
      
  
      key = load_node_key(args.sk)
      tx = bigchain.get_transaction(args.election_id)
      voting_powers = [v.amount for v in tx.outputs if key.public_key in v.public_keys]
      if len(voting_powers) > 0:
          voting_power = voting_powers[0]
      else:
          logger.error('The key you provided does not match any of the eligible voters in this election.')
          return False
  
      inputs = [i for i in tx.to_inputs() if key.public_key in i.owners_before]
      election_pub_key = ValidatorElection.to_public_key(tx.id)
      approval = Vote.generate(inputs,
                               [([election_pub_key], voting_power)],
                               tx.id).sign([key.private_key])
      approval.validate(bigchain)
  
      resp = bigchain.write_transaction(approval, 'broadcast_tx_commit')
  
      if resp == (202, ''):
          logger.info('[SUCCESS] Your vote has been submitted')
          return approval.id
      else:
          logger.error('Failed to commit vote')
          return False
docs: Approve an election
  
      :param args: dict
          args = {
          'election_id': the election_id of the election (str)
          'sk': the path to the private key of the signer (str)
          }
      :param bigchain: an instance of BigchainDB
      :return: success log message or `False` in case of error