Pots of Ether round verifier

External script to verify potsofether.com round hashes

HTML

<script src="//code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<link rel="stylesheet" href="//stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script>
<script src="//stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jsSHA/2.3.1/sha256.js"></script>
<div class="container">
  <h2><img src="https://potsofether.com/img/logo-navbar-b.png" class="img-responsive" style="max-height:75px;" /> Round Hash Verifier</h2>
  <hr>
  <div class="row">
    <div class="col-md-10">
      <div class="form-horizontal">
        <div class="form-group">
          <label for="secret">Server secret:</label>
          <input type="text" class="form-control" id="secret">
        </div>
        <div class="form-group">
          <label for="tickets">Total number of tickets:</label>
          <input type="number" class="form-control" id="tickets" value="0">
        </div>
        <br>
        <div class="form-group">
          <button class="btn btn-primary" id="submit">Verify round</button>
        </div>
      </div>
    </div>
  </div>

  <div class="row">
    <div class="col-md-12">
      <h2>Results</h2>
      <hr>
      <p id="rndPercent"></p>
      <p id="winningTicket"></p>
      <p id="hashedSecret"></p>
    </div>
  </div>
</div>

JavaScript

$(document).ready(function() {
  $('#submit').on('click', function() {
    var secret = $('#secret').val();
    var tickets = $('#tickets').val();
    var rndPercent = getPercent(secret, tickets);
    var winningTicket = getWinningTicket(rndPercent, tickets);
    $('#rndPercent').text("Random percentage: " + rndPercent + "%");
    $('#winningTicket').text('Winning ticket was ' + winningTicket + " out of " + tickets + " tickets");
    $('#hashedSecret').text('Hashed secret is ' + hash_secret(secret));
  });
});

function getPercent(secret, tickets) {
  var shaObj, hash, fiveChar, rndPercent;
  shaObj = new jsSHA("SHA-256", "TEXT");
  shaObj.update(secret + tickets);
  hash = shaObj.getHash("HEX");
  fiveChar = parseInt(hash.substr(0, 5), 16).toString(10); // convert HEX -> DECIMAL the first 5 chars from the hash
  rndPercent = fiveChar % (10000) / 100;
  return rndPercent;
}

function getWinningTicket(rndPercent, tickets) {
  return parseInt(tickets * rndPercent / 100);
}

function hash_secret(secret) {
  var shaObj = new jsSHA("SHA-256", "TEXT");
  shaObj.update(secret);
  return shaObj.getHash("HEX");
}