running into some issues with balance of contract owner
// SPDX-License-Identifier: MIT
pragma solidity 0.5.12;
contract FiftyFiftyBettingExchange {
enum FlipResult { Heads, Tails}
address public owner;
uint public balance;
constructor() public {
owner = msg.sender;
balance = msg.sender.balance;
}
modifier restricted() {
if (msg.sender == owner) _;
}
function randomFlipResult() private view returns (FlipResult){
return (now % 2 == 0) ? FlipResult.Heads : FlipResult.Tails;
}
function headsOrTails(FlipResult guess) public payable returns (FlipResult){
require(guess == FlipResult.Heads || guess == FlipResult.Tails, "You must make a guess");
require(msg.value > 0, "You must bet more than zero");
require(balance <= msg.value, "Contract cannot accept a bet this size right now");
//perform coin Flip
FlipResult flipResult = randomFlipResult();
if(guess == flipResult){
//move from owner acc to sender
balance -= msg.value;
msg.sender.transfer(msg.value*2);
}else{
balance += msg.value;
}
return flipResult;
}
}