mirror of
https://github.com/miky-kr5/CEIDEC-Pong-Web.git
synced 2023-01-29 18:47:06 +00:00
Now with 100% more Blockchain!
This commit is contained in:
78
docs/js/eth.js
Normal file
78
docs/js/eth.js
Normal file
@@ -0,0 +1,78 @@
|
||||
myWeb3 = null;
|
||||
myWeb3Provider = null;
|
||||
pong = null;
|
||||
myAccount = null;
|
||||
|
||||
function canIPlayTheGame() {
|
||||
pong.deployed().then(function(instance) {
|
||||
return instance.play({from: myAccount, value: web3.toWei(1, "ether"), gas: 500000});
|
||||
}).then(function(result) {
|
||||
if (result.logs[0].args.player === myAccount) {
|
||||
$('#can_play').text(myAccount + ' can play the game!');
|
||||
getTimesPlayed();
|
||||
playTheGame();
|
||||
} else {
|
||||
alert("Whoops! An error ocurred.\nThanks for your money, though :P");
|
||||
}
|
||||
}).catch(function(error) {
|
||||
console.error(error);
|
||||
});
|
||||
}
|
||||
|
||||
function loadBalance() {
|
||||
myWeb3.eth.getCoinbase(function(err, account) {
|
||||
if (err === null) {
|
||||
myAccount = account;
|
||||
myWeb3.eth.getBalance(account, function(err, balance) {
|
||||
if (err === null) {
|
||||
$('#balance').text(myWeb3.fromWei(balance, "ether") + " ETH");
|
||||
$('#can_play').text(myAccount + " can't play the game... so sad!");
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function getTimesPlayed() {
|
||||
pong.deployed().then(function(instance) {
|
||||
return instance.howManytimesPlayed();
|
||||
}).then(function(timesPlayed) {
|
||||
$('#times_played').text("The game has been played " + timesPlayed.toNumber() + " times!");
|
||||
}).catch(function(error) {
|
||||
console.error(error.message);
|
||||
});
|
||||
}
|
||||
|
||||
function initWeb3() {
|
||||
// Initialize web3
|
||||
if (typeof web3 !== 'undefined') {
|
||||
// Reuse the provider of the web3 object injected by Metamask
|
||||
console.log("Using injected web3 provider");
|
||||
myWeb3Provider = web3.currentProvider;
|
||||
} else {
|
||||
// Create a new provider and plug it directed in our local node
|
||||
console.log("Creating new web3 provider");
|
||||
myWeb3Provider = new Web3.providers.HttpProvider('http://localhost:7545');
|
||||
}
|
||||
myWeb3 = new Web3(myWeb3Provider);
|
||||
|
||||
$.getJSON('Pong.json', function(pongArtifact) {
|
||||
// Get the contract artifact file and use it to instantiate a truffle contract abstraction
|
||||
pong = TruffleContract(pongArtifact);
|
||||
// Set the provider for our contract
|
||||
pong.setProvider(myWeb3Provider);
|
||||
|
||||
// update UI
|
||||
loadBalance();
|
||||
getTimesPlayed();
|
||||
|
||||
// Register call and listen for events.
|
||||
ethCallback = canIPlayTheGame;
|
||||
});
|
||||
}
|
||||
|
||||
$(function() {
|
||||
$(window).load(function() {
|
||||
initWeb3();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user