Sponsored Link:   Buy your 1st Ethereum in 5 minutes. Trusted by more than 100k buyers.
Contract Overview | Rouleth
ETH Balance: 942.611394412332935589 Ether
ETH USD Value: $324,333.73 (@ $344.08/ETH)
No Of Transactions: 35544 txns
  Latest 25 txns from a total Of 35544 transactions View All

TxHash Age From To Value [TxFee]
0xac8c2a983fd1e274da35d65845500f07891095a05961b09ce83a158fd8d099161 day 14 hrs ago0x296ae1d2d9a8701e113ecdf6ce986a4a7d0a6dc5  IN   Rouleth0 Ether0.000065308
0xe4b27b9f08adc99306ccc070a843b06f2d2c60fc0e7c06b6cbcf6a12775f8b914 days 21 hrs ago0xc47d9e6c75d388aeb92574429dad43a148f2f3ea  IN   Rouleth0 Ether0.0000079214
0xfb37894f92985f4058f75658d0299638c65dc7da271fbb9542e5beebba9d1c6c35 days 4 hrs ago0xfbef5b785be6fb8d6f3d2bb837abb8b9816b77e0  IN   Rouleth0 Ether0.000980448
0xa8d6184ee39e8006e2e2ed6e112bd3dadb74edcffdd7fa276087db6b417b349635 days 4 hrs ago0x54e37af2a228053c3b2f18a0abe4e51e0bec0f97  IN   Rouleth0 Ether0.000940905
0x6aa771d8d98e80e358ed62a7ec001b500f6e71c56f33374214de01bcb156c76535 days 4 hrs ago0x4a84038df9c4869f318774659f478f1a739e9bf3  IN   Rouleth0 Ether0.000951342
0xf20bcce96e9b2836b8a5cf7f7d9407fa8f5b078adfcf5016a4776ef4edaa659735 days 4 hrs ago0xc542b5473add7f341a56127ca45274178268cd5a  IN   Rouleth0 Ether0.000933618
0x2fdbe1e59f0c9299fb5f661c129a291615e03bf844cf378cc10025576bcf705b35 days 4 hrs ago0xe6d3307737cc385b78102a62f1b607efd55f2c3f  IN   Rouleth0 Ether0.000926352
0x9364a92ced7162e9f5a3c08864d3fe80b1b693abaf1e2d4a61999248467786a735 days 4 hrs ago0xc6c2a7f5a3cdb586f44b04806223b55edb46b196  IN   Rouleth0 Ether0.000919065
0xb8ab0add3f11b40f644ffa74a323819663222906352e8d88293f5559be337c0546 days 13 hrs ago0xba9e6acc2524641727ea34a98f247d09dbf3c109  IN   Rouleth0 Ether0.000169421
0xc6e22f95eb00511adea356f486d071b0ff14b1ac665e5ac9d2c3ec87502f7fd146 days 14 hrs ago0xba9e6acc2524641727ea34a98f247d09dbf3c109  IN   Rouleth0 Ether0.000034711
0xe421f882eb7a2d7d6ffef3731394bbb8e27fb32b6204c2149196e8a540a1d91a46 days 14 hrs ago0x14d7b78a95d39e005b88f2764f47083be5574fcc  IN   Rouleth0 Ether0.000035743
0x821f06c44eb408667037be54ec2217870848eff2fde9c20dc4e0dc099a994f3546 days 14 hrs ago0xb713b7465db67571f8a926488a8ee211058e013a  IN   Rouleth0 Ether0.000032971
0x590d8841451bd1c0dd16e3f140c1cb7bb1729b52be58a5046d376d819a1f554346 days 15 hrs ago0x85fa37445759397dcba5164f844c681bf720bdff  IN   Rouleth0 Ether0.000035397
0xa8f1e33d43f87a1c6c0d813aa2daa0f3efc1f41b0e5eb7d178ce38d032a6fd1f46 days 15 hrs ago0x490d730da6d278facd0434906cd92338fbbbab2c  IN   Rouleth0 Ether0.000163863
0x9ac855b5b5f742706e92ab5e2eabcaf55308578bb2bde2c18fba838b8e7c194946 days 15 hrs ago0x0bdfeec95e0091b4311c5181ce4d1a6da2d81415  IN   Rouleth0 Ether0.000032278
0x8f921ada9333a527545e44f406120c2210e35b5657bc9807336f0f79a5b9bd8046 days 15 hrs ago0x490d730da6d278facd0434906cd92338fbbbab2c  IN   Rouleth0 Ether0.000031932
0x1fa77ca178e3273335feb3abba1c47cd4e9475439daf8d60c9a588d9d3a3b41c46 days 16 hrs ago0x47c9b54bde89c25278b921f36b21345890f3d6b7  IN   Rouleth0 Ether0.000033318
0x5b0417d5015cc8684170d57403e7986956128e48f794eec5261271dc3df42add46 days 16 hrs ago0xac75e8e115a60f973fc13ed0c2bd7e63349badd3  IN   Rouleth0 Ether0.000032625
0x2d0f27f35e9ae40cd38af7db7504bf00b0ad7c3ccecead27e410b72d10c8f6c946 days 16 hrs ago0xed3b48904af493ad4a7121078d13c69c9d0172c3  IN   Rouleth0 Ether0.000031239
0xc2a4d40738c4f1eb56e014442fbf5598c7f037811189db821df4d5e8c10a6bed46 days 16 hrs ago0xfb0b239ca5b11ce0aeabf0403f569ecd50bc5db5  IN   Rouleth0 Ether0.000030546
0x5ddd02b6054d187b0c08c5cbde44694ee75e3fbae6e5049489820ee3c272ae0588 days 12 hrs ago0x445302dd6fd737af6a25574b661471619b8b08af  IN   Rouleth0 Ether0.00069512
0x6a5fb4b687bdd641edb04996d357ff87ebc2a9be09912d1e4ca40265ce2e54b895 days 8 hrs ago0x5da48c9c19c9031bc14db5b5abad7721526f8653  IN   Rouleth0 Ether0.000859761
0xb3015a8d6facea8473eb0938d5a0b362c91c4f724b229fbdbd696dbfa2de6af095 days 8 hrs ago0x36b790047f089451a612650aa09b8103a878aaf6  IN   Rouleth0 Ether0.000852474
0xd266333a0f316b88fc176bf88920580daa655cb893c7f2ab9b3be374db2b0aef95 days 23 hrs ago0x014c70993bc0571b0116ee182f254b05411ead27  IN   Rouleth0 Ether0.00077259
0x75a0c9dd626f09712e69fda3370ed205d587f0a98c5fab0aa8288b92d1bdf23395 days 23 hrs ago0xcf3df1259fe9601c4ae30386ca43f5e80f165ea6  IN   Rouleth0 Ether0.000765303
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
  Latest 25 Internal Txns, Click here to View More View All
ParentTxHash Block Age From To Value
0xac8c2a983fd1e274da35d65845500f07891095a05961b09ce83a158fd8d0991645696001 day 14 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x296ae1d2d9a8701e113ecdf6ce986a4a7d0a6dc5195.35041347591228032 Ether
0xe4b27b9f08adc99306ccc070a843b06f2d2c60fc0e7c06b6cbcf6a12775f8b9145493004 days 21 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010xc47d9e6c75d388aeb92574429dad43a148f2f3ea91.140057774176925425 Ether
0xfb37894f92985f4058f75658d0299638c65dc7da271fbb9542e5beebba9d1c6c436624635 days 4 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010xfbef5b785be6fb8d6f3d2bb837abb8b9816b77e0200.414644626086470188 Ether
0xa8d6184ee39e8006e2e2ed6e112bd3dadb74edcffdd7fa276087db6b417b3496436623635 days 4 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x54e37af2a228053c3b2f18a0abe4e51e0bec0f9790.869683445466142405 Ether
0x6aa771d8d98e80e358ed62a7ec001b500f6e71c56f33374214de01bcb156c765436623635 days 4 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x4a84038df9c4869f318774659f478f1a739e9bf390.869683445466142405 Ether
0xf20bcce96e9b2836b8a5cf7f7d9407fa8f5b078adfcf5016a4776ef4edaa6597436622535 days 4 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010xc542b5473add7f341a56127ca45274178268cd5a90.869683445466142405 Ether
0x2fdbe1e59f0c9299fb5f661c129a291615e03bf844cf378cc10025576bcf705b436621935 days 4 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010xe6d3307737cc385b78102a62f1b607efd55f2c3f90.869683445466142405 Ether
0x9364a92ced7162e9f5a3c08864d3fe80b1b693abaf1e2d4a61999248467786a7436621135 days 4 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010xc6c2a7f5a3cdb586f44b04806223b55edb46b19690.869683445466142405 Ether
0xc6e22f95eb00511adea356f486d071b0ff14b1ac665e5ac9d2c3ec87502f7fd1433324846 days 14 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010xba9e6acc2524641727ea34a98f247d09dbf3c109182.071282021591933764 Ether
0xe421f882eb7a2d7d6ffef3731394bbb8e27fb32b6204c2149196e8a540a1d91a433322946 days 14 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x14d7b78a95d39e005b88f2764f47083be5574fcc91.06142823733648552 Ether
0x821f06c44eb408667037be54ec2217870848eff2fde9c20dc4e0dc099a994f35433317746 days 14 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010xb713b7465db67571f8a926488a8ee211058e013a91.001325683009319644 Ether
0x590d8841451bd1c0dd16e3f140c1cb7bb1729b52be58a5046d376d819a1f5543433315246 days 15 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x85fa37445759397dcba5164f844c681bf720bdff91.056216620206706348 Ether
0x9ac855b5b5f742706e92ab5e2eabcaf55308578bb2bde2c18fba838b8e7c1949433311846 days 15 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x0bdfeec95e0091b4311c5181ce4d1a6da2d8141591.001325683009319644 Ether
0x8f921ada9333a527545e44f406120c2210e35b5657bc9807336f0f79a5b9bd80433311846 days 15 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x490d730da6d278facd0434906cd92338fbbbab2c91.001325683009319644 Ether
0x1fa77ca178e3273335feb3abba1c47cd4e9475439daf8d60c9a588d9d3a3b41c433303046 days 16 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x47c9b54bde89c25278b921f36b21345890f3d6b791.001325683009319644 Ether
0x5b0417d5015cc8684170d57403e7986956128e48f794eec5261271dc3df42add433303046 days 16 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010xac75e8e115a60f973fc13ed0c2bd7e63349badd391.001325683009319644 Ether
0x2d0f27f35e9ae40cd38af7db7504bf00b0ad7c3ccecead27e410b72d10c8f6c9433300346 days 16 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010xed3b48904af493ad4a7121078d13c69c9d0172c391.012115010961826579 Ether
0xc2a4d40738c4f1eb56e014442fbf5598c7f037811189db821df4d5e8c10a6bed433300346 days 16 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010xfb0b239ca5b11ce0aeabf0403f569ecd50bc5db590.998595060439100416 Ether
0x5ddd02b6054d187b0c08c5cbde44694ee75e3fbae6e5049489820ee3c272ae05419042588 days 12 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x445302dd6fd737af6a25574b661471619b8b08af91.035151621273851476 Ether
0x6a5fb4b687bdd641edb04996d357ff87ebc2a9be09912d1e4ca40265ce2e54b8416188595 days 8 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x5da48c9c19c9031bc14db5b5abad7721526f865390.919944684218033544 Ether
0xb3015a8d6facea8473eb0938d5a0b362c91c4f724b229fbdbd696dbfa2de6af0416186095 days 8 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x36b790047f089451a612650aa09b8103a878aaf690.919944684218033544 Ether
0xd266333a0f316b88fc176bf88920580daa655cb893c7f2ab9b3be374db2b0aef415937095 days 23 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x014c70993bc0571b0116ee182f254b05411ead27182.127296174633305888 Ether
0x75a0c9dd626f09712e69fda3370ed205d587f0a98c5fab0aa8288b92d1bdf233415935095 days 23 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010xcf3df1259fe9601c4ae30386ca43f5e80f165ea6182.115161214692039408 Ether
0xfb7bca965e9035213a20ef030843c20172a7c1be7e788139002edf827e3494264142331100 days 2 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x71a1535b0a154a6cb03f611f8a33f7b9c8dacb6f182.071282021591933764 Ether
0xac80429a6e00a60c0763fb5deeb73db0dbe2d4700575c32757773b5f74626aad4142327100 days 2 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x480d56519be25172c53ab70138b26db4a247d35f90.877631280679891824 Ether
[ Download CSV Export  ] 



  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
Make sure to use the "downvote" button for any spammy posts, and the "upvote" for interesting conversations.