Contract Overview | Rouleth
ETH Balance: 9,381.966499995 Ether ($98,698.29)
Mined:  0
No Of Transactions: 23912 txns + 11948 internalTxns
  Latest 25 txns from a total Of 23912 transactions View All

TxHash Block Age From To Value [TxFee]
0xa57014e4ec0b4f39c39f751edd7e2ca33c821ed442ed215325c0a4446ef817ee30573701 hr 36 mins ago0x09820a2fae3bd73b5009e89ccb7bb236ff59b744  IN   0x18a672e11d637fffadccc99b152f4895da0696010 Ether0.00174266
0xa87360aaba1c5e529cca527cb8fa46ac2436da640751aaa6cb0161eb2da4b87b30573671 hr 37 mins ago0x4a77361e872f2f494045571e1ade08bed6e1fefb  IN   0x18a672e11d637fffadccc99b152f4895da0696010.2 Ether0.00303784
0xb756fda95cb2ff3feea111ff89ecc77273f9a81db422440f4dde03302ec54b7b30573621 hr 39 mins ago0x09820a2fae3bd73b5009e89ccb7bb236ff59b744  IN   0x18a672e11d637fffadccc99b152f4895da0696010 Ether0.00174266
0x8ff805e697b3de806b6248fd654efb90bf6afd0e5a84de09289621341606828530573601 hr 39 mins ago0x4a77361e872f2f494045571e1ade08bed6e1fefb  IN   0x18a672e11d637fffadccc99b152f4895da0696010.1 Ether0.00303784
0x244cb04f765576e57d925f59169b0d49ad6b5f239852da264be91e751994b76e30573571 hr 40 mins ago0x09820a2fae3bd73b5009e89ccb7bb236ff59b744  IN   0x18a672e11d637fffadccc99b152f4895da0696010 Ether0.00162214
0x2a235ea29b710a8e0e9288bb24473cef88e156e45a31c526a2168a46bc4b1f0b30573531 hr 40 mins ago0x4a77361e872f2f494045571e1ade08bed6e1fefb  IN   0x18a672e11d637fffadccc99b152f4895da0696010.1 Ether0.00303772
0xa1b36fe2fcbef7282441436203dd075d2ba4ce7c84453a63fb37520c4037db7030573281 hr 46 mins ago0x09820a2fae3bd73b5009e89ccb7bb236ff59b744  IN   0x18a672e11d637fffadccc99b152f4895da0696010 Ether0.00153402
0xf0fa6fcfe7a4b6a6131bb451cd3977523f14457ba69eac9d23adf7c14c164f0530573241 hr 47 mins ago0x4a77361e872f2f494045571e1ade08bed6e1fefb  IN   0x18a672e11d637fffadccc99b152f4895da0696010.05 Ether0.00303784
0xfd70df4ae5662ff34b10f7d9abd7ceba4631edb0ec3113dd7fa295518c0ac77e30573181 hr 48 mins ago0x09820a2fae3bd73b5009e89ccb7bb236ff59b744  IN   0x18a672e11d637fffadccc99b152f4895da0696010 Ether0.00174266
0xdf57a8a306430c9e454b65cf1a140938c9e93065a0ffe7e4f868abec6742153a30573161 hr 49 mins ago0x4a77361e872f2f494045571e1ade08bed6e1fefb  IN   0x18a672e11d637fffadccc99b152f4895da0696010.2 Ether0.00303784
0x83522b69a42ceb1887d5e2a3ea171cdb409a5b28639d45a9d6fb0d33b51e0ecc30573101 hr 50 mins ago0x09820a2fae3bd73b5009e89ccb7bb236ff59b744  IN   0x18a672e11d637fffadccc99b152f4895da0696010 Ether0.00174266
0x574ae59b4c4f09d5591b6945291c1539dbf42e6f3a1ed62953d8018da5fc870730573051 hr 52 mins ago0x4a77361e872f2f494045571e1ade08bed6e1fefb  IN   0x18a672e11d637fffadccc99b152f4895da0696010.1 Ether0.00303784
0x0ef6f8fb2b799bafddec028e03995bd5f934cec5c0839788d50994cbe74ca79530573011 hr 53 mins ago0x09820a2fae3bd73b5009e89ccb7bb236ff59b744  IN   0x18a672e11d637fffadccc99b152f4895da0696010 Ether0.00162214
0x15f6c49d165ed0507bb6eab74b4c68365d2c0664e0325672f06ad96aedcab33f30572981 hr 53 mins ago0x4a77361e872f2f494045571e1ade08bed6e1fefb  IN   0x18a672e11d637fffadccc99b152f4895da0696010.1 Ether0.00303772
0x8a369bd370a678bb94bc72f487855227bde4a4e18202d25c08a15646499370b330572931 hr 54 mins ago0x09820a2fae3bd73b5009e89ccb7bb236ff59b744  IN   0x18a672e11d637fffadccc99b152f4895da0696010 Ether0.00156752
0x6170506be8d4f003cfe221643de7ffc6545e74ad38b5bd057bb83a6b752233b130572901 hr 54 mins ago0x4a77361e872f2f494045571e1ade08bed6e1fefb  IN   0x18a672e11d637fffadccc99b152f4895da0696010.05 Ether0.00303784
0x6f36e2c34fda28def8258e54bfd9bd52e2532620bb7e26c196993e122a58de7930572791 hr 56 mins ago0x09820a2fae3bd73b5009e89ccb7bb236ff59b744  IN   0x18a672e11d637fffadccc99b152f4895da0696010 Ether0.00162214
0x74768dc050cce539713581c2167e3401d88c9597225f3636a879561fb38a850230572771 hr 56 mins ago0x4a77361e872f2f494045571e1ade08bed6e1fefb  IN   0x18a672e11d637fffadccc99b152f4895da0696010.05 Ether0.00303772
0x1ca094973855a36c2b1c333057ed44583e1d5690743707704c54db8e96be441830572642 hrs ago0x09820a2fae3bd73b5009e89ccb7bb236ff59b744  IN   0x18a672e11d637fffadccc99b152f4895da0696010 Ether0.00162214
0xa84a2550e28901488d27516a262cc0f837ea2e1edbecdd3fc0201b66fca4300c30572612 hrs 1 min ago0x4a77361e872f2f494045571e1ade08bed6e1fefb  IN   0x18a672e11d637fffadccc99b152f4895da0696010.1 Ether0.00303772
0x34b13b2aa04ff685a15827f2ed6ef32f5c068a90bd5a6f6f226d46a18934efde30572492 hrs 4 mins ago0x09820a2fae3bd73b5009e89ccb7bb236ff59b744  IN   0x18a672e11d637fffadccc99b152f4895da0696010 Ether0.00162214
0xc5bb571a7e92e1ff9be9f8a68db1e16130fa52d30ff85dcaf18f801438ad95db30572472 hrs 5 mins ago0x4a77361e872f2f494045571e1ade08bed6e1fefb  IN   0x18a672e11d637fffadccc99b152f4895da0696010.1 Ether0.00303772
0x31bf758f250537f8545fffbd4efb40d24f4446750082c6fd955d0a90e2373c2530559547 hrs 11 mins ago0x09820a2fae3bd73b5009e89ccb7bb236ff59b744  IN   0x18a672e11d637fffadccc99b152f4895da0696010 Ether0.00152204
0xe03bc24b28746b85d01eaa6b0a69e220bd318a960cda815122fbb3a45c36ff4530559507 hrs 12 mins ago0xac75b73394c329376c214663d92156afa864a77f  IN   0x18a672e11d637fffadccc99b152f4895da0696010.1 Ether0.0030491
0x6634b99a6f684dcf789e52b569f9875aeeaac11c5e7fdfc874773ad5a126b16c30559477 hrs 14 mins ago0x09820a2fae3bd73b5009e89ccb7bb236ff59b744  IN   0x18a672e11d637fffadccc99b152f4895da0696010 Ether0.00152204
 Internal Transactions as a result of Contract Execution
  Latest 25 Internal Txns from a total of 11948 View All
ParentTxHash Block Age From To Value
0xa57014e4ec0b4f39c39f751edd7e2ca33c821ed442ed215325c0a4446ef817ee30573701 hr 36 mins ago0x18a672e11d637fffadccc99b152f4895da0696010x4a77361e872f2f494045571e1ade08bed6e1fefb0.4 Ether
0xb756fda95cb2ff3feea111ff89ecc77273f9a81db422440f4dde03302ec54b7b30573621 hr 39 mins ago0x18a672e11d637fffadccc99b152f4895da0696010x4a77361e872f2f494045571e1ade08bed6e1fefb0.2 Ether
0x244cb04f765576e57d925f59169b0d49ad6b5f239852da264be91e751994b76e30573571 hr 40 mins ago0x18a672e11d637fffadccc99b152f4895da0696010x4a77361e872f2f494045571e1ade08bed6e1fefb1 wei
0xa1b36fe2fcbef7282441436203dd075d2ba4ce7c84453a63fb37520c4037db7030573281 hr 46 mins ago0x18a672e11d637fffadccc99b152f4895da0696010x4a77361e872f2f494045571e1ade08bed6e1fefb1 wei
0xfd70df4ae5662ff34b10f7d9abd7ceba4631edb0ec3113dd7fa295518c0ac77e30573181 hr 48 mins ago0x18a672e11d637fffadccc99b152f4895da0696010x4a77361e872f2f494045571e1ade08bed6e1fefb0.4 Ether
0x83522b69a42ceb1887d5e2a3ea171cdb409a5b28639d45a9d6fb0d33b51e0ecc30573101 hr 50 mins ago0x18a672e11d637fffadccc99b152f4895da0696010x4a77361e872f2f494045571e1ade08bed6e1fefb0.2 Ether
0x0ef6f8fb2b799bafddec028e03995bd5f934cec5c0839788d50994cbe74ca79530573011 hr 53 mins ago0x18a672e11d637fffadccc99b152f4895da0696010x4a77361e872f2f494045571e1ade08bed6e1fefb1 wei
0x8a369bd370a678bb94bc72f487855227bde4a4e18202d25c08a15646499370b330572931 hr 54 mins ago0x18a672e11d637fffadccc99b152f4895da0696010x4a77361e872f2f494045571e1ade08bed6e1fefb1 wei
0x6f36e2c34fda28def8258e54bfd9bd52e2532620bb7e26c196993e122a58de7930572791 hr 56 mins ago0x18a672e11d637fffadccc99b152f4895da0696010x4a77361e872f2f494045571e1ade08bed6e1fefb1 wei
0x1ca094973855a36c2b1c333057ed44583e1d5690743707704c54db8e96be441830572642 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x4a77361e872f2f494045571e1ade08bed6e1fefb1 wei
0x34b13b2aa04ff685a15827f2ed6ef32f5c068a90bd5a6f6f226d46a18934efde30572492 hrs 4 mins ago0x18a672e11d637fffadccc99b152f4895da0696010x4a77361e872f2f494045571e1ade08bed6e1fefb1 wei
0x31bf758f250537f8545fffbd4efb40d24f4446750082c6fd955d0a90e2373c2530559547 hrs 11 mins ago0x18a672e11d637fffadccc99b152f4895da0696010xac75b73394c329376c214663d92156afa864a77f1 wei
0x6634b99a6f684dcf789e52b569f9875aeeaac11c5e7fdfc874773ad5a126b16c30559477 hrs 14 mins ago0x18a672e11d637fffadccc99b152f4895da0696010xac75b73394c329376c214663d92156afa864a77f1 wei
0xe2ae16b3c3c4ed743814292933969711658c115a2c24e257e36b8aad0706074230559407 hrs 17 mins ago0x18a672e11d637fffadccc99b152f4895da0696010xac75b73394c329376c214663d92156afa864a77f0.3 Ether
0xfaeec236909975661aa63df7fcc96170f822110e3f43b2a319bd3d24afb1137030559337 hrs 19 mins ago0x18a672e11d637fffadccc99b152f4895da0696010xac75b73394c329376c214663d92156afa864a77f1 wei
0x1dd65e48b286b3d48d0b3147dead203bb53433a6fa0c516edcc55f5cfde9197930559277 hrs 20 mins ago0x18a672e11d637fffadccc99b152f4895da0696010xac75b73394c329376c214663d92156afa864a77f0.3 Ether
0x7220d6c5eb7e2e12163e90dea2a2337676d8cffa7f465c12da4e965ed050ec0c30559207 hrs 22 mins ago0x18a672e11d637fffadccc99b152f4895da0696010xac75b73394c329376c214663d92156afa864a77f1 wei
0xeefd2baec8045cda58d9fbcc7251f49470acfcd1ff0b21e89a955355123f956e30559147 hrs 23 mins ago0x18a672e11d637fffadccc99b152f4895da0696010xac75b73394c329376c214663d92156afa864a77f1 wei
0xe500956ae4eb4c411867df82bbe27d7a49034c63bc4e3b8ea916de5a1a20020230559087 hrs 24 mins ago0x18a672e11d637fffadccc99b152f4895da0696010xac75b73394c329376c214663d92156afa864a77f0.3 Ether
0x967a82ee5588a8aa42dc30cf66352e67a253234aff077a54cfa840b2f4f2eece30558877 hrs 28 mins ago0x18a672e11d637fffadccc99b152f4895da0696010xac75b73394c329376c214663d92156afa864a77f1 wei
0x56c0bd967fa2d94a7bad763013501222b5e8031c4448e899ca5cbb919ed00b3830558817 hrs 29 mins ago0x18a672e11d637fffadccc99b152f4895da0696010xac75b73394c329376c214663d92156afa864a77f1 wei
0x70ba68a68a84dcc37d28ef8c158a099b2cbd0f9064f91618d4f88065874fbc2e30558747 hrs 31 mins ago0x18a672e11d637fffadccc99b152f4895da0696010xac75b73394c329376c214663d92156afa864a77f1 wei
0x381bde50c552fc60ec43002d538aed5339f4817c14f31909db2005f157fb07c230558677 hrs 33 mins ago0x18a672e11d637fffadccc99b152f4895da0696010xac75b73394c329376c214663d92156afa864a77f0.3 Ether
0x9a1ecd2589938c7789c37ac4a3bbd838bfcc5b6dbc634e3450eb906e93503fff30556488 hrs 26 mins ago0x18a672e11d637fffadccc99b152f4895da0696010x30035d68c8fa4dce23df3d7f202008e6d0205b3c1 wei
0x4ea3cb7cb822e7905cde80dd789ee0d6ebf2457e546b7de2f7a6ad91e6c4a53c30556418 hrs 27 mins ago0x18a672e11d637fffadccc99b152f4895da0696010x30035d68c8fa4dce23df3d7f202008e6d0205b3c1 wei
Contract Source Code Verified
Contract Name: Rouleth
Compiler Version: v0.3.5-2016-07-01-48238c9
Optimization Enabled: Yes
Online Solidity Editor:  -NA-



  Contract Source Code   Find Similiar Contracts
//                       , ; ,   .-'"""'-.   , ; ,
//                       \\|/  .'          '.  \|//
//                        \-;-/   ()   ()   \-;-/
//                        // ;               ; \\
//                       //__; :.         .; ;__\\
//                      `-----\'.'-.....-'.'/-----'
//                             '.'.-.-,_.'.'
//                               '(  (..-'
//                                 '-'
//  ROULETH 
//
//  Play the Roulette on ethereum blockchain !
//  (or become a member of Rouleth's Decentralized Organisation  and contribute to the bankroll.) 
//
//
//
//   check latest contract address version on the current website interface
//   V 2
//
//
//

contract Rouleth
{
    //Game and Global Variables, Structure of gambles
    address developer;
    uint8 blockDelay; //nb of blocks to wait before spin
    uint8 blockExpiration; //nb of blocks before bet expiration (due to hash storage limits)
    uint256 maxGamble; //max gamble value manually set by config
    uint256 minGamble; //min gamble value manually set by config
    uint maxBetsPerBlock; //limits the number of bets per blocks to prevent miner cheating
    uint nbBetsCurrentBlock; //counts the nb of bets in the block
    uint casinoStatisticalLimit; //ratio payroll and max win
    //Current gamble value possibly lower than limit auto
    uint256 currentMaxGamble; 
    //Gambles
    enum BetTypes{number, color, parity, dozen, column, lowhigh} 
    struct Gamble
    {
	address player;
        bool spinned; //Was the rouleth spinned ?
	bool win;
	//Possible bet types
        BetTypes betType;
	uint8 input; //stores number, color, dozen or oddeven
	uint256 wager;
	uint256 blockNumber; //block of bet
	uint256 blockSpinned; //block of spin
        uint8 wheelResult;
    }
    Gamble[] private gambles;
    uint totalGambles; 
    //Tracking progress of players
    mapping (address=>uint) gambleIndex; //current gamble index of the player
    //records current status of player
    enum Status {waitingForBet, waitingForSpin} mapping (address=>Status) playerStatus; 


    //**********************************************
    //        Management & Config FUNCTIONS        //
    //**********************************************

    function  Rouleth() private //creation settings
    { 
        developer = msg.sender;
        blockDelay=1; //indicates which block after bet will be used for RNG
	blockExpiration=200; //delay after which gamble expires
        minGamble=50 finney; //configurable min bet
        maxGamble=500 finney; //configurable max bet
        maxBetsPerBlock=5; // limit of bets per block, to prevent multiple bets per miners
        casinoStatisticalLimit=100; //we are targeting at least 400
    }
    
    modifier onlyDeveloper() 
    {
	if (msg.sender!=developer) throw;
	_
    }
    
    function changeDeveloper_only_Dev(address new_dev)
    noEthSent
    onlyDeveloper
    {
	developer=new_dev;
    }

    //Prevents accidental sending of Eth when you shouldn't
    modifier noEthSent()
    {
        if (msg.value>0) 
	{
	    throw;
	}
        _
    }


    //Activate, Deactivate Betting
    enum States{active, inactive} States private contract_state;
    
    function disableBetting_only_Dev()
    noEthSent
    onlyDeveloper
    {
        contract_state=States.inactive;
    }


    function enableBetting_only_Dev()
    noEthSent
    onlyDeveloper
    {
        contract_state=States.active;

    }
    
    modifier onlyActive()
    {
        if (contract_state==States.inactive) throw;
        _
    }



    //Change some settings within safety bounds
    function changeSettings_only_Dev(uint newCasinoStatLimit, uint newMaxBetsBlock, uint256 newMinGamble, uint256 newMaxGamble, uint16 newMaxInvestor, uint256 newMinInvestment,uint256 newMaxInvestment, uint256 newLockPeriod, uint8 newBlockDelay, uint8 newBlockExpiration)
    noEthSent
    onlyDeveloper
    {


        // changes the statistical multiplier that guarantees the long run casino survival
        if (newCasinoStatLimit<100) throw;
        casinoStatisticalLimit=newCasinoStatLimit;
        //Max number of bets per block to prevent miner cheating
        maxBetsPerBlock=newMaxBetsBlock;
        //MAX BET : limited by payroll/(casinoStatisticalLimit*35)
        if (newMaxGamble<newMinGamble) throw;  
	else { maxGamble=newMaxGamble; }
        //Min Bet
        if (newMinGamble<0) throw; 
	else { minGamble=newMinGamble; }
        //MAX NB of DAO members (can only increase (within bounds) or stay equal)
        //this number of members can only increase after 25k spins on Rouleth
        //refuse change of max number of members if less than 25k spins played
        if (newMaxInvestor!=setting_maxInvestors && gambles.length<25000) throw;
        if ( newMaxInvestor<setting_maxInvestors 
             || newMaxInvestor>investors.length) throw;
        else { setting_maxInvestors=newMaxInvestor;}
        //computes the results of the vote of the VIP members, fees to apply to new members
        computeResultVoteExtraInvestFeesRate();
        if (newMaxInvestment<newMinInvestment) throw;
        //MIN INVEST : 
        setting_minInvestment=newMinInvestment;
        //MAX INVEST : 
        setting_maxInvestment=newMaxInvestment;
        //Invest LOCK PERIOD
	//1 year max
	//can also serve as a failsafe to shutdown withdraws for a period
        if (setting_lockPeriod>360 days) throw; 
        setting_lockPeriod=newLockPeriod;
        //Delay before spin :
	blockDelay=newBlockDelay;
	if (newBlockExpiration<blockDelay+20) throw;
	blockExpiration=newBlockExpiration;
        updateMaxBet();
    }


    //**********************************************
    //                 Nicknames FUNCTIONS                    //
    //**********************************************

    //User set nickname
    mapping (address => string) nicknames;
    function setNickname(string name) 
    noEthSent
    {
        if (bytes(name).length >= 2 && bytes(name).length <= 30)
            nicknames[msg.sender] = name;
    }
    function getNickname(address _address) constant returns(string _name) {
        _name = nicknames[_address];
    }

    
    //**********************************************
    //                 BETTING FUNCTIONS                    //
    //**********************************************

    //***//basic betting without Mist or contract call
    //activates when the player only sends eth to the contract
    //without specifying any type of bet.
    function () 
    {
	//defaut bet : bet on red
	betOnColor(true,false);
    } 

    //Admin function that
    //recalculates max bet
    //updated after each bet and change of bankroll
    function updateMaxBet() private
    {
	//check that setting is still within safety bounds
        if (payroll/(casinoStatisticalLimit*35) > maxGamble) 
	{ 
	    currentMaxGamble=maxGamble;
        }
	else
	{ 
	    currentMaxGamble = payroll/(casinoStatisticalLimit*35);
	}
    }


    //***//Guarantees that gamble is under max bet and above min.
    // returns bet value
    function checkBetValue() private returns(uint256 playerBetValue)
    {
        if (msg.value < minGamble) throw;
	if (msg.value > currentMaxGamble) //if above max, send difference back
	{
            playerBetValue=currentMaxGamble;
	}
        else
        { playerBetValue=msg.value; }
        return;
    }


    //check number of bets in block (to prevent miner cheating)
    modifier checkNbBetsCurrentBlock()
    {
        if (gambles.length!=0 && block.number==gambles[gambles.length-1].blockNumber) nbBetsCurrentBlock+=1;
        else nbBetsCurrentBlock=0;
        if (nbBetsCurrentBlock>=maxBetsPerBlock) throw;
        _
    }


    //Function record bet called by all others betting functions
    function placeBet(BetTypes betType_, uint8 input_) private
    {
	// Before we record, we may have to spin the past bet if the croupier bot 
	// is down for some reason or if the player played again too quickly.
	// This would fail though if the player tries too play to quickly (in consecutive block).
	// gambles should be spaced by at least a block
	// the croupier bot should spin within 2 blocks (~30 secs) after your bet.
	// if the bet expires it is added to casino profit, otherwise it would be a way to cheat
	if (playerStatus[msg.sender]!=Status.waitingForBet)
	{
            SpinTheWheel(msg.sender);
	}
        //Once this is done, we can record the new bet
	playerStatus[msg.sender]=Status.waitingForSpin;
	gambleIndex[msg.sender]=gambles.length;
        totalGambles++;
        //adapts wager to casino limits
        uint256 betValue = checkBetValue();
	gambles.push(Gamble(msg.sender, false, false, betType_, input_, betValue, block.number, 0, 37)); //37 indicates not spinned yet
	//refund excess bet (at last step vs re-entry)
        if (betValue<msg.value) 
        {
 	    if (msg.sender.send(msg.value-betValue)==false) throw;
        }
    }


    //***//bet on Number	
    function betOnNumber(uint8 numberChosen)
    onlyActive
    checkNbBetsCurrentBlock
    {
        //check that number chosen is valid and records bet
        if (numberChosen>36) throw;
        placeBet(BetTypes.number, numberChosen);
    }

    //***// function betOnColor
    //bet type : color
    //input : 0 for red
    //input : 1 for black
    function betOnColor(bool Red, bool Black)
    onlyActive
    checkNbBetsCurrentBlock
    {
        uint8 count;
        uint8 input;
        if (Red) 
        { 
            count+=1; 
            input=0;
        }
        if (Black) 
        {
            count+=1; 
            input=1;
        }
        if (count!=1) throw;
        placeBet(BetTypes.color, input);
    }

    //***// function betOnLow_High
    //bet type : lowhigh
    //input : 0 for low
    //input : 1 for low
    function betOnLowHigh(bool Low, bool High)
    onlyActive
    checkNbBetsCurrentBlock
    {
        uint8 count;
        uint8 input;
        if (Low) 
        { 
            count+=1; 
            input=0;
        }
        if (High) 
        {
            count+=1; 
            input=1;
        }
        if (count!=1) throw;
        placeBet(BetTypes.lowhigh, input);
    }

    //***// function betOnOddEven
    //bet type : parity
    //input : 0 for even
    //input : 1 for odd
    function betOnOddEven(bool Odd, bool Even)
    onlyActive
    checkNbBetsCurrentBlock
    {
        uint8 count;
        uint8 input;
        if (Even) 
        { 
            count+=1; 
            input=0;
        }
        if (Odd) 
        {
            count+=1; 
            input=1;
        }
        if (count!=1) throw;
        placeBet(BetTypes.parity, input);
    }


    //***// function betOnDozen
    //     //bet type : dozen
    //     //input : 0 for first dozen
    //     //input : 1 for second dozen
    //     //input : 2 for third dozen
    function betOnDozen(bool First, bool Second, bool Third)
    {
        betOnColumnOrDozen(First,Second,Third, BetTypes.dozen);
    }


    // //***// function betOnColumn
    //     //bet type : column
    //     //input : 0 for first column
    //     //input : 1 for second column
    //     //input : 2 for third column
    function betOnColumn(bool First, bool Second, bool Third)
    {
        betOnColumnOrDozen(First, Second, Third, BetTypes.column);
    }

    function betOnColumnOrDozen(bool First, bool Second, bool Third, BetTypes bet) private
    onlyActive
    checkNbBetsCurrentBlock
    { 
        uint8 count;
        uint8 input;
        if (First) 
        { 
            count+=1; 
            input=0;
        }
        if (Second) 
        {
            count+=1; 
            input=1;
        }
        if (Third) 
        {
            count+=1; 
            input=2;
        }
        if (count!=1) throw;
        placeBet(bet, input);
    }


    //**********************************************
    // Spin The Wheel & Check Result FUNCTIONS//
    //**********************************************

    event Win(address player, uint8 result, uint value_won, bytes32 bHash, bytes32 sha3Player, uint gambleId);
    event Loss(address player, uint8 result, uint value_loss, bytes32 bHash, bytes32 sha3Player, uint gambleId);

    //***//function to spin callable
    // no eth allowed
    function spinTheWheel(address spin_for_player)
    noEthSent
    {
        SpinTheWheel(spin_for_player);
    }


    function SpinTheWheel(address playerSpinned) private
    {
        if (playerSpinned==0)
	{
	    playerSpinned=msg.sender;         //if no index spins for the sender
	}

	//check that player has to spin
        if (playerStatus[playerSpinned]!=Status.waitingForSpin) throw;
        //redundent double check : check that gamble has not been spinned already
        if (gambles[gambleIndex[playerSpinned]].spinned==true) throw;
        //check that the player waited for the delay before spin
        //and also that the bet is not expired
	uint playerblock = gambles[gambleIndex[playerSpinned]].blockNumber;
        //too early to spin
	if (block.number<=playerblock+blockDelay) throw;
        //too late, bet expired, player lost
        else if (block.number>playerblock+blockExpiration)  solveBet(playerSpinned, 255, false, 1, 0, 0) ;
	//spin !
        else
	{
	    uint8 wheelResult;
            //Spin the wheel, 
            bytes32 blockHash= block.blockhash(playerblock+blockDelay);
            //security check that the Hash is not empty
            if (blockHash==0) throw;
	    // generate the hash for RNG from the blockHash and the player's address
            bytes32 shaPlayer = sha3(playerSpinned, blockHash);
	    // get the final wheel result
	    wheelResult = uint8(uint256(shaPlayer)%37);
            //check result against bet and pay if win
	    checkBetResult(wheelResult, playerSpinned, blockHash, shaPlayer);
	}
    }
    

    //CHECK BETS FUNCTIONS private
    function checkBetResult(uint8 result, address player, bytes32 blockHash, bytes32 shaPlayer) private
    {
        BetTypes betType=gambles[gambleIndex[player]].betType;
        //bet on Number
        if (betType==BetTypes.number) checkBetNumber(result, player, blockHash, shaPlayer);
        else if (betType==BetTypes.parity) checkBetParity(result, player, blockHash, shaPlayer);
        else if (betType==BetTypes.color) checkBetColor(result, player, blockHash, shaPlayer);
	else if (betType==BetTypes.lowhigh) checkBetLowhigh(result, player, blockHash, shaPlayer);
	else if (betType==BetTypes.dozen) checkBetDozen(result, player, blockHash, shaPlayer);
        else if (betType==BetTypes.column) checkBetColumn(result, player, blockHash, shaPlayer);
        updateMaxBet();  //at the end, update the Max possible bet
    }

    // function solve Bet once result is determined : sends to winner, adds loss to profit
    function solveBet(address player, uint8 result, bool win, uint8 multiplier, bytes32 blockHash, bytes32 shaPlayer) private
    {
        //Update status and record spinned
        playerStatus[player]=Status.waitingForBet;
        gambles[gambleIndex[player]].wheelResult=result;
        gambles[gambleIndex[player]].spinned=true;
        gambles[gambleIndex[player]].blockSpinned=block.number;
	uint bet_v = gambles[gambleIndex[player]].wager;
	
        if (win)
        {
	    gambles[gambleIndex[player]].win=true;
	    uint win_v = (multiplier-1)*bet_v;
            lossSinceChange+=win_v;
            Win(player, result, win_v, blockHash, shaPlayer, gambleIndex[player]);
            //send win!
	    //safe send vs potential callstack overflowed spins
            if (player.send(win_v+bet_v)==false) throw;
        }
        else
        {
	    Loss(player, result, bet_v-1, blockHash, shaPlayer, gambleIndex[player]);
            profitSinceChange+=bet_v-1;
            //send 1 wei to confirm spin if loss
            if (player.send(1)==false) throw;
        }

    }

    // checkbeton number(input)
    // bet type : number
    // input : chosen number
    function checkBetNumber(uint8 result, address player, bytes32 blockHash, bytes32 shaPlayer) private
    {
        bool win;
        //win
	if (result==gambles[gambleIndex[player]].input)
	{
            win=true;  
        }
        solveBet(player, result,win,36, blockHash, shaPlayer);
    }


    // checkbet on oddeven
    // bet type : parity
    // input : 0 for even, 1 for odd
    function checkBetParity(uint8 result, address player, bytes32 blockHash, bytes32 shaPlayer) private
    {
        bool win;
        //win
	if (result%2==gambles[gambleIndex[player]].input && result!=0)
	{
            win=true;                
        }
        solveBet(player,result,win,2, blockHash, shaPlayer);
    }
    
    // checkbet on lowhigh
    // bet type : lowhigh
    // input : 0 low, 1 high
    function checkBetLowhigh(uint8 result, address player, bytes32 blockHash, bytes32 shaPlayer) private
    {
        bool win;
        //win
	if (result!=0 && ( (result<19 && gambles[gambleIndex[player]].input==0)
			   || (result>18 && gambles[gambleIndex[player]].input==1)
			 ) )
	{
            win=true;
        }
        solveBet(player,result,win,2, blockHash, shaPlayer);
    }

    // checkbet on color
    // bet type : color
    // input : 0 red, 1 black
    uint[18] red_list=[1,3,5,7,9,12,14,16,18,19,21,23,25,27,30,32,34,36];
    function checkBetColor(uint8 result, address player, bytes32 blockHash, bytes32 shaPlayer) private
    {
        bool red;
        //check if red
        for (uint8 k; k<18; k++)
        { 
            if (red_list[k]==result) 
            { 
                red=true; 
                break;
            }
        }
        bool win;
        //win
        if ( result!=0
             && ( (gambles[gambleIndex[player]].input==0 && red)  
                  || ( gambles[gambleIndex[player]].input==1 && !red)  ) )
        {
            win=true;
        }
        solveBet(player,result,win,2, blockHash, shaPlayer);
    }

    // checkbet on dozen
    // bet type : dozen
    // input : 0 first, 1 second, 2 third
    function checkBetDozen(uint8 result, address player, bytes32 blockHash, bytes32 shaPlayer) private
    { 
        bool win;
        //win on first dozen
     	if ( result!=0 &&
             ( (result<13 && gambles[gambleIndex[player]].input==0)
     	       ||
               (result>12 && result<25 && gambles[gambleIndex[player]].input==1)
               ||
               (result>24 && gambles[gambleIndex[player]].input==2) ) )
     	{
            win=true;                
        }
        solveBet(player,result,win,3, blockHash, shaPlayer);
    }

    // checkbet on column
    // bet type : column
    // input : 0 first, 1 second, 2 third
    function checkBetColumn(uint8 result, address player, bytes32 blockHash, bytes32 shaPlayer) private
    {
        bool win;
        //win
        if ( result!=0
             && ( (gambles[gambleIndex[player]].input==0 && result%3==1)  
                  || ( gambles[gambleIndex[player]].input==1 && result%3==2)
                  || ( gambles[gambleIndex[player]].input==2 && result%3==0)  ) )
        {
            win=true;
        }
        solveBet(player,result,win,3, blockHash, shaPlayer);
    }


    //D.A.O. FUNCTIONS


    //total casino payroll
    uint256 payroll;
    //Profit Loss since last investor change
    uint256 profitSinceChange;
    uint256 lossSinceChange;
    //DAO members struct array (hard capped to 777 members (77 VIP + 700 extra members) )
    struct Investor
    {
	address investor;
	uint256 time;
    }	
    
    Investor[777] private investors; //array of 777 elements (max Rouleth's members nb.)
    uint16 setting_maxInvestors = 77; //Initially restricted to 77 VIP Members
    //Balances of the DAO members
    mapping (address=>uint256) balance; 
    //lockPeriod
    //minimum membership time
    uint256 setting_lockPeriod=30 days ;
    uint256 setting_minInvestment=100 ether; //min amount to send when using "invest()"
    uint256 setting_maxInvestment=200 ether; //max amount to send when using "invest()"
    
    event newInvest(address player, uint invest_v, uint net_invest_v);


    //Become a DAO member.
    function invest()
    {
        // update balances before altering the shares            
        updateBalances();
        uint256 netInvest;
        uint excess;
        // reset the open position counter to values out of bounds
        // =999 if full
        uint16 openPosition=999;
        bool alreadyInvestor;
        // loop over array to find if already member, 
        // and record a potential openPosition
        for (uint16 k = 0; k<setting_maxInvestors; k++)
        { 
            // captures an index of an open position
            if (investors[k].investor==0) openPosition=k; 
            // captures if already a member 
            else if (investors[k].investor==msg.sender)
            {
                alreadyInvestor=true;
                break;
            }
        }
        //new Member
        if (!alreadyInvestor)
        {
            // check that more than min is sent (variable setting)
            if (msg.value<setting_minInvestment) throw;
            // check that less than max is sent (variable setting)
            // otherwise refund
            if (msg.value>setting_maxInvestment)
            {
                excess=msg.value-setting_maxInvestment;
  		netInvest=setting_maxInvestment;
            }
	    else
	    {
		netInvest=msg.value;
	    }
            //members can't become a VIP member after the initial period
            if (setting_maxInvestors >77 && openPosition<77) throw;
            //case : array not full, record new member
            else if (openPosition!=999) investors[openPosition]=Investor(msg.sender, now);
            //case : array full
            else
            {
                throw;
            }
        }
        //already a member
        else
        {
            netInvest=msg.value;
            //is already above the max balance allowed or is sending
	    // too much refuse additional invest
            if (balance[msg.sender]+msg.value>setting_maxInvestment)
            {
                throw;
            }
	    // this additionnal amount should be of at least 1/5 of "setting_minInvestment" (vs spam)
	    if (msg.value<setting_minInvestment/5) throw;
        }

        // add to balance of member and to bankroll
        // 10% of initial 77 VIP members investment is allocated to
        // game developement provider chosen by Rouleth DAO
	// 90% to bankroll
        //share that will be allocated to game dev
        uint256 developmentAllocation;
        developmentAllocation=10*netInvest/100; 
        netInvest-=developmentAllocation;
        //send game development allocation to Rouleth DAO or tech provider
        if (developer.send(developmentAllocation)==false) throw;

	// Apply extra entry fee once casino has been opened to extra members
	// that fee will be shared between the VIP members and represents the increment of
	// market value of their shares in Rouleth to outsiders
	// warning if a VIP adds to its initial invest after the casino has been opened to 
	// extra members he will pay have to pay this fee.
        if (setting_maxInvestors>77)
        {
            // % of extra member's investment that rewards VIP funders
            // Starts at 100%
            // is set by a vote and computed when settings are changed
            // to allow more investors
            uint256 entryExtraCost=voted_extraInvestFeesRate*netInvest/100;
            // add to VIP profit (to be shared by later call by dev.)
            profitVIP += entryExtraCost;
            netInvest-=entryExtraCost;
        }
        newInvest(msg.sender, msg.value, netInvest);//event log
        balance[msg.sender]+=netInvest; //add to balance
        payroll+=netInvest; //add to bankroll
        updateMaxBet();
        //refund potential excess
        if (excess>0) 
        {
            if (msg.sender.send(excess)==false) throw;
        }
    }


    //Allows to transfer your DAO account to another address
    //target should not be currently a DAO member of rouleth
    //enter twice the address to make sure you make no mistake.
    //this can't be reversed if you don't own the target account
    function transferInvestorAccount(address newInvestorAccountOwner, address newInvestorAccountOwner_confirm)
    noEthSent
    {
        if (newInvestorAccountOwner!=newInvestorAccountOwner_confirm) throw;
        if (newInvestorAccountOwner==0) throw;
        //retrieve investor ID
        uint16 investorID=999;
        for (uint16 k = 0; k<setting_maxInvestors; k++)
        {
	    //new address cant be of a current investor
            if (investors[k].investor==newInvestorAccountOwner) throw;

	    //retrieve investor id
            if (investors[k].investor==msg.sender)
            {
                investorID=k;
            }
        }
        if (investorID==999) throw; //stop if not a member
	else
	    //accept and execute change of address
	    //votes on entryFeesRate are not transfered
	    //new address should vote again
	{
	    balance[newInvestorAccountOwner]=balance[msg.sender];
	    balance[msg.sender]=0;
            investors[investorID].investor=newInvestorAccountOwner;
	}
    }
    
    //***// Withdraw function (only after lockPeriod)
    // input : amount to withdraw in Wei (leave empty for full withdraw)
    // if your withdraw brings your balance under the min required,
    // your balance is fully withdrawn
    event withdraw(address player, uint withdraw_v);
    
    function withdrawInvestment(uint256 amountToWithdrawInWei)
    noEthSent
    {
	//vs spam withdraw min 1/10 of min
	if (amountToWithdrawInWei!=0 && amountToWithdrawInWei<setting_minInvestment/10) throw;
        //before withdraw, update balances with the Profit and Loss sinceChange
        updateBalances();
	//check that amount requested is authorized  
	if (amountToWithdrawInWei>balance[msg.sender]) throw;
        //retrieve member ID
        uint16 investorID=999;
        for (uint16 k = 0; k<setting_maxInvestors; k++)
        {
            if (investors[k].investor==msg.sender)
            {
                investorID=k;
                break;
            }
        }
        if (investorID==999) throw; //stop if not a member
        //check if investment lock period is over
        if (investors[investorID].time+setting_lockPeriod>now) throw;
        //if balance left after withdraw is still above min accept partial withdraw
        if (balance[msg.sender]-amountToWithdrawInWei>=setting_minInvestment && amountToWithdrawInWei!=0)
        {
            balance[msg.sender]-=amountToWithdrawInWei;
            payroll-=amountToWithdrawInWei;
            //send amount to investor (with security if transaction fails)
            if (msg.sender.send(amountToWithdrawInWei)==false) throw;
	    withdraw(msg.sender, amountToWithdrawInWei);
        }
        else
            //if amountToWithdraw=0 : user wants full withdraw
            //if balance after withdraw is < min invest, withdraw all and delete member
        {
            //send amount to member (with security if transaction fails)
            uint256 fullAmount=balance[msg.sender];
            payroll-=fullAmount;
            balance[msg.sender]=0;

	    //delete member
            delete investors[investorID];
            if (msg.sender.send(fullAmount)==false) throw;
   	    withdraw(msg.sender, fullAmount);
        }
        updateMaxBet();
    }

    //***// updates balances with Profit Losses when there is a withdraw/deposit
    // can be called by dev for accounting when there are no more changes
    function manualUpdateBalances_only_Dev()
    noEthSent
    onlyDeveloper
    {
	updateBalances();
    }
    function updateBalances() private
    {
        //split Profits
        uint256 profitToSplit;
        uint256 lossToSplit;
        if (profitSinceChange==0 && lossSinceChange==0)
        { return; }
        
        else
        {
            // Case : Global profit (more win than losses)
            // 20% fees for game development on global profit (if profit>loss)
            if (profitSinceChange>lossSinceChange)
            {
                profitToSplit=profitSinceChange-lossSinceChange;
                uint256 developerFees=profitToSplit*20/100;
                profitToSplit-=developerFees;
                if (developer.send(developerFees)==false) throw;
            }
            else
            {
                lossToSplit=lossSinceChange-profitSinceChange;
            }
            
            //share the loss and profits between all DAO members 
            //(proportionnaly. to each one's balance)

            uint totalShared;
            for (uint16 k=0; k<setting_maxInvestors; k++)
            {
                address inv=investors[k].investor;
                if (inv==0) continue;
                else
                {
                    if (profitToSplit!=0) 
                    {
                        uint profitShare=(profitToSplit*balance[inv])/payroll;
                        balance[inv]+=profitShare;
                        totalShared+=profitShare;
                    }
                    else if (lossToSplit!=0) 
                    {
                        uint lossShare=(lossToSplit*balance[inv])/payroll;
                        balance[inv]-=lossShare;
                        totalShared+=lossShare;
                        
                    }
                }
            }
            // update bankroll
	    // and handle potential very small left overs from integer div.
            if (profitToSplit !=0) 
            {
		payroll+=profitToSplit;
		balance[developer]+=profitToSplit-totalShared;
            }
            else if (lossToSplit !=0) 
            {
		payroll-=lossToSplit;
		balance[developer]-=lossToSplit-totalShared;
            }
            profitSinceChange=0; //reset Profit;
            lossSinceChange=0; //reset Loss ;
        }
    }
    

    //VIP Voting on Extra Invest Fees Rate
    //mapping records 100 - vote
    mapping (address=>uint) hundredminus_extraInvestFeesRate;
    // max fee is 99%
    // a fee of 100% indicates that the VIP has never voted.
    function voteOnNewEntryFees_only_VIP(uint8 extraInvestFeesRate_0_to_99)
    noEthSent
    {
        if (extraInvestFeesRate_0_to_99<1 || extraInvestFeesRate_0_to_99>99) throw;
        hundredminus_extraInvestFeesRate[msg.sender]=100-extraInvestFeesRate_0_to_99;
    }

    uint256 payrollVIP;
    uint256 voted_extraInvestFeesRate;
    function computeResultVoteExtraInvestFeesRate() private
    {
        payrollVIP=0;
        voted_extraInvestFeesRate=0;
        //compute total payroll of the VIPs
        //compute vote results among VIPs
        for (uint8 k=0; k<77; k++)
        {
            if (investors[k].investor==0) continue;
            else
            {
                //don't count vote if the VIP never voted
                if (hundredminus_extraInvestFeesRate[investors[k].investor]==0) continue;
                else
                {
                    payrollVIP+=balance[investors[k].investor];
                    voted_extraInvestFeesRate+=hundredminus_extraInvestFeesRate[investors[k].investor]*balance[investors[k].investor];
                }
            }
        }
	//compute final result
	    if (payrollVIP!=0)
	    {
            voted_extraInvestFeesRate=100-voted_extraInvestFeesRate/payrollVIP;
     	    }
    }


    //Split the profits of the VIP members on extra members' contribution
    uint profitVIP;
    function splitProfitVIP_only_Dev()
    noEthSent
    onlyDeveloper
    {
        payrollVIP=0;
        //compute total payroll of the VIPs
        for (uint8 k=0; k<77; k++)
        {
            if (investors[k].investor==0) continue;
            else
            {
                payrollVIP+=balance[investors[k].investor];
            }
        }
        //split the profits of the VIP members on extra member's contribution
	uint totalSplit;
        for (uint8 i=0; i<77; i++)
        {
            if (investors[i].investor==0) continue;
            else
            {
		uint toSplit=balance[investors[i].investor]*profitVIP/payrollVIP;
                balance[investors[i].investor]+=toSplit;
		totalSplit+=toSplit;
            }
        }
	//take care of Integer Div remainders, and add to bankroll
	balance[developer]+=profitVIP-totalSplit;
	payroll+=profitVIP;
	//reset var profitVIP
        profitVIP=0;
    }

    
    //INFORMATION FUNCTIONS
    function checkProfitLossSinceInvestorChange() constant returns(uint profit_since_update_balances, uint loss_since_update_balances, uint profit_VIP_since_update_balances)
    {
        profit_since_update_balances=profitSinceChange;
        loss_since_update_balances=lossSinceChange;
        profit_VIP_since_update_balances=profitVIP;	
        return;
    }

    function checkInvestorBalance(address investor) constant returns(uint balanceInWei)
    {
        balanceInWei=balance[investor];
        return;
    }

    function getInvestorList(uint index) constant returns(address investor, uint endLockPeriod)
    {
        investor=investors[index].investor;
        endLockPeriod=investors[index].time+setting_lockPeriod;
        return;
    }
    
    function investmentEntryInfos() constant returns(uint current_max_nb_of_investors, uint investLockPeriod, uint voted_Fees_Rate_on_extra_investments)
    {
    	investLockPeriod=setting_lockPeriod;
    	voted_Fees_Rate_on_extra_investments=voted_extraInvestFeesRate;
    	current_max_nb_of_investors=setting_maxInvestors;
    	return;
    }
    
    function getSettings() constant returns(uint maxBet, uint8 blockDelayBeforeSpin)
    {
    	maxBet=currentMaxGamble;
    	blockDelayBeforeSpin=blockDelay;
    	return ;
    }

    function getTotalGambles() constant returns(uint _totalGambles)
    {
        _totalGambles=totalGambles;
    	return ;
    }
    
    function getPayroll() constant returns(uint payroll_at_last_update_balances)
    {
        payroll_at_last_update_balances=payroll;
    	return ;
    }

    
    function checkMyBet(address player) constant returns(Status player_status, BetTypes bettype, uint8 input, uint value, uint8 result, bool wheelspinned, bool win, uint blockNb, uint blockSpin, uint gambleID)
    {
        player_status=playerStatus[player];
        bettype=gambles[gambleIndex[player]].betType;
        input=gambles[gambleIndex[player]].input;
        value=gambles[gambleIndex[player]].wager;
        result=gambles[gambleIndex[player]].wheelResult;
        wheelspinned=gambles[gambleIndex[player]].spinned;
        win=gambles[gambleIndex[player]].win;
        blockNb=gambles[gambleIndex[player]].blockNumber;
        blockSpin=gambles[gambleIndex[player]].blockSpinned;
    	gambleID=gambleIndex[player];
    	return;
    }
    
    function getGamblesList(uint256 index) constant returns(address player, BetTypes bettype, uint8 input, uint value, uint8 result, bool wheelspinned, bool win, uint blockNb, uint blockSpin)
    {
        player=gambles[index].player;
        bettype=gambles[index].betType;
        input=gambles[index].input;
        value=gambles[index].wager;
        result=gambles[index].wheelResult;
        wheelspinned=gambles[index].spinned;
        win=gambles[index].win;
    	blockNb=gambles[index].blockNumber;
        blockSpin=gambles[index].blockSpinned;
    	return;
    }

} //end of contract

  Contract ABI  
[{"constant":false,"inputs":[{"name":"name","type":"string"}],"name":"setNickname","outputs":[],"type":"function"},{"constant":false,"inputs":[{"name":"amountToWithdrawInWei","type":"uint256"}],"name":"withdrawInvestment","outputs":[],"type":"function"},{"constant":false,"inputs":[],"name":"manualUpdateBalances_only_Dev","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"checkProfitLossSinceInvestorChange","outputs":[{"name":"profit_since_update_balances","type":"uint256"},{"name":"loss_since_update_balances","type":"uint256"},{"name":"profit_VIP_since_update_balances","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"extraInvestFeesRate_0_to_99","type":"uint8"}],"name":"voteOnNewEntryFees_only_VIP","outputs":[],"type":"function"},{"constant":false,"inputs":[{"name":"newInvestorAccountOwner","type":"address"},{"name":"newInvestorAccountOwner_confirm","type":"address"}],"name":"transferInvestorAccount","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"getTotalGambles","outputs":[{"name":"_totalGambles","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[],"name":"disableBetting_only_Dev","outputs":[],"type":"function"},{"constant":false,"inputs":[{"name":"Red","type":"bool"},{"name":"Black","type":"bool"}],"name":"betOnColor","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"investmentEntryInfos","outputs":[{"name":"current_max_nb_of_investors","type":"uint256"},{"name":"investLockPeriod","type":"uint256"},{"name":"voted_Fees_Rate_on_extra_investments","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[{"name":"player","type":"address"}],"name":"checkMyBet","outputs":[{"name":"player_status","type":"uint8"},{"name":"bettype","type":"uint8"},{"name":"input","type":"uint8"},{"name":"value","type":"uint256"},{"name":"result","type":"uint8"},{"name":"wheelspinned","type":"bool"},{"name":"win","type":"bool"},{"name":"blockNb","type":"uint256"},{"name":"blockSpin","type":"uint256"},{"name":"gambleID","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getInvestorList","outputs":[{"name":"investor","type":"address"},{"name":"endLockPeriod","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[],"name":"enableBetting_only_Dev","outputs":[],"type":"function"},{"constant":false,"inputs":[{"name":"new_dev","type":"address"}],"name":"changeDeveloper_only_Dev","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"getSettings","outputs":[{"name":"maxBet","type":"uint256"},{"name":"blockDelayBeforeSpin","type":"uint8"}],"type":"function"},{"constant":true,"inputs":[],"name":"getPayroll","outputs":[{"name":"payroll_at_last_update_balances","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getNickname","outputs":[{"name":"_name","type":"string"}],"type":"function"},{"constant":false,"inputs":[{"name":"Low","type":"bool"},{"name":"High","type":"bool"}],"name":"betOnLowHigh","outputs":[],"type":"function"},{"constant":false,"inputs":[{"name":"numberChosen","type":"uint8"}],"name":"betOnNumber","outputs":[],"type":"function"},{"constant":false,"inputs":[{"name":"Odd","type":"bool"},{"name":"Even","type":"bool"}],"name":"betOnOddEven","outputs":[],"type":"function"},{"constant":false,"inputs":[],"name":"splitProfitVIP_only_Dev","outputs":[],"type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getGamblesList","outputs":[{"name":"player","type":"address"},{"name":"bettype","type":"uint8"},{"name":"input","type":"uint8"},{"name":"value","type":"uint256"},{"name":"result","type":"uint8"},{"name":"wheelspinned","type":"bool"},{"name":"win","type":"bool"},{"name":"blockNb","type":"uint256"},{"name":"blockSpin","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"First","type":"bool"},{"name":"Second","type":"bool"},{"name":"Third","type":"bool"}],"name":"betOnDozen","outputs":[],"type":"function"},{"constant":false,"inputs":[{"name":"newCasinoStatLimit","type":"uint256"},{"name":"newMaxBetsBlock","type":"uint256"},{"name":"newMinGamble","type":"uint256"},{"name":"newMaxGamble","type":"uint256"},{"name":"newMaxInvestor","type":"uint16"},{"name":"newMinInvestment","type":"uint256"},{"name":"newMaxInvestment","type":"uint256"},{"name":"newLockPeriod","type":"uint256"},{"name":"newBlockDelay","type":"uint8"},{"name":"newBlockExpiration","type":"uint8"}],"name":"changeSettings_only_Dev","outputs":[],"type":"function"},{"constant":false,"inputs":[{"name":"First","type":"bool"},{"name":"Second","type":"bool"},{"name":"Third","type":"bool"}],"name":"betOnColumn","outputs":[],"type":"function"},{"constant":false,"inputs":[{"name":"spin_for_player","type":"address"}],"name":"spinTheWheel","outputs":[],"type":"function"},{"constant":false,"inputs":[],"name":"invest","outputs":[],"type":"function"},{"constant":true,"inputs":[{"name":"investor","type":"address"}],"name":"checkInvestorBalance","outputs":[{"name":"balanceInWei","type":"uint256"}],"type":"function"},{"inputs":[],"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"player","type":"address"},{"indexed":false,"name":"result","type":"uint8"},{"indexed":false,"name":"value_won","type":"uint256"},{"indexed":false,"name":"bHash","type":"bytes32"},{"indexed":false,"name":"sha3Player","type":"bytes32"},{"indexed":false,"name":"gambleId","type":"uint256"}],"name":"Win","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"player","type":"address"},{"indexed":false,"name":"result","type":"uint8"},{"indexed":false,"name":"value_loss","type":"uint256"},{"indexed":false,"name":"bHash","type":"bytes32"},{"indexed":false,"name":"sha3Player","type":"bytes32"},{"indexed":false,"name":"gambleId","type":"uint256"}],"name":"Loss","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"player","type":"address"},{"indexed":false,"name":"invest_v","type":"uint256"},{"indexed":false,"name":"net_invest_v","type":"uint256"}],"name":"newInvest","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"player","type":"address"},{"indexed":false,"name":"withdraw_v","type":"uint256"}],"name":"withdraw","type":"event"}]

  Contract Creation Code Switch To Opcodes View
6102a06040819052600160609081526003608052600560a052600760c052600960e052600c61010052600e6101205260106101405260126101605260136101805260156101a05260176101c05260196101e052601b61020052601e61022052602061024052602261026052602461028052600d91601f919083905b8281111561009857825182600050559160200191906001019061007a565b506100b49291505b8082111561017657600081556001016100a0565b5050610634805461ffff1916604d17905562278d006106365568056bc75e2d6310000061063755680ad78ebc5ac6200000610638556000805475c800000000000000000000000000000000000000000060a860020a60ff021960a060020a60ff0219600160a060020a031990931633179290921674010000000000000000000000000000000000000000179190911617905566b1a2bc2ec500006002556706f05b59d3b2000060015560056003819055606490556129108061017a6000396000f35b509056606060405236156101485760e060020a60003504631c5d9faa81146101575780632037fcbf146101aa578063266710ca146101c45780632c6b2c92146101d55780632e0ef395146101e857806333ce7787146101fc578063402e623014610217578063580bdf3c146102215780635b7d47a9146102325780636ad50ed4146102545780636e1b6bcc146102705780636ed43eb01461042c578063750cae6a1461047a5780637c9cd7df1461048b57806385b4bb531461049f578063942385eb146104c5578063adaccd74146104d0578063adf54e0c1461054f578063b400d14914610570578063b738169c14610589578063bb84d362146105aa578063bcb3b5d2146105c3578063bfe8c1071461077f578063c7144269146107ac578063e548cf13146107dd578063e56c8552146107f6578063e8b5e51f1461080a578063f7ae94211461084f575b6108746108dc6001600061023c565b6040805160206004803580820135601f81018490048402850184019095528484526108749491936024939092918401919081908401838280828437509496505050505050506000341115610b2257610002565b6108746004356000600060006000341115610bf957610002565b6108746000341115610e3457610002565b6108de60205460215461063c545b909192565b6108746004356000341115610e5857610002565b610874600435602435600060006000341115610e9d57610002565b6108fc6008545b90565b6108746000341115610fc557610002565b6108746004356024355b600b54600090819060ff1660011415610a5a57610002565b6108de6106345461063b546106365461ffff90921691906101e3565b61090e600435600160a060020a0381166000908152600a602090815260408083205460099092528220546007805460ff9390931693928392839283928392839283928392839291811015610002578154600582026000805160206128f0833981519152015460b060020a900460ff169b50811015610002578154600582026000805160206128f0833981519152015460b860020a900460ff169a50811015610002578154600582027fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68901549950811015610002578154600582027fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68c015460ff169850811015610002578154600582026000805160206128f0833981519152015460a060020a900460ff169750811015610002578154600582026000805160206128f0833981519152015460a860020a900460ff169650811015610002578154600582026000805160206128d08339815191520154955081101561000257600581027fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68b01549b9d9a9c50989a979996989597949693959392505050565b61096960043560008060228361030981101561000257506106365460028502820154600160a060020a0316935090846103098110156100025790906002020160005060010154019050915091565b6108746000341115610ff057610002565b610874600435600034111561101857610002565b60005460408051600654815260a060020a90920460ff1660208301528051918290030190f35b6108fc601f5461021e565b61098f60043560408051602081810183526000808352600160a060020a0385168152600c8252835190849020805460026001821615610100026000190190911604601f810184900484028301840190955284825292939092918301828280156110745780601f1061104957610100808354040283529160200191611074565b610874600435602435600b54600090819060ff166001141561108257610002565b610874600435600b5460ff166001141561111d57610002565b610874600435602435600b54600090819060ff166001141561119e57610002565b6108746000600060006000600034111561123957610002565b6109fd60043560006000600060006000600060006000600060076000508a8154811015610002578154828452600582026000805160206128f08339815191520154600160a060020a03169b50811015610002579060005260206000209060050201600050546007805460b060020a90920460ff169950908b90811015610002579060005260206000209060050201600050546007805460b860020a90920460ff169850908b9081101561000257906000526020600020906005020160005060078054600192909201549750908b90811015610002579060005260206000209060050201600050600780546004929092015460ff169650908b90811015610002579060005260206000209060050201600050546007805460a060020a90920460ff169550908b90811015610002579060005260206000209060050201600050546007805460a860020a90920460ff169450908b908110156100025790600052602060002090600502016000506002015460078054919350908b90811015610002575050506005989098027fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68b01549698959794969395929491939092565b610874600435602435604435610bbf83838360035b600b54600090819060ff1660011415611c4457610002565b61087460043560243560443560643560843560a43560c43560e435610104356101243560003411156113d857610002565b610874600435602435604435610bbf8383836004610794565b610874600435600034111561158d57610002565b61087460006000600060006000600060006115d85b600060006000600060006000600060006020600050546000148015610845575060215481145b15611a7e57611b19565b6108fc600435600160a060020a0381166000908152610635602052604090205461107d565b005b60408051600160a060020a03331681526020810183905281517ff3fef3a3f44f9c277339b67d54f015748bd8d6b77a985b0ab6e71126b018c34a929181900390910190a15b610b1c5b600154600554601f54602390910290041115611c31576001546006555b565b60408051938452602084019290925282820152519081900360600190f35b60408051918252519081900360200190f35b604080519a8b5260208b019990995260ff9788168a8a015260608a019690965293909516608088015290151560a0870152151560c086015260e085019290925261010084019190915261012083015251908190036101400190f35b6040518083600160a060020a031681526020018281526020019250505060405180910390f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f1680156109ef5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60408051600160a060020a039a909a168a5260208a019890985260ff968716898901526060890195909552929094166080870152151560a086015291151560c085015260e084019190915261010083015251908190036101200190f35b600754600014801590610a96575060078054600019810190811015610002576000919091526005026000805160206128d0833981519152015443145b15610aa957600480546001019055610aaf565b60006004555b60035460045410610abf57610002565b8315610acc575060010160005b8215610ada57506001908101905b60ff8216600114610aea57610002565b610b1c6001825b600160a060020a0333166000908152600a602052604081205460ff1681146118815761188133611592565b50505050565b6002815110158015610b365750601e815111155b15610bc25780600c600050600033600160a060020a031681526020019081526020016000206000509080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610bc557805160ff19168380011785555b50610bbf9291505b80821115610bf55760008155600101610bab565b50505b50565b82800160010185558215610ba3579182015b82811115610ba3578251826000505591602001919060010190610bd7565b5090565b83600014158015610c10575061063754600a900484105b15610c1a57610002565b610c2261081f565b600160a060020a03331660009081526106356020526040902054841115610c4857610002565b6103e79250600091505b6106345461ffff9081169083161015610c9a57600160a060020a033316602261ffff8416610309811015610002576002020154600160a060020a03161415610cad5781925082505b8261ffff166103e71415610cb957610002565b60019190910190610c52565b610636544290602261ffff8616610309811015610002576002020160005060010154011115610ce757610002565b61063754600160a060020a0333166000908152610635602052604090205485900310801590610d17575083600014155b15610d6557600160a060020a0333166000818152610635602052604080822080548890039055601f8054889003905551869082818181858883f11515909214159250610deb91505057610002565b50600160a060020a0333166000908152610635602052604081208054601f80548290039055919055602261ffff841661030981101561000257600202016000508054600160a060020a03191681556000600191909101819055604051600160a060020a0333169190839082818181858883f1151590921415925061087691505057610002565b60408051600160a060020a03331681526020810186905281517ff3fef3a3f44f9c277339b67d54f015748bd8d6b77a985b0ab6e71126b018c34a929181900390910190a16108bb565b600054600160a060020a039081163390911614610e5057610002565b6108dc61081f565b60018160ff161080610e6d575060638160ff16115b15610e7757610002565b600160a060020a033316600090815261063960205260409020606482900360ff16905550565b600160a060020a0384811690841614610eb557610002565b83600160a060020a031660001415610ecc57610002565b506103e7905060005b6106345461ffff9081169082161015610f1c57600160a060020a038416602261ffff8316610309811015610002576002020154600160a060020a03161415610f2f57610002565b8161ffff166103e71415610f6a57610002565b600160a060020a033316602261ffff8316610309811015610002576002020154600160a060020a03161415610f62579050805b600101610ed5565b600160a060020a03338116600081815261063560205260408082208054948916835290822093909355908152905583602261ffff841661030981101561000257600202018054600160a060020a031916909117905550505050565b600054600160a060020a039081163390911614610fe157610002565b600b805460ff19166001179055565b600054600160a060020a03908116339091161461100c57610002565b600b805460ff19169055565b600054600160a060020a03908116339091161461103457610002565b60008054600160a060020a0319168217905550565b820191906000526020600020905b81548152906001019060200180831161105757829003601f168201915b50939450505050505b919050565b6007546000148015906110be575060078054600019810190811015610002576000919091526005026000805160206128d0833981519152015443145b156110d1576004805460010190556110d7565b60006004555b600354600454106110e757610002565b83156110f4575060010160005b821561110257506001908101905b60ff821660011461111257610002565b610b1c600582610af1565b600754600014801590611159575060078054600019810190811015610002576000919091526005026000805160206128d0833981519152015443145b1561116c57600480546001019055611172565b60006004555b6003546004541061118257610002565b60248160ff16111561119357610002565b610bc2600082610af1565b6007546000148015906111da575060078054600019810190811015610002576000919091526005026000805160206128d0833981519152015443145b156111ed576004805460010190556111f3565b60006004555b6003546004541061120357610002565b8215611210575060010160005b831561121e57506001908101905b60ff821660011461122e57610002565b610b1c600282610af1565b600054600160a060020a03908116339091161461125557610002565b600061063a81905593505b604d8460ff16101561129757602260ff8516610309811015610002576002020154600160a060020a0316600014156112d35761130e565b600091505b604d8260ff16101561131a57602260ff8316610309811015610002576002020154600160a060020a031660001415611355576113cc565b6106356000602260ff8716610309811015610002576002020154600160a060020a03168152602091909152604090205461063a805490910190555b60019390930192611260565b61063c805460008054600160a060020a0316815261063560205260408120805492879003909201909155601f80548354019055905550505050565b61063a5461063c546106356000602260ff871661030981101561000257600202810154600160a060020a0316825260208390526040822054939093029390930493508392909160ff8616610309811015610002576002020154600160a060020a031681526040902080549290920190915550918201915b6001919091019061129c565b600054600160a060020a0390811633909116146113f457610002565b60648a101561140257610002565b60058a905560038990558787101561141957610002565b6001879055600088101561142c57610002565b60028890556106345461ffff80881691161480159061144f57506007546161a890105b1561145957610002565b6106345461ffff9081169087161080611477575061030961ffff8716115b1561148157610002565b610634805461ffff1916871790556114d8600061063a81905561063b8190555b604d8160ff161015611cf357602260ff8216610309811015610002576002020154600160a060020a031660001415611d1357611de7565b848410156114e557610002565b610637859055610638849055610636546301da9c0090111561150657610002565b6106368390556000805474ff0000000000000000000000000000000000000000191660a060020a8481029190911791829055900460ff9081166014018116908216101561155257610002565b6000805475ff000000000000000000000000000000000000000000191660a860020a83021790556115816108bf565b50505050505050505050565b610bc2815b600060006000600084600160a060020a0316600014156115b0573394505b600160a060020a0385166000908152600a602052604090205460ff16600114611def57610002565b6103e79450600092505b6106345461ffff908116908416101561166257602261ffff8416610309811015610002576002020154600160a060020a03166000141561162e5782945084505b600192909201916115e2565b600160a060020a033316602261ffff8516610309811015610002576002020154600160a060020a0316141561162257600193505b83151561167957610637543410156116a757610002565b61063854600160a060020a033316600090815261063560205260409020543498508801111561178557610002565b610638543411156116c3576106385496503487900395506116c7565b3496505b61063454604d61ffff9091161180156116e45750604d8561ffff16105b156116ee57610002565b6103e761ffff8616146117805760408051808201909152338152426020820152602261ffff8716610309811015610002576002029081018054600160a060020a031916331790554260239190910155505b600080546040516064600a8b0204998a9003999450600160a060020a03919091169190849082818181858883f1151590921415925061179991505057610002565b610002565b610637546005900434101561173f57610002565b61063454604d61ffff90911611156117c9575061063b5461063c8054606492890292909204918201905595869003955b60408051600160a060020a033316815234602082015280820189905290517f7acd04125f685c90097481d254317c7cd6b69a6c8eb0d0eb375f6a98ad2687329181900360600190a1600160a060020a033316600090815261063560205260409020805488019055601f8054880190556118406108bf565b600086111561187857604051600160a060020a03331690600090889082818181858883f1151590921415925061187891505057610002565b50505050505050565b600160a060020a0333166000908152600a60209081526040808320805460ff1916600190811790915560075460099093529220556008805490910190556118d360025460009034101561228757610002565b9050600760005080548060010182818154818355818115116119645760008390526119649060059081026000805160206128f0833981519152908101918402015b80821115610bf557805477ffffffffffffffffffffffffffffffffffffffffffffffff1916815560006001820181905560028201819055600382015560048101805460ff19169055600501611914565b5050506000928352506040805160208085206101208301845233808452918301869052928201859052606082018890526080820187905260a082018690524360c0830181905260e083018690526025610100939093018390526005949094029092018054600160a060020a03191690921776ffffff0000000000000000000000000000000000000000191660b060020a88021777ff0000000000000000000000000000000000000000000000191660b860020a87021782556001820185905560028201929092556003810192909255600491909101805460ff1916909117905534811015610bbf57604051600160a060020a03331690600090348490039082818181858883f11515909214159250610bbf91505057610002565b602054602154901115611b2357602054602154600080546040516064939094036014810293909304928390039b50919850600160a060020a039190911691889082818181858883f11515909214159250611b7491505057610002565b60008714611b0e57601f8054889003905560008054600160a060020a03168152610635602052604090208054868903900390555b600060208190556021555b5050505050505050565b6020546021540396505b600093505b6106345461ffff9081169085161015611b7957602261ffff8516610309811015610002576002020154600160a060020a031692506000831415611baf57611c25565b611b2d565b60008814611ada57601f80548901905560008054600160a060020a03168152610635602052604090208054868a03019055611b0e565b60008814611bec57601f54600160a060020a03841660009081526106356020526040902080548a8102929092049182019055948501949150611c25565b60008714611c255750601f54600160a060020a038316600090815261063560205260409020805480890292909204918290039055938401935b60019390930192611b32565b600554601f546023919091029004600655565b600754600014801590611c80575060078054600019810190811015610002576000919091526005026000805160206128d0833981519152015443145b15611c9357600480546001019055611c99565b60006004555b60035460045410611ca957610002565b8515611cb6575060010160005b8415611cc457506001908101905b8315611cd1575060010160025b60ff8216600114611ce157610002565b611ceb8382610af1565b505050505050565b61063a54600014610bc25761063a5461063b805491909104606403905550565b6106396000602260ff8416610309811015610002576002020154600160a060020a0316815260209190915260408120541415611d4e57611de7565b6106356000602260ff841661030981101561000257600202810154600160a060020a03168252602083905261063a8054604084205401905560ff841661030981101561000257600202810154600160a060020a0316825260408220549250610639919060ff8516610309811015610002576002020154600160a060020a03168152602091909152604090205461063b8054919092020190555b6001016114a1565b600160a060020a03851660009081526009602052604090205460078054909190811015610002576000919091526005026000805160206128f0833981519152015460a060020a900460ff16151560011415611e4957610002565b600160a060020a0385166000908152600960205260409020546007805490919081101561000257600091825290546005919091026000805160206128d08339815191520154945060a060020a900460ff1684014311611ea757610002565b60005460a860020a900460ff168401431115611ece57611eed8560ff600060018180611fe9565b6000805460a060020a900460ff168501409250821415611ef457610002565b5050505050565b5060408051600160a060020a0386166c01000000000000000000000000028152601481018390529051908190036034019020602581069250611eed83868484600160a060020a0383166000908152600960205260078054604083205490811015610002579082526005026000805160206128f0833981519152015460b060020a900460ff1690811415612357576123e485858585600160a060020a03831660009081526009602052604081205460078054909190811015610002579082526005026000805160206128f0833981519152015460ff86811660b860020a909204161415611fde575060015b611eed848683602487875b600160a060020a0386166000908152600a60209081526040808320805460ff191690556009909152600780549183205483928992919081101561000257604084206005919091027fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68c01805460ff191693909317909255600160a060020a038a168352805491546001928110156100025760009182526005026000805160206128f0833981519152019050805460a060020a9290920274ff00000000000000000000000000000000000000001992909216919091179055600160a060020a038816600090815260096020526040902054600780544392908110156100025760009182526005026000805160206128f083398151915201905060030155600160a060020a03881660009081526009602052604090205460078054909190811015610002579082526005027fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6890154915085156122a257600160a060020a03881660009081526009602052604090205460078054600192908110156100025760009182526005026000805160206128f0833981519152019050805460a860020a9290920275ff00000000000000000000000000000000000000000019929092169190911790555060218054600019860160ff9081168402918201909255600160a060020a038916600081815260096020908152604091829020548251938452948b1690830152818101839052606082018790526080820186905260a0820193909352915190917f2d405b4396de541fd8b7448de00c152385ac44ad14f9eb281de4262f1243a735919081900360c00190a1604051600160a060020a038916906000908385019082818181858883f1151590921415925061235291505057610002565b60065434111561229a575060065461229d565b50345b61021e565b600160a060020a03881660008181526009602090815260409182902054825193845260ff8b1691840191909152600019850183830152606083018790526080830186905260a0830152517f48156d9ccd5f1a9d70cfcbc377888e2b2b5d40f87ce4e3d83708a065a50743d99181900360c00190a1604051602080548401600019019055600160a060020a0389169060009060019082818181858883f11515909214159250611b1991505057610002565b611b19565b60028114156123ec576123e485858585600160a060020a03831660009081526009602052604081205460078054909190811015610002579082526005026000805160206128f08339815191520154600260ff87811691909106811660b860020a909204161480156123cc57508460ff16600014155b156123d5575060015b611eed84868360028787611fe9565b611eed6108bf565b600181141561250b576123e4858585856000600060005b60128260ff161015612432578660ff16600d6000508360ff16601281101561000257015414156128c457600192505b8660ff166000141580156124f35750600160a060020a038616600090815260096020526040902054600780549091908110156100025760009182526005026000805160206128f0833981519152015460b860020a900460ff161480156124955750825b806124f35750600160a060020a03861660009081526009602052604090205460078054909190811015610002576000919091526005026000805160206128f0833981519152015460b860020a900460ff1660011480156124f3575082155b156124fc575060015b61187886888360028989611fe9565b60058114156125fb576123e48585858560008460ff166000141580156123cc575060138560ff161080156125825750600160a060020a03841681526009602052604081205460078054909190811015610002579082526005026000805160206128f0833981519152015460b860020a900460ff1681145b806123cc575060128560ff161180156123cc5750600160a060020a03841660009081526009602052604090205460078054909190811015610002576000919091526005026000805160206128f0833981519152015460b860020a900460ff16600114156123d557506001611eed84868360028787611fe9565b600381141561275f576123e48585858560008460ff166000141580156127475750600d8560ff161080156126725750600160a060020a03841681526009602052604081205460078054909190811015610002579082526005026000805160206128f0833981519152015460b860020a900460ff1681145b806126e45750600c8560ff1611801561268e575060198560ff16105b80156126e45750600160a060020a03841660009081526009602052604090205460078054909190811015610002576000919091526005026000805160206128f0833981519152015460b860020a900460ff166001145b80612747575060188560ff161180156127475750600160a060020a03841660009081526009602052604090205460078054909190811015610002576000919091526005026000805160206128f0833981519152015460b860020a900460ff166002145b15612750575060015b611eed84868360038787611fe9565b60048114156123e4576123e48585858560008460ff166000141580156127475750600160a060020a03841681526009602052604081205460078054909190811015610002579082526005026000805160206128f0833981519152015460b860020a900460ff16811480156127dc575060038560ff160660ff166001145b806128455750600160a060020a03841660009081526009602052604090205460078054909190811015610002576000919091526005026000805160206128f0833981519152015460b860020a900460ff166001148015612845575060038560ff160660ff166002145b806127475750600160a060020a03841660009081526009602052604090205460078054909190811015610002576000919091526005026000805160206128f0833981519152015460b860020a900460ff166002148015612747575060038560ff160660ff166000141561275057506001611eed84868360038787611fe9565b6001919091019061240356a66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68aa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688
View All
Block Age txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward