Skip to content

Instantly share code, notes, and snippets.

@ec2
Created January 27, 2017 01:23
Show Gist options
  • Save ec2/f050ed01b3de2ff788f40273399d24c1 to your computer and use it in GitHub Desktop.
Save ec2/f050ed01b3de2ff788f40273399d24c1 to your computer and use it in GitHub Desktop.
Meetup 1 Janky code
<h1>Voting App!</h1>
<h4> Your Address is: </h4>
<p id = accountAddr></p>
<input type="text" id="newPersonField" placeholder="New Person Addr"></input>
<button id="addPeopleButton">Add Person</button>
<br>
<br>
<h4> Add new proposal </h4>
<input type="text" id="newproposalfield" placeholder="New Prop Name"></input>
<button id="newproposalbutton">New Proposal</button>
<br>
<br>
<h4> Current Proposal </h4>
<p id = "proposalname"></p>
<table id="votetable" border="black">
<tr>
<th>Monday</th>
<th>Tuesday</th>
<th>Wednesday</th>
<th>Thursday</th>
<th>Friday</th>
</tr>
<tr>
<td id="day1"></td>
<td id="day2"></td>
<td id="day3"></td>
<td id="day4"></td>
<td id="day5"></td>
</tr>
</table>
<button id="loadProp">Load Proposal</button>
<input type="text" id="loadPropID" placeholder="Enter proposal id"></input>
<div id="buttons">
<button id="button1">Monday</button>
<button id="button2">Tuesday</button>
<button id="button3">Wednesday</button>
<button id="button4">Thursday</button>
<button id="button5">Friday</button>
</div>
<script type="text/javascript" src="web3.min.js"></script>
<script type="text/javascript">
var accounts;
var bytecode = "606060405234610000575b33600060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003819055505b5b610b59806100bc6000396000f300606060405236156100ad576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063013cf08b146100b25780630b1ca49a146101885780632e4176cf146101bb578063429b92bf1461020a5780634f24186a146102ae578063a3ec138d14610305578063b384abef14610350578063c08cc02d14610376578063ca6d56dc14610399578063d8ad8261146103cc578063de2e19a0146103ef575b610000565b34610000576100cd6004808035906020019091905050610429565b60405180806020018781526020018681526020018581526020018481526020018381526020018281038252888181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156101745780601f1061014957610100808354040283529160200191610174565b820191906000526020600020905b81548152906001019060200180831161015757829003601f168201915b505097505050505050505060405180910390f35b34610000576101b9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610471565b005b34610000576101c861053c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34610000576102256004808035906020019091905050610562565b6040518080602001828103825283818151815260200191508051906020019080838360008314610274575b80518252602083111561027457602082019150602081019050602083039250610250565b505050905090810190601f1680156102a05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3461000057610303600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610635565b005b3461000057610336600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061084f565b604051808215151515815260200191505060405180910390f35b3461000057610374600480803590602001909190803590602001909190505061086f565b005b346100005761038361091c565b6040518082815260200191505060405180910390f35b34610000576103ca600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061092a565b005b34610000576103d96109f4565b6040518082815260200191505060405180910390f35b346100005761041360048080359060200190919080359060200190919050506109ff565b6040518082815260200191505060405180910390f35b600281815481101561000057906000526020600020906006020160005b9150905080600001908060010154908060020154908060030154908060040154908060050154905086565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156104cd57610000565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600360008154809291906001900391905055505b50565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6020604051908101604052806000815250600282815481101561000057906000526020600020906006020160005b506000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106285780601f106105fd57610100808354040283529160200191610628565b820191906000526020600020905b81548152906001019060200180831161060b57829003601f168201915b505050505090505b919050565b60c06040519081016040528060206040519081016040528060008152508152602001600081526020016000815260200160008152602001600081526020016000815250818160000181905250600280548060010182818154818355818115116107545760060281600602836000526020600020918201910161075391905b8082111561074f57600060008201805460018160011615610100020316600290046000825580601f106106e6575061071d565b601f01602090049060005260206000209081019061071c91905b80821115610718576000816000905550600101610700565b5090565b5b5060018201600090556002820160009055600382016000905560048201600090556005820160009055506006016106b3565b5090565b5b505050916000526020600020906006020160005b8390919091506000820151816000019080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106107c057805160ff19168380011785556107ee565b828001600101855582156107ee579182015b828111156107ed5782518255916020019190600101906107d2565b5b50905061081391905b8082111561080f5760008160009055506001016107f7565b5090565b50506020820151816001015560408201518160020155606082015181600301556080820151816004015560a082015181600501555050505b5050565b60016020528060005260406000206000915054906101000a900460ff1681565b60001515600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156108cd57610000565b6001600283815481101561000057906000526020600020906006020160005b506001015401600283815481101561000057906000526020600020906006020160005b50600101819055505b5050565b600060028054905090505b90565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561098657610000565b6001600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506003600081548092919060010191905055505b50565b600060035490505b90565b60006000600284815481101561000057906000526020600020906006020160005b5090506001831415610a5557600284815481101561000057906000526020600020906006020160005b50600101549150610b26565b6002831415610a8757600284815481101561000057906000526020600020906006020160005b50600201549150610b26565b6003831415610ab957600284815481101561000057906000526020600020906006020160005b50600301549150610b26565b6004831415610aeb57600284815481101561000057906000526020600020906006020160005b50600401549150610b26565b6005831415610b1d57600284815481101561000057906000526020600020906006020160005b50600101549150610b26565b5b5b5b5b600091505b50929150505600a165627a7a72305820f3b75efc09023529ee7795717410312d212cb9e886998382940dfca4add05ea00029";
var proposalArray = [];
var contractABI = [{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"proposals","outputs":[{"name":"name","type":"string"},{"name":"monday","type":"uint256"},{"name":"tuesday","type":"uint256"},{"name":"wednesday","type":"uint256"},{"name":"thursday","type":"uint256"},{"name":"friday","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeMember","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"chairperson","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"proposalID","type":"uint256"}],"name":"getProposalName","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"string"}],"name":"newProposal","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"voters","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"proposalID","type":"uint256"},{"name":"day","type":"uint256"}],"name":"vote","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getProposalCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addMember","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numOfPeople","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"proposalID","type":"uint256"},{"name":"day","type":"uint256"}],"name":"getVoteCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"inputs":[],"payable":false,"type":"constructor"}];
var VoteAppInstance;
var el = function(id){ return document.querySelector(id); };
var web3;
setTimeout(load, 3000);
function load (){
if (typeof web3 !== 'undefined' && typeof web3.currentProvider !== 'undefined') {
web3 = new Web3(web3.currentProvider);
accounts = web3.eth.accounts;
el('#accountAddr').innerHTML = accounts[0];
VoteAppInstance = web3.eth.contract(contractABI).at("0x5cf571e60B66B78f5070eF1b53ADEC6D0e1CB93A");
} else {
web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
accounts = web3.eth.accounts;
el('#accountAddr').innerHTML = accounts[0];
VoteAppInstance = web3.eth.contract(contractABI).at("0x5cf571e60B66B78f5070eF1b53ADEC6D0e1CB93A");
}
}
el('#loadProp').addEventListener('click', function(){
var number = el('#loadPropID').value;
console.log("load ", number);
VoteAppInstance.getProposalName(parseInt(number), (err, res) =>{
el('#proposalname').innerHTML = res;
});
for(let i = 1 ; i <= 5 ; i++){
var day = VoteAppInstance.getVoteCount(parseInt(number), parseInt(i), (err, res) => {
el(`#day${i}`).innerHTML = res;
});
}
});
el('#addPeopleButton').addEventListener('click',function(){
VoteAppInstance.addMember( el('#newPersonField').value, {from: accounts[0]}, (err, res) => {
if(err){
console.log(err);
} else {
console.log("someone added ", res);
}
})
})
el('#newproposalbutton').addEventListener('click',function(){
VoteAppInstance.newProposal( el('#newproposalfield').value, {from: accounts[0]}, (err, res) => {
if(err){
console.log(err);
} else {
console.log("new prop added ", res);
}
})
})
el('#button1').addEventListener('click', function(){
var number = el('#loadPropID').value;
VoteAppInstance.vote(parseInt(number), 1, {from: accounts[0]}, (err, res) =>{
if(err){
console.log("VOTE ERROR");
}else {
alert("You voted Monday");
}
});
});
el('#button2').addEventListener('click', function(){
console.log("Tues");
});
el('#button3').addEventListener('click', function(){
console.log("Wed");
});
el('#button4').addEventListener('click', function(){
console.log("Thurs");
});
el('#button5').addEventListener('click', function(){
console.log("Fri");
});
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment