Created
May 24, 2017 11:12
-
-
Save smashkins/ef089dd754501c2548970e6a99411e7c to your computer and use it in GitHub Desktop.
Javascript Hello World Voting DApp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545")); | |
abi = JSON.parse('[{"constant":false,"inputs":[{"name":"candidate","type":"bytes32"}],"name":"totalVotesFor","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"candidate","type":"bytes32"}],"name":"validCandidate","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"votesReceived","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"x","type":"bytes32"}],"name":"bytes32ToString","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"candidateList","outputs":[{"name":"","type":"bytes32"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"candidate","type":"bytes32"}],"name":"voteForCandidate","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"contractOwner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"inputs":[{"name":"candidateNames","type":"bytes32[]"}],"payable":false,"type":"constructor"}]') | |
VotingContract = web3.eth.contract(abi); | |
// In your nodejs console, execute contractInstance.address to get the address at which the contract is deployed and change the line below to use your deployed address | |
contractInstance = VotingContract.at('0x2d093c77800f6c2c32a59ee718a793ad85f45527'); | |
candidates = {"Orlando": "candidate-1", "Ferrandelli": "candidate-2", "Trump": "candidate-3"} | |
function voteForCandidate(candidate) { | |
candidateName = $("#candidate").val(); | |
contractInstance.voteForCandidate(candidateName, {from: web3.eth.accounts[0]}, function() { | |
let div_id = candidates[candidateName]; | |
$("#" + div_id).html(contractInstance.totalVotesFor.call(candidateName).toString()); | |
}); | |
} | |
$(document).ready(function() { | |
candidateNames = Object.keys(candidates); | |
for (var i = 0; i < candidateNames.length; i++) { | |
let name = candidateNames[i]; | |
let val = contractInstance.totalVotesFor.call(name).toString() | |
$("#" + candidates[name]).html(val); | |
} | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment