This file contains hidden or 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
require('babel-polyfill') | |
const html = require('html-webpack-plugin') | |
const path = require('path') | |
module.exports = { | |
entry: ['babel-polyfill', './src/index.js'], | |
output: { | |
filename: 'bundle.js', | |
path: path.join(__dirname, 'dist') | |
}, |
This file contains hidden or 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
pragma solidity 0.5.0; | |
contract Example { | |
uint256 counter; | |
modifier onlyOwner {} | |
constructor() {} | |
function doSomething() {} | |
} |
This file contains hidden or 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
const express = require('express') | |
const bodyParser = require('body-parser') | |
const path = require('path') | |
const app = express() | |
const http = require('http').createServer(app) | |
const io = require('socket.io')(http) | |
const ethereumjs = require('ethereumjs-abi') | |
const ethereumjsUtil = require('ethereumjs-util') | |
const port = 4000 |
This file contains hidden or 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
// On finish send the 2 latest messages which are contained in the last element. | |
socket.on('finish', () => { | |
let messages = games.slice(-1) | |
io.to(socket.id).emit('finish-2-messages', messages[0]) | |
}) |
This file contains hidden or 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
let activeDice = 0 | |
let game = {} | |
let isThisPlayer1 = false | |
let isThisPlayer2 = false | |
let sequence = 1 | |
start() | |
// In the start we get the initial data needed to get the contract address | |
async function start() { |
This file contains hidden or 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
body { | |
font-family: sans-serif; | |
} | |
.hidden { | |
display: none; | |
} | |
.main-container-game { | |
margin: auto; |
This file contains hidden or 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
<!DOCTYPE html> | |
<html lang="en" dir="ltr"> | |
<head> | |
<meta charset="utf-8"> | |
<link rel="stylesheet" href="game.css"> | |
<title>Dice ethereum game</title> | |
</head> | |
<body> | |
<div class="main-container-game"> | |
<h1>Ethereum Dice</h1> |
This file contains hidden or 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
pragma solidity 0.4.25; | |
contract Dice { | |
address public player1; | |
address public player2; | |
uint256 public player1Escrow; | |
uint256 public player2Escrow; | |
uint256 public player1Balance; | |
uint256 public player2Balance; |
This file contains hidden or 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
/// @notice To verify and save the player balance to distribute it later when the game is completed. The addressOfMessage is important to decide which balance is being updated | |
function verifyPlayerBalance(bytes playerMessage, uint256 playerCall, uint256 playerBet, uint256 playerBalance, uint256 playerNonce, uint256 playerSequence, address addressOfMessage) public { | |
require(player2 != address(0), '#1 The address of the player is invalid'); | |
require(playerMessage.length == 65, '#2 The length of the message is invalid'); | |
require(addressOfMessage == player1 || addressOfMessage == player2, '#3 You must use a valid address of one of the players'); | |
uint256 escrowToUse = player1Escrow; | |
if(addressOfMessage == player2) escrowToUse = player2Escrow; | |
// Recreate the signed message for the first player to verify that the parameters are correct |
This file contains hidden or 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
pragma solidity 0.4.25; | |
contract Dice { | |
address public player1; | |
address public player2; | |
uint256 public player1Escrow; | |
uint256 public player2Escrow; | |
constructor () public payable { | |
require(msg.value > 0); |