ETH Price: $3,229.71 (-0.39%)

Contract

0x6E4382F198979A598DC5CbEf188486CE9510ecb7
 

Overview

ETH Balance

69 wei

Eth Value

Less Than $0.01 (@ $3,229.71/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Ether Spin57586032018-06-09 11:06:352408 days ago1528542395IN
0x6E4382F1...E9510ecb7
0.01 ETH0.002210
Ether Spin57586022018-06-09 11:06:192408 days ago1528542379IN
0x6E4382F1...E9510ecb7
0.01 ETH0.002210
Sell57556392018-06-08 22:07:382409 days ago1528495658IN
0x6E4382F1...E9510ecb7
0 ETH0.0004525510
Sell57556362018-06-08 22:06:452409 days ago1528495605IN
0x6E4382F1...E9510ecb7
0 ETH0.0003718312
Sell57556342018-06-08 22:06:072409 days ago1528495567IN
0x6E4382F1...E9510ecb7
0 ETH0.000270766
Ether Spin57555992018-06-08 21:57:232409 days ago1528495043IN
0x6E4382F1...E9510ecb7
0.01 ETH0.002210
Ether Spin57555962018-06-08 21:57:132409 days ago1528495033IN
0x6E4382F1...E9510ecb7
0.01 ETH0.002210
Ether Spin57555942018-06-08 21:56:232409 days ago1528494983IN
0x6E4382F1...E9510ecb7
0.01 ETH0.002210
Ether Spin57555932018-06-08 21:55:502409 days ago1528494950IN
0x6E4382F1...E9510ecb7
0.01 ETH0.002210
Ether Spin57555912018-06-08 21:55:412409 days ago1528494941IN
0x6E4382F1...E9510ecb7
0.01 ETH0.002210
Ether Spin57555882018-06-08 21:55:032409 days ago1528494903IN
0x6E4382F1...E9510ecb7
0.01 ETH0.002210
Ether Spin57555872018-06-08 21:55:002409 days ago1528494900IN
0x6E4382F1...E9510ecb7
0.01 ETH0.002210
Ether Spin57555862018-06-08 21:54:382409 days ago1528494878IN
0x6E4382F1...E9510ecb7
0.01 ETH0.002210
Ether Spin57555862018-06-08 21:54:382409 days ago1528494878IN
0x6E4382F1...E9510ecb7
0.01 ETH0.002210
Ether Spin57555852018-06-08 21:54:212409 days ago1528494861IN
0x6E4382F1...E9510ecb7
0.01 ETH0.002210
Ether Spin57555842018-06-08 21:53:272409 days ago1528494807IN
0x6E4382F1...E9510ecb7
0.01 ETH0.002210
Ether Spin57555842018-06-08 21:53:272409 days ago1528494807IN
0x6E4382F1...E9510ecb7
0.01 ETH0.002210
Ether Spin57555842018-06-08 21:53:272409 days ago1528494807IN
0x6E4382F1...E9510ecb7
0.01 ETH0.002210
Ether Spin57555832018-06-08 21:52:562409 days ago1528494776IN
0x6E4382F1...E9510ecb7
0.01 ETH0.002210
Ether Spin57555812018-06-08 21:52:082409 days ago1528494728IN
0x6E4382F1...E9510ecb7
0.01 ETH0.002210
Ether Spin57555792018-06-08 21:51:422409 days ago1528494702IN
0x6E4382F1...E9510ecb7
0.01 ETH0.002210
Ether Spin57555772018-06-08 21:51:062409 days ago1528494666IN
0x6E4382F1...E9510ecb7
0.01 ETH0.002210
Ether Spin57555762018-06-08 21:50:592409 days ago1528494659IN
0x6E4382F1...E9510ecb7
0.01 ETH0.002210
Ether Spin57555752018-06-08 21:50:412409 days ago1528494641IN
0x6E4382F1...E9510ecb7
0.01 ETH0.002210
Ether Spin57555742018-06-08 21:50:242409 days ago1528494624IN
0x6E4382F1...E9510ecb7
0.01 ETH0.002210
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
57556392018-06-08 22:07:382409 days ago1528495658
0x6E4382F1...E9510ecb7
0.00076959 ETH
57556342018-06-08 22:06:072409 days ago1528495567
0x6E4382F1...E9510ecb7
0.006 ETH
57554922018-06-08 21:31:332409 days ago1528493493
0x6E4382F1...E9510ecb7
0.07 ETH
57554862018-06-08 21:30:082409 days ago1528493408
0x6E4382F1...E9510ecb7
0.006 ETH
57554762018-06-08 21:28:232409 days ago1528493303
0x6E4382F1...E9510ecb7
0.052 ETH
57554702018-06-08 21:26:482409 days ago1528493208
0x6E4382F1...E9510ecb7
0.8 ETH
57554672018-06-08 21:26:062409 days ago1528493166
0x6E4382F1...E9510ecb7
0.05 ETH
57554672018-06-08 21:26:062409 days ago1528493166
0x6E4382F1...E9510ecb7
0.06 ETH
57554662018-06-08 21:25:432409 days ago1528493143
0x6E4382F1...E9510ecb7
1.5 ETH
57554662018-06-08 21:25:432409 days ago1528493143
0x6E4382F1...E9510ecb7
1 ETH
57554632018-06-08 21:24:502409 days ago1528493090
0x6E4382F1...E9510ecb7
14 ETH
57554602018-06-08 21:23:452409 days ago1528493025
0x6E4382F1...E9510ecb7
0.5 ETH
57554592018-06-08 21:23:402409 days ago1528493020
0x6E4382F1...E9510ecb7
20 ETH
57554562018-06-08 21:22:532409 days ago1528492973
0x6E4382F1...E9510ecb7
20 ETH
57554502018-06-08 21:21:252409 days ago1528492885
0x6E4382F1...E9510ecb7
1 ETH
57554402018-06-08 21:19:232409 days ago1528492763
0x6E4382F1...E9510ecb7
0.11 ETH
57554322018-06-08 21:17:322409 days ago1528492652
0x6E4382F1...E9510ecb7
1.84 ETH
57554292018-06-08 21:16:512409 days ago1528492611
0x6E4382F1...E9510ecb7
0.06 ETH
57554242018-06-08 21:15:312409 days ago1528492531
0x6E4382F1...E9510ecb7
0.48 ETH
57554182018-06-08 21:13:522409 days ago1528492432
0x6E4382F1...E9510ecb7
3.15421046 ETH
57554182018-06-08 21:13:522409 days ago1528492432
0x6E4382F1...E9510ecb7
2.23525715 ETH
57554182018-06-08 21:13:522409 days ago1528492432
0x6E4382F1...E9510ecb7
0.53693496 ETH
57554182018-06-08 21:13:522409 days ago1528492432
0x6E4382F1...E9510ecb7
0.98 ETH
57554182018-06-08 21:13:522409 days ago1528492432
0x6E4382F1...E9510ecb7
0.81465299 ETH
57554182018-06-08 21:13:522409 days ago1528492432
0x6E4382F1...E9510ecb7
1.32732674 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
WheelOfEther

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-06-08
*/

pragma solidity ^0.4.23;

/**
 _ _ _  _____  _____  _____  __            ___    _____  _____  _____  _____  _____
| | | ||  |  ||   __||   __||  |      ___ |  _|  |   __||_   _||  |  ||   __|| __  |
| | | ||     ||   __||   __||  |__   | . ||  _|  |   __|  | |  |     ||   __||    -|
|_____||__|__||_____||_____||_____|  |___||_|    |_____|  |_|  |__|__||_____||__|__|



                                  `.-::::::::::::-.`
                           .:::+:-.`            `.-:+:::.
                      `::::.   `-                  -`   .:::-`
                   .:::`        :                  :        `:::.
                `:/-            `-                -`            -/:`
              ./:`               :               `:               `:/.
            .+:                   :              :                  `:+.
          `/-`..`                 -`            `-                 `..`-/`
         :/`    ..`                :            :                `..    `/:
       `+.        ..`              -`          `-              `..        .+`
      .+`           ..`             :          :             `..           `+.
     -+               ..`           -.        ..           `..               +-
    .+                 `..`          :        :          `..                  +.
   `o                    `..`        ..      ..        `..`                    o`
   o`                      `..`     `./------/.`     `..`                      `o
  -+``                       `..``-::.````````.::-``..`                       ``+-
  s```....````                 `+:.  ..------..  .:+`                 ````....```o
 .+       ````...````         .+. `--``      ``--` .+.         ````...````       +.
 +.              ````....`````+` .:`            `:. `o`````....````              ./
 o                       ````s` `/                /` `s````                       o
 s                           s  /`                .:  s                           s
 s                           s  /`                `/  s                           s
 s                        ```s` `/                /` `s```                        o
 +.               ````....```.+  .:`            `:.  +.```....````               .+
 ./        ```....````        -/` `--`        `--` `/.        ````....```        +.
  s````....```                 .+:` `.--------.` `:+.                 ```....````s
  :/```                       ..`.::-.``    ``.-::.`..                       ```/:
   o`                       ..`     `-/-::::-/-`     `..                       `o
   `o                     ..`        ..      ..        `..                     o`
    -/                  ..`          :        :          `..                  /-
     -/               ..`           ..        ..           `..               /-
      -+`           ..`             :          :             `-.           `+-
       .+.        .-`              -`          ..              `-.        .+.
         /:     .-`                :            :                `-.    `:/
          ./- .-`                 -`            `-                 `-. -/.
            -+-                   :              :                   :+-
              -/-`               -`              `-               `-/-
                .:/.             :                :             ./:.
                   -:/-         :                  :         -/:-
                      .:::-`   `-                  -`   `-:::.
                          `-:::+-.`              `.:+:::-`
                                `.-::::::::::::::-.`

---Design---
Jörmungandr

---Contract and Frontend---
Mr Fahrenheit
Jörmungandr

---Contract Auditor---
8 ฿ł₮ ₮Ɽł₱

---Contract Advisors---
Etherguy
Norsefire

**/

contract WheelOfEther {
    using SafeMath for uint;

    //  Modifiers

    modifier nonContract() {                // contracts pls go
        require(tx.origin == msg.sender);
        _;
    }

    modifier gameActive() {
        require(gamePaused == false);
        _;
    }

    modifier onlyAdmin(){
        require(msg.sender == admin);
        _;
    }

    // Events

    event onTokenPurchase(
        address indexed customerAddress,
        uint256 ethereumIn,
        uint256 contractBal,
        uint timestamp
    );

    event onTokenSell(
        address indexed customerAddress,
        uint256 ethereumOut,
        uint256 contractBal,
        uint timestamp
    );

    event spinResult(
        address indexed customerAddress,
        uint256 wheelNumber,
        uint256 outcome,
        uint256 ethSpent,
        uint256 ethReturned,
        uint256 devFee,
        uint timestamp
    );

    uint256 _seed;
    address admin;
    bool public gamePaused = false;
    uint256 minBet = 0.01 ether;
    uint256 devFeeBalance = 0;

    uint8[10] brackets = [1,3,6,12,24,40,56,68,76,80];

    uint256 internal globalFactor = 1000000000000000000000;
    uint256 constant internal constantFactor = globalFactor * globalFactor;
    mapping(address => uint256) internal personalFactorLedger_;
    mapping(address => uint256) internal balanceLedger_;


    constructor()
        public
    {
        admin = msg.sender;
    }


    function getBalance()
        public
        view
        returns (uint256)
    {
        return this.balance;
    }


    function buyTokens()
        public
        payable
        nonContract
        gameActive
    {
        address _customerAddress = msg.sender;
        // User must buy at least 0.01 eth
        require(msg.value >= minBet);
        // Adjust ledgers
        balanceLedger_[_customerAddress] = ethBalanceOf(_customerAddress).add(msg.value);
        personalFactorLedger_[_customerAddress] = constantFactor / globalFactor;

        onTokenPurchase(_customerAddress, msg.value, this.balance, now);
    }


    function sell(uint256 sellEth)
        public
        nonContract
    {
        address _customerAddress = msg.sender;
        // User must have enough eth and cannot sell 0
        require(sellEth <= ethBalanceOf(_customerAddress));
        require(sellEth > 0);
        // Transfer balance and update user ledgers
        _customerAddress.transfer(sellEth);
        balanceLedger_[_customerAddress] = ethBalanceOf(_customerAddress).sub(sellEth);
		personalFactorLedger_[_customerAddress] = constantFactor / globalFactor;

        onTokenSell(_customerAddress, sellEth, this.balance, now);
    }


    function ethBalanceOf(address _customerAddress)
        public
        view
        returns (uint256)
    {
        // Balance ledger * personal factor * globalFactor / constantFactor
        return balanceLedger_[_customerAddress].mul(personalFactorLedger_[_customerAddress]).mul(globalFactor) / constantFactor;
    }


    function tokenSpin(uint256 betEth)
        public
        nonContract
        gameActive
        returns (uint256 resultNum)
    {
        address _customerAddress = msg.sender;
        // User must have enough eth
        require(ethBalanceOf(_customerAddress) >= betEth);
        // If user bets more than available bet pool, bet only as much as the pool
        if (betEth > betPool(_customerAddress)) {
            betEth = betPool(_customerAddress);
        }
        // User must bet more than the minimum
        require(betEth >= minBet);
        // Execute the bet and return the outcome
        resultNum = bet(betEth, _customerAddress);
    }


    function etherSpin()
        public
        payable
        nonContract
        gameActive
        returns (uint256 resultNum)
    {
        address _customerAddress = msg.sender;
        uint256 betEth = msg.value;
        // All eth is converted into tokens before the bet
        // If user bets more than available bet pool, bet only as much as the pool
        if (betEth > betPool(_customerAddress)) {
            betEth = betPool(_customerAddress);
        }
        // User must bet more than the minimum
        require(betEth >= minBet);
        // Adjust ledgers
        balanceLedger_[_customerAddress] = ethBalanceOf(_customerAddress).add(msg.value);
		personalFactorLedger_[_customerAddress] = constantFactor / globalFactor;
        // Execute the bet and return the outcome
        resultNum = bet(betEth, _customerAddress);
    }


    function betPool(address _customerAddress)
        public
        view
        returns (uint256)
    {
        // Balance of contract, minus eth balance of user and accrued dev fees
        return this.balance.sub(ethBalanceOf(_customerAddress)).sub(devFeeBalance);
    }

    /*
        panicButton and refundUser are here incase of an emergency, or launch of a new contract
        The game will be frozen, and all token holders will be refunded
    */

    function panicButton(bool newStatus)
        public
        onlyAdmin
    {
        gamePaused = newStatus;
    }


    function refundUser(address _customerAddress)
        public
        onlyAdmin
    {
        uint256 sellEth = ethBalanceOf(_customerAddress);
        _customerAddress.transfer(sellEth);
        balanceLedger_[_customerAddress] = 0;
		personalFactorLedger_[_customerAddress] = constantFactor / globalFactor;
        onTokenSell(_customerAddress, sellEth, this.balance, now);
    }

    function getDevBalance()
        public
        view
        returns (uint256)
    {
        return devFeeBalance;
    }


    function withdrawDevFees()
        public
        onlyAdmin
    {
        admin.transfer(devFeeBalance);
        devFeeBalance = 0;
    }


    // Internal Functions


    function bet(uint256 initEth, address _customerAddress)
        internal
        returns (uint256 resultNum)
    {
        // Spin the wheel
        resultNum = random(80);
        // Determine the outcome
        uint result = determinePrize(resultNum);

        // Add 2% fee to devFeeBalance and remove from user's balance
        uint256 devFee = initEth / 50;
        devFeeBalance = devFeeBalance.add(devFee);
        balanceLedger_[_customerAddress] = ethBalanceOf(_customerAddress).sub(devFee);
        personalFactorLedger_[_customerAddress] = constantFactor / globalFactor;

        // Remove the dev fee from the bet amount
        uint256 betEth = initEth - devFee;

        uint256 returnedEth;
        uint256 prizePool = betPool(_customerAddress);

		if (result < 5)                                             // < 5 = WIN
		{
			uint256 wonEth;
			if (result == 0){                                       // Grand Jackpot
				wonEth = grandJackpot(betEth, prizePool);
			} else if (result == 1){                                // Jackpot
				wonEth = jackpot(betEth, prizePool);
			} else if (result == 2){                                // Grand Prize
				wonEth = betEth / 2;                                // +50% of original bet
			} else if (result == 3){                                // Major Prize
				wonEth = betEth / 4;                                // +25% of original bet
			} else if (result == 4){                                // Minor Prize
				wonEth = betEth / 10;                               // +10% of original bet
			}
			winEth(_customerAddress, wonEth);                       // Award the user their prize
            returnedEth = betEth.add(wonEth);
        } else if (result == 5){                                    // 5 = Refund
            returnedEth = betEth;
		}
		else {                                                      // > 5 = LOSE
			uint256 lostEth;
			if (result == 6){                                		// Minor Loss
				lostEth = betEth / 4;                    		    // -25% of original bet
			} else if (result == 7){                                // Major Loss
				lostEth = betEth / 2;                     			// -50% of original bet
			} else if (result == 8){                                // Grand Loss
				lostEth = betEth.mul(3) / 4;                     	// -75% of original bet
			} else if (result == 9){                                // Total Loss
				lostEth = betEth;                                   // -100% of original bet
			}
			loseEth(_customerAddress, lostEth);                     // "Award" the user their loss
            returnedEth = betEth.sub(lostEth);
		}
        spinResult(_customerAddress, resultNum, result, betEth, returnedEth, devFee, now);
        return resultNum;
    }

    function grandJackpot(uint256 betEth, uint256 prizePool)
        internal
        returns (uint256 wonEth)
    {
        wonEth = betEth / 2;                                        // +50% of original bet
        uint256 max = minBet * 100 * betEth / prizePool;            // Fire the loop a maximum of 100 times
		for (uint256 i=0;i<max; i+= minBet) {			  	        // Add a % of the remaining Token Pool
            wonEth = wonEth.add((prizePool.sub(wonEth)) / 50);      // +2% of remaining pool
		}
    }

    function jackpot(uint256 betEth, uint256 prizePool)
        internal
        returns (uint256 wonEth)
    {
        wonEth = betEth / 2;                                        // +50% of original bet
        uint256 max = minBet * 100 * betEth / prizePool;            // Fire the loop a maximum of 100 times
		for (uint256 i=0;i<max; i+= minBet) {                       // Add a % of the remaining Token Pool
            wonEth = wonEth.add((prizePool.sub(wonEth)) / 100);     // +1% of remaining pool
		}
    }

    function maxRandom()
        internal
        returns (uint256 randomNumber)
    {
        _seed = uint256(keccak256(
            abi.encodePacked(_seed,
                blockhash(block.number - 1),
                block.coinbase,
                block.difficulty)
        ));
        return _seed;
    }


    function random(uint256 upper)
        internal
        returns (uint256 randomNumber)
    {
        return maxRandom() % upper + 1;
    }


    function determinePrize(uint256 result)
        internal
        returns (uint256 resultNum)
    {
        // Loop until the result bracket is determined
        for (uint8 i=0;i<=9;i++){
            if (result <= brackets[i]){
                return i;
            }
        }
    }


    function loseEth(address _customerAddress, uint256 lostEth)
        internal
    {
        uint256 customerEth = ethBalanceOf(_customerAddress);
        // Increase amount of eth everyone else owns
        uint256 globalIncrease = globalFactor.mul(lostEth) / betPool(_customerAddress);
        globalFactor = globalFactor.add(globalIncrease);
        // Update user ledgers
        personalFactorLedger_[_customerAddress] = constantFactor / globalFactor;
        balanceLedger_[_customerAddress] = customerEth.sub(lostEth);
    }


    function winEth(address _customerAddress, uint256 wonEth)
        internal
    {
        uint256 customerEth = ethBalanceOf(_customerAddress);
        // Decrease amount of eth everyone else owns
        uint256 globalDecrease = globalFactor.mul(wonEth) / betPool(_customerAddress);
        globalFactor = globalFactor.sub(globalDecrease);
        // Update user ledgers
        personalFactorLedger_[_customerAddress] = constantFactor / globalFactor;
        balanceLedger_[_customerAddress] = customerEth.add(wonEth);
    }
}

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

    /**
    * @dev Multiplies two numbers, throws on overflow.
    */
    function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
        if (a == 0) {
          return 0;
        }
        c = a * b;
        assert(c / a == b);
        return c;
    }

    /**
    * @dev Integer division of two numbers, truncating the quotient.
    */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // assert(b > 0); // Solidity automatically throws when dividing by 0
        // uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return a / b;
    }

    /**
    * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
    */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    /**
    * @dev Adds two numbers, throws on overflow.
    */
    function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
        c = a + b;
        assert(c >= a);
        return c;
    }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[],"name":"withdrawDevFees","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newStatus","type":"bool"}],"name":"panicButton","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"betPool","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"ethBalanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"refundUser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"betEth","type":"uint256"}],"name":"tokenSpin","outputs":[{"name":"resultNum","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"etherSpin","outputs":[{"name":"resultNum","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"getDevBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"gamePaused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"sellEth","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"ethereumIn","type":"uint256"},{"indexed":false,"name":"contractBal","type":"uint256"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"onTokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"ethereumOut","type":"uint256"},{"indexed":false,"name":"contractBal","type":"uint256"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"onTokenSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"wheelNumber","type":"uint256"},{"indexed":false,"name":"outcome","type":"uint256"},{"indexed":false,"name":"ethSpent","type":"uint256"},{"indexed":false,"name":"ethReturned","type":"uint256"},{"indexed":false,"name":"devFee","type":"uint256"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"spinResult","type":"event"}]

6001805460a060020a60ff0219168155662386f26fc10000600255600060039081556101c0604052608091825260a052600660c052600c60e052601861010052602861012052603861014052604461016052604c6101805260506101a05261006b90600490600a61009d565b50683635c9adc5dea0000060055534801561008557600080fd5b5060018054600160a060020a03191633179055610151565b6001830191839082156101205791602002820160005b838211156100f157835183826101000a81548160ff021916908360ff16021790555092602001926001016020816000010492830192600103026100b3565b801561011e5782816101000a81549060ff02191690556001016020816000010492830192600103026100f1565b505b5061012c929150610130565b5090565b61014e91905b8082111561012c57805460ff19168155600101610136565b90565b610ce7806101606000396000f3006080604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630da590d481146100be57806312065fe0146100d557806337f03888146100fc578063595e615f146101165780637252bbf21461013757806372b38ab914610158578063a79726b714610179578063bbc6049d14610191578063bee14b3d14610199578063c3de1ab9146101ae578063d0febe4c146101d7578063e4849b32146101df575b600080fd5b3480156100ca57600080fd5b506100d36101f7565b005b3480156100e157600080fd5b506100ea610252565b60408051918252519081900360200190f35b34801561010857600080fd5b506100d36004351515610257565b34801561012257600080fd5b506100ea600160a060020a036004351661029d565b34801561014357600080fd5b506100ea600160a060020a03600435166102d1565b34801561016457600080fd5b506100d3600160a060020a036004351661032e565b34801561018557600080fd5b506100ea600435610419565b6100ea610492565b3480156101a557600080fd5b506100ea610558565b3480156101ba57600080fd5b506101c361055e565b604080519115158252519081900360200190f35b6100d361056e565b3480156101eb57600080fd5b506100d360043561063f565b600154600160a060020a0316331461020e57600080fd5b600154600354604051600160a060020a039092169181156108fc0291906000818181858888f1935050505015801561024a573d6000803e3d6000fd5b506000600355565b303190565b600154600160a060020a0316331461026e57600080fd5b6001805491151560a060020a0274ff000000000000000000000000000000000000000019909216919091179055565b60006102cb6003546102bf6102b1856102d1565b30319063ffffffff61074316565b9063ffffffff61074316565b92915050565b600554600160a060020a038216600090815260066020908152604080832054600790925282205491928080029261031e92610312919063ffffffff61075516565b9063ffffffff61075516565b81151561032757fe5b0492915050565b600154600090600160a060020a0316331461034857600080fd5b610351826102d1565b604051909150600160a060020a0383169082156108fc029083906000818181858888f1935050505015801561038a573d6000803e3d6000fd5b50600160a060020a0382166000908152600760205260408120556005548080028115156103b357fe5b600160a060020a038416600081815260066020908152604091829020949093049093558251848152303192810192909252428284015291517f723391258f051422e0be75f0bbcc5c94947b440ae6162c87b3efb5fecde315e59181900360600190a25050565b60008032331461042857600080fd5b60015460a060020a900460ff161561043f57600080fd5b50338261044b826102d1565b101561045657600080fd5b61045f8161029d565b8311156104725761046f8161029d565b92505b60025483101561048157600080fd5b61048b838261077e565b9392505050565b600080803233146104a257600080fd5b60015460a060020a900460ff16156104b957600080fd5b50339050346104c78261029d565b8111156104da576104d78261029d565b90505b6002548110156104e957600080fd5b610502346104f6846102d1565b9063ffffffff61099d16565b600160a060020a03831660009081526007602052604090205560055480800281151561052a57fe5b600160a060020a03841660009081526006602052604090209190049055610551818361077e565b9250505090565b60035490565b60015460a060020a900460ff1681565b600032331461057c57600080fd5b60015460a060020a900460ff161561059357600080fd5b5060025433903410156105a557600080fd5b6105b2346104f6836102d1565b600160a060020a0382166000908152600760205260409020556005548080028115156105da57fe5b600160a060020a038316600081815260066020908152604091829020949093049093558251348152303192810192909252428284015291517f810900bb33e423094372279f779b623ab22b73472a8a91fce3c018129c2050199181900360600190a250565b600032331461064d57600080fd5b5033610658816102d1565b82111561066457600080fd5b6000821161067157600080fd5b604051600160a060020a0382169083156108fc029084906000818181858888f193505050501580156106a7573d6000803e3d6000fd5b506106b5826102bf836102d1565b600160a060020a0382166000908152600760205260409020556005548080028115156106dd57fe5b600160a060020a038316600081815260066020908152604091829020949093049093558251858152303192810192909252428284015291517f723391258f051422e0be75f0bbcc5c94947b440ae6162c87b3efb5fecde315e59181900360600190a25050565b60008282111561074f57fe5b50900390565b6000821515610766575060006102cb565b5081810281838281151561077657fe5b04146102cb57fe5b60008060008060008060008061079460506109aa565b975061079f886109c9565b60035490975060328b0496506107bb908763ffffffff61099d16565b6003556107cb866102bf8b6102d1565b600160a060020a038a166000908152600760205260409020556005548080028115156107f357fe5b600160a060020a038b1660009081526006602052604090209190049055858a03945061081e8961029d565b925060058710156108ab578615156108415761083a8584610a1d565b915061088a565b86600114156108545761083a8584610a8a565b8660021415610869576002855b04915061088a565b866003141561087a57600485610861565b866004141561088a57600a850491505b6108948983610ad7565b6108a4858363ffffffff61099d16565b9350610930565b86600514156108bc57849350610930565b86600614156108d1576004855b049050610913565b86600714156108e2576002856108c9565b86600814156109075760046108fe86600363ffffffff61075516565b8115156108c957fe5b86600914156109135750835b61091d8982610b82565b61092d858263ffffffff61074316565b93505b604080518981526020810189905280820187905260608101869052608081018890524260a08201529051600160a060020a038b16917f6cc39dee30f676f4f51573724b90d7dbde8804203dee6bec77859ed572300af2919081900360c00190a25050505050505092915050565b818101828110156102cb57fe5b6000816109b5610c0b565b8115156109be57fe5b066001019050919050565b6000805b600960ff821611610a1757600460ff8216600a81106109e857fe5b602081049091015460ff601f9092166101000a9004168311610a0f578060ff169150610a17565b6001016109cd565b50919050565b60008080600285049250838560025460640202811515610a3957fe5b049150600090505b81811015610a8257610a766032610a5e868663ffffffff61074316565b811515610a6757fe5b8591900463ffffffff61099d16565b60025490935001610a41565b505092915050565b60008080600285049250838560025460640202811515610aa657fe5b049150600090505b81811015610a8257610acb6064610a5e868663ffffffff61074316565b60025490935001610aae565b600080610ae3846102d1565b9150610aee8461029d565b600554610b01908563ffffffff61075516565b811515610b0a57fe5b049050610b228160055461074390919063ffffffff16565b6005819055808002811515610b3357fe5b600160a060020a03861660009081526006602052604090209190049055610b60828463ffffffff61099d16565b600160a060020a03909416600090815260076020526040902093909355505050565b600080610b8e846102d1565b9150610b998461029d565b600554610bac908563ffffffff61075516565b811515610bb557fe5b049050610bcd8160055461099d90919063ffffffff16565b6005819055808002811515610bde57fe5b600160a060020a03861660009081526006602052604090209190049055610b60828463ffffffff61074316565b6000805460408051602080820193909352600019430140818301526c01000000000000000000000000410260608201524460748083019190915282518083039091018152609490910191829052805190928291908401908083835b60208310610c855780518252601f199092019160209182019101610c66565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912060008190559493505050505600a165627a7a7230582069e6b3e720138aaac28fd5f1e881db5ea3ef8fbbbb7b183915436e0a78c1b81a0029

Deployed Bytecode

0x6080604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630da590d481146100be57806312065fe0146100d557806337f03888146100fc578063595e615f146101165780637252bbf21461013757806372b38ab914610158578063a79726b714610179578063bbc6049d14610191578063bee14b3d14610199578063c3de1ab9146101ae578063d0febe4c146101d7578063e4849b32146101df575b600080fd5b3480156100ca57600080fd5b506100d36101f7565b005b3480156100e157600080fd5b506100ea610252565b60408051918252519081900360200190f35b34801561010857600080fd5b506100d36004351515610257565b34801561012257600080fd5b506100ea600160a060020a036004351661029d565b34801561014357600080fd5b506100ea600160a060020a03600435166102d1565b34801561016457600080fd5b506100d3600160a060020a036004351661032e565b34801561018557600080fd5b506100ea600435610419565b6100ea610492565b3480156101a557600080fd5b506100ea610558565b3480156101ba57600080fd5b506101c361055e565b604080519115158252519081900360200190f35b6100d361056e565b3480156101eb57600080fd5b506100d360043561063f565b600154600160a060020a0316331461020e57600080fd5b600154600354604051600160a060020a039092169181156108fc0291906000818181858888f1935050505015801561024a573d6000803e3d6000fd5b506000600355565b303190565b600154600160a060020a0316331461026e57600080fd5b6001805491151560a060020a0274ff000000000000000000000000000000000000000019909216919091179055565b60006102cb6003546102bf6102b1856102d1565b30319063ffffffff61074316565b9063ffffffff61074316565b92915050565b600554600160a060020a038216600090815260066020908152604080832054600790925282205491928080029261031e92610312919063ffffffff61075516565b9063ffffffff61075516565b81151561032757fe5b0492915050565b600154600090600160a060020a0316331461034857600080fd5b610351826102d1565b604051909150600160a060020a0383169082156108fc029083906000818181858888f1935050505015801561038a573d6000803e3d6000fd5b50600160a060020a0382166000908152600760205260408120556005548080028115156103b357fe5b600160a060020a038416600081815260066020908152604091829020949093049093558251848152303192810192909252428284015291517f723391258f051422e0be75f0bbcc5c94947b440ae6162c87b3efb5fecde315e59181900360600190a25050565b60008032331461042857600080fd5b60015460a060020a900460ff161561043f57600080fd5b50338261044b826102d1565b101561045657600080fd5b61045f8161029d565b8311156104725761046f8161029d565b92505b60025483101561048157600080fd5b61048b838261077e565b9392505050565b600080803233146104a257600080fd5b60015460a060020a900460ff16156104b957600080fd5b50339050346104c78261029d565b8111156104da576104d78261029d565b90505b6002548110156104e957600080fd5b610502346104f6846102d1565b9063ffffffff61099d16565b600160a060020a03831660009081526007602052604090205560055480800281151561052a57fe5b600160a060020a03841660009081526006602052604090209190049055610551818361077e565b9250505090565b60035490565b60015460a060020a900460ff1681565b600032331461057c57600080fd5b60015460a060020a900460ff161561059357600080fd5b5060025433903410156105a557600080fd5b6105b2346104f6836102d1565b600160a060020a0382166000908152600760205260409020556005548080028115156105da57fe5b600160a060020a038316600081815260066020908152604091829020949093049093558251348152303192810192909252428284015291517f810900bb33e423094372279f779b623ab22b73472a8a91fce3c018129c2050199181900360600190a250565b600032331461064d57600080fd5b5033610658816102d1565b82111561066457600080fd5b6000821161067157600080fd5b604051600160a060020a0382169083156108fc029084906000818181858888f193505050501580156106a7573d6000803e3d6000fd5b506106b5826102bf836102d1565b600160a060020a0382166000908152600760205260409020556005548080028115156106dd57fe5b600160a060020a038316600081815260066020908152604091829020949093049093558251858152303192810192909252428284015291517f723391258f051422e0be75f0bbcc5c94947b440ae6162c87b3efb5fecde315e59181900360600190a25050565b60008282111561074f57fe5b50900390565b6000821515610766575060006102cb565b5081810281838281151561077657fe5b04146102cb57fe5b60008060008060008060008061079460506109aa565b975061079f886109c9565b60035490975060328b0496506107bb908763ffffffff61099d16565b6003556107cb866102bf8b6102d1565b600160a060020a038a166000908152600760205260409020556005548080028115156107f357fe5b600160a060020a038b1660009081526006602052604090209190049055858a03945061081e8961029d565b925060058710156108ab578615156108415761083a8584610a1d565b915061088a565b86600114156108545761083a8584610a8a565b8660021415610869576002855b04915061088a565b866003141561087a57600485610861565b866004141561088a57600a850491505b6108948983610ad7565b6108a4858363ffffffff61099d16565b9350610930565b86600514156108bc57849350610930565b86600614156108d1576004855b049050610913565b86600714156108e2576002856108c9565b86600814156109075760046108fe86600363ffffffff61075516565b8115156108c957fe5b86600914156109135750835b61091d8982610b82565b61092d858263ffffffff61074316565b93505b604080518981526020810189905280820187905260608101869052608081018890524260a08201529051600160a060020a038b16917f6cc39dee30f676f4f51573724b90d7dbde8804203dee6bec77859ed572300af2919081900360c00190a25050505050505092915050565b818101828110156102cb57fe5b6000816109b5610c0b565b8115156109be57fe5b066001019050919050565b6000805b600960ff821611610a1757600460ff8216600a81106109e857fe5b602081049091015460ff601f9092166101000a9004168311610a0f578060ff169150610a17565b6001016109cd565b50919050565b60008080600285049250838560025460640202811515610a3957fe5b049150600090505b81811015610a8257610a766032610a5e868663ffffffff61074316565b811515610a6757fe5b8591900463ffffffff61099d16565b60025490935001610a41565b505092915050565b60008080600285049250838560025460640202811515610aa657fe5b049150600090505b81811015610a8257610acb6064610a5e868663ffffffff61074316565b60025490935001610aae565b600080610ae3846102d1565b9150610aee8461029d565b600554610b01908563ffffffff61075516565b811515610b0a57fe5b049050610b228160055461074390919063ffffffff16565b6005819055808002811515610b3357fe5b600160a060020a03861660009081526006602052604090209190049055610b60828463ffffffff61099d16565b600160a060020a03909416600090815260076020526040902093909355505050565b600080610b8e846102d1565b9150610b998461029d565b600554610bac908563ffffffff61075516565b811515610bb557fe5b049050610bcd8160055461099d90919063ffffffff16565b6005819055808002811515610bde57fe5b600160a060020a03861660009081526006602052604090209190049055610b60828463ffffffff61074316565b6000805460408051602080820193909352600019430140818301526c01000000000000000000000000410260608201524460748083019190915282518083039091018152609490910191829052805190928291908401908083835b60208310610c855780518252601f199092019160209182019101610c66565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912060008190559493505050505600a165627a7a7230582069e6b3e720138aaac28fd5f1e881db5ea3ef8fbbbb7b183915436e0a78c1b81a0029

Swarm Source

bzzr://69e6b3e720138aaac28fd5f1e881db5ea3ef8fbbbb7b183915436e0a78c1b81a

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.