Bitcoin Forum
May 10, 2024, 09:59:07 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Warning: One or more bitcointalk.org users have reported that they believe that the creator of this topic displays some red flags which make them high-risk. (Login to see the detailed trust ratings.) While the bitcointalk.org administration does not verify such claims, you should proceed with extreme caution.
Pages: [1]
  Print  
Author Topic: P2P eth betting smart contract and many more coming soon ...  (Read 149 times)
smartcontracts100 (OP)
Member
**
Offline Offline

Activity: 172
Merit: 19


View Profile WWW
March 23, 2020, 05:07:33 PM
Last edit: March 23, 2020, 05:21:07 PM by smartcontracts100
 #1

This is a simple p2p betting eth smart contract i just did now

If you like me to create more gambling smart contracts please donate at 0xA01F32b1898Ea5c0079997D28bF00D441Ad0883c ,or contact me via PM for custom smart contracts for eth or tokens (erc20 etc) + safemath + security check + bug fixes .

Will post more smart contracts in time ... also post your gambling smart contracts ideas here if you want them to become real.

Thank You!

Code:
pragma solidity ^0.4.24;

contract P2PBettingContrat {

    address public thejudge;
    address public zbetter;
    uint public betwinnings;
    uint public betwinningsfee;
    
    mapping (address => uint) public thebetamount;
    mapping (address => address) public thebetjudge;
    mapping (address => address) public better;
    mapping (address => address) public eventmaker;
    mapping (address => uint) public isbetactive;
    mapping (address => uint) public betwinlose;
    mapping (address => uint) public thejudgefee;
    
    function CreateEvent(uint betamount,address persontobetagainst,address betjudge,uint judgefee) public payable {
       require(betamount == msg.value);
       require(persontobetagainst != msg.sender);
       require(betjudge != msg.sender || betjudge != persontobetagainst);
       require(isbetactive[msg.sender] == 0);
       thebetamount[msg.sender] = msg.value;
       thebetjudge[msg.sender] = betjudge;
       better[msg.sender] = persontobetagainst;
       isbetactive[msg.sender] = 0;
       eventmaker[msg.sender] = msg.sender;
       betwinlose[msg.sender] = 1;
       thejudgefee[msg.sender] = judgefee;
      
    }

    function BetonEvent(address eventcreator) public payable  {
       require(isbetactive[eventcreator] == 0);
       require(better[msg.sender] == msg.sender);
       require(thebetamount[eventcreator] == msg.value);
       isbetactive[eventcreator] == 1;
    }


    function EventCreatorCancelsBet(address eventcreator) external {
        require(isbetactive[eventcreator] == 0);
        require(eventmaker[eventcreator] == msg.sender);
        eventcreator.transfer(thebetamount[eventcreator]);
    }


    function JudgeDecidedBetWinner(uint winner,address eventcreator) external {
        require(isbetactive[eventcreator] == 1);
        require(thebetjudge[eventcreator] == msg.sender);
        betwinnings = thebetamount[eventcreator] + thebetamount[eventcreator];
        betwinningsfee = betwinnings - thejudgefee[eventcreator];
        thejudge = thebetjudge[eventcreator];
        zbetter = better[eventcreator];
        if(betwinlose[eventcreator] == winner){
            eventcreator.transfer(betwinningsfee);
            thejudge.transfer(thejudgefee[eventcreator]);
        }else{
            zbetter.transfer(betwinningsfee);
            thejudge.transfer(thejudgefee[eventcreator]);
        }
    }



}

Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!