Contract Overview | Rouleth
Balance: 91.002071402670861358 Ether
Ether Value: $7,884.42 (@ $86.64/ETH)
Transactions: 35566 txns
 Latest 25 transactions from a total of 35566 transactions

TxHash Age From To Value [TxFee]
0x57eadd3a91c01d3550b0b8cab25667b28c511499670dae19e07f2838c23e3de78 days 10 hrs ago0xb55c0abbffced040bb09a3c21217291711b7cffd  IN   Rouleth0 Ether0.00036
0x461611cf6c621508963b2d44c9d91f2c6144a6d1781c4b65cbc9415a41b28bd08 days 20 hrs ago0x108c1a0e3129d1447c4f084657085c914fe67b98  IN   Rouleth0 Ether0.00120978
0x57aba492eb945d8608976e4642be4157a664781cc643bfc36ac9f02deead635789 days 10 hrs ago0x922cffa33a078b4cc6077923e43447d8467f8b55  IN   Rouleth0 Ether0.0014319
0x7c4ff2ee3787378e9f6c86074b84d58ebf65bb7b3a7a0938a7580d25e0cdaddd89 days 11 hrs ago0x922cffa33a078b4cc6077923e43447d8467f8b55  IN   Rouleth0 Ether0.001200775
0x8317dcc5a1dcb67df7c7f63f0fea670d78a3b90952720224ac59ea0d9ec2fa36272 days 3 hrs ago0x2197123ea3812d2ee8b2beb4355ac9025e9abf43  IN   Rouleth0 Ether0.000899499
0x2bd3fce8ece6d86e7663a294d665a1b65b2f9a6b284ef3c30ec3ef69b5c10162290 days 4 hrs ago0xdf81b3347711cb1176f49027eb925f2fa232a025  IN   Rouleth0 Ether0.0000682
0xc7d35c50160b308d25065878edb5c1449103fee88d804c3dc231703418bf96dc331 days 22 hrs ago0xfe703eac828bd479701e640d8a07edf10d4374ac  IN   Rouleth0 Ether0.00147969
0x29f92b5e14fef31e85aedc6386d1cff43b3ffeb7ed3712b8af1b2955f31898c1331 days 22 hrs ago0xfe703eac828bd479701e640d8a07edf10d4374ac  IN   Rouleth0 Ether0.00147969
0xc155af900ebc5c85fcda5f5d1d8be63784bfdcec4fcb55a15eaf4428b810510f331 days 22 hrs ago0xfe703eac828bd479701e640d8a07edf10d4374ac  IN   Rouleth0 Ether0.00147969
0x9cc13137ed95c4ba111b40c7d54ef63791c9436f638d8a73c79142272f55860e331 days 22 hrs ago0xfe703eac828bd479701e640d8a07edf10d4374ac  IN   Rouleth0 Ether0.002622688
0xd8efe7d3fcfe785186677ce244f6b75a0fb82787ee2ba00315e5d961da6a280a331 days 22 hrs ago0xfe703eac828bd479701e640d8a07edf10d4374ac  IN   Rouleth0 Ether0.002622688
0x7dc35a1c63f2a3060bd7de8272099fb4ff66d46bda54a735580dafd7ef485d24348 days 9 hrs ago0x59d5284238e34d03791b14378a259d7e1290001e  IN   Rouleth0 Ether0.00007218
0x4380b75e803549c3a4278be0bee18cb6bf5092e380dc40505e447b8720b1f557364 days 16 hrs ago0x173bf79c85a5b084cb7439ac72b052617f27d9ed  IN   Rouleth0 Ether0.001389154
0x704bb9d1fc9f1abf423f1242ae4d72c79a32b071e8a2903839fa4ba7d381df72364 days 22 hrs ago0xaf934caef7e457049cbcbd60b7e32f1395a733c9  IN   Rouleth0.05 Ether0.009603
0x556a2db7de55e95405484783780d9f1604faf30db69b1316f7b103ad1ab04850366 days 10 hrs ago0x707fd4f4c5797b506bdffc414ff4532fb7a1f923  IN   Rouleth0 Ether0.002624533
0xef3f0a97d56f860d3f7a11c9e720fb207e2f67af63a72f6d47749fad97e6ccb1366 days 11 hrs ago0x953f1500d093b2f1a462d91f5ed7dea4bcf554e9  IN   Rouleth0 Ether0.001311344
0x3d65933ce8f8d531107eb36d487b99521f8758fd5d5900c7be83237c3b19ec37366 days 11 hrs ago0xe984dfadcc44130f8adba44290622afb04496442  IN   Rouleth0 Ether0.001885795
0x5798a64c1f6ffebb1f71bf63fa6bd038b5e970bc57e340433316ce85d4bacf36366 days 11 hrs ago0x1a5c18e15c6ff01d6e0b644a87a896f70af991ef  IN   Rouleth0 Ether0.002652946
0xf94aca0aa8e32fdd6dca3d5a31650cde915da9b07568818a83aeb569a3a95899366 days 11 hrs ago0xa4d432f884a9632bb87856ae829eb0b08ffb739f  IN   Rouleth0 Ether0.00259612
0x05a93a793fcf098d7dd438fcf8ea4dbfe4d44e1a741e6c472d788e551c29f09d366 days 17 hrs ago0xa4d432f884a9632bb87856ae829eb0b08ffb739f  IN   Rouleth0 Ether0.001025
0x63f4023489e4d6c835fe145175e960263fb195188e36220b5afc02b9e8c1d496378 days 15 hrs ago0x80d72abf188f77515cb916ab1fc3851c0ea1bc64  IN   Rouleth0 Ether0.000914466
0x3ecf6eca47f1964be4714b2e1effa5bc4024b0d9a98e4f8756d9cc47c43ff349378 days 17 hrs ago0xeb4de394a7a93c4d460a142d0dcd285993a2e773  IN   Rouleth0 Ether0.000905058
0xac8c2a983fd1e274da35d65845500f07891095a05961b09ce83a158fd8d09916391 days 16 hrs ago0x296ae1d2d9a8701e113ecdf6ce986a4a7d0a6dc5  IN   Rouleth0 Ether0.000065308
0xe4b27b9f08adc99306ccc070a843b06f2d2c60fc0e7c06b6cbcf6a12775f8b91394 days 23 hrs ago0xc47d9e6c75d388aeb92574429dad43a148f2f3ea  IN   Rouleth0 Ether0.0000079214
0xfb37894f92985f4058f75658d0299638c65dc7da271fbb9542e5beebba9d1c6c425 days 6 hrs ago0xfbef5b785be6fb8d6f3d2bb837abb8b9816b77e0  IN   Rouleth0 Ether0.000980448
[ 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
0x7dc35a1c63f2a3060bd7de8272099fb4ff66d46bda54a735580dafd7ef485d244825598348 days 9 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x59d5284238e34d03791b14378a259d7e1290001e98.403398602443233263 Ether
0x4380b75e803549c3a4278be0bee18cb6bf5092e380dc40505e447b8720b1f5574731163364 days 16 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x173bf79c85a5b084cb7439ac72b052617f27d9ed91.90858101104349142 Ether
0x556a2db7de55e95405484783780d9f1604faf30db69b1316f7b103ad1ab048504721152366 days 10 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x707fd4f4c5797b506bdffc414ff4532fb7a1f923109.032150087141579249 Ether
0xef3f0a97d56f860d3f7a11c9e720fb207e2f67af63a72f6d47749fad97e6ccb14721095366 days 11 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x953f1500d093b2f1a462d91f5ed7dea4bcf554e9182.002651366018639299 Ether
0x3d65933ce8f8d531107eb36d487b99521f8758fd5d5900c7be83237c3b19ec374721071366 days 11 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010xe984dfadcc44130f8adba44290622afb04496442108.588485867735705046 Ether
0x5798a64c1f6ffebb1f71bf63fa6bd038b5e970bc57e340433316ce85d4bacf364721044366 days 11 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x1a5c18e15c6ff01d6e0b644a87a896f70af991ef163.545120996852004637 Ether
0xf94aca0aa8e32fdd6dca3d5a31650cde915da9b07568818a83aeb569a3a958994720951366 days 11 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010xa4d432f884a9632bb87856ae829eb0b08ffb739f98.128935078427421317 Ether
0xac8c2a983fd1e274da35d65845500f07891095a05961b09ce83a158fd8d099164569600391 days 16 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x296ae1d2d9a8701e113ecdf6ce986a4a7d0a6dc5195.35041347591228032 Ether
0xe4b27b9f08adc99306ccc070a843b06f2d2c60fc0e7c06b6cbcf6a12775f8b914549300394 days 23 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010xc47d9e6c75d388aeb92574429dad43a148f2f3ea91.140057774176925425 Ether
0xfb37894f92985f4058f75658d0299638c65dc7da271fbb9542e5beebba9d1c6c4366246425 days 6 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010xfbef5b785be6fb8d6f3d2bb837abb8b9816b77e0200.414644626086470188 Ether
0xa8d6184ee39e8006e2e2ed6e112bd3dadb74edcffdd7fa276087db6b417b34964366236425 days 6 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x54e37af2a228053c3b2f18a0abe4e51e0bec0f9790.869683445466142405 Ether
0x6aa771d8d98e80e358ed62a7ec001b500f6e71c56f33374214de01bcb156c7654366236425 days 6 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x4a84038df9c4869f318774659f478f1a739e9bf390.869683445466142405 Ether
0xf20bcce96e9b2836b8a5cf7f7d9407fa8f5b078adfcf5016a4776ef4edaa65974366225425 days 6 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010xc542b5473add7f341a56127ca45274178268cd5a90.869683445466142405 Ether
0x2fdbe1e59f0c9299fb5f661c129a291615e03bf844cf378cc10025576bcf705b4366219425 days 6 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010xe6d3307737cc385b78102a62f1b607efd55f2c3f90.869683445466142405 Ether
0x9364a92ced7162e9f5a3c08864d3fe80b1b693abaf1e2d4a61999248467786a74366211425 days 6 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010xc6c2a7f5a3cdb586f44b04806223b55edb46b19690.869683445466142405 Ether
0xc6e22f95eb00511adea356f486d071b0ff14b1ac665e5ac9d2c3ec87502f7fd14333248436 days 16 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010xba9e6acc2524641727ea34a98f247d09dbf3c109182.071282021591933764 Ether
0xe421f882eb7a2d7d6ffef3731394bbb8e27fb32b6204c2149196e8a540a1d91a4333229436 days 16 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x14d7b78a95d39e005b88f2764f47083be5574fcc91.06142823733648552 Ether
0x821f06c44eb408667037be54ec2217870848eff2fde9c20dc4e0dc099a994f354333177436 days 17 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010xb713b7465db67571f8a926488a8ee211058e013a91.001325683009319644 Ether
0x590d8841451bd1c0dd16e3f140c1cb7bb1729b52be58a5046d376d819a1f55434333152436 days 17 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x85fa37445759397dcba5164f844c681bf720bdff91.056216620206706348 Ether
0x9ac855b5b5f742706e92ab5e2eabcaf55308578bb2bde2c18fba838b8e7c19494333118436 days 17 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x0bdfeec95e0091b4311c5181ce4d1a6da2d8141591.001325683009319644 Ether
0x8f921ada9333a527545e44f406120c2210e35b5657bc9807336f0f79a5b9bd804333118436 days 17 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x490d730da6d278facd0434906cd92338fbbbab2c91.001325683009319644 Ether
0x1fa77ca178e3273335feb3abba1c47cd4e9475439daf8d60c9a588d9d3a3b41c4333030436 days 18 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x47c9b54bde89c25278b921f36b21345890f3d6b791.001325683009319644 Ether
0x5b0417d5015cc8684170d57403e7986956128e48f794eec5261271dc3df42add4333030436 days 18 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010xac75e8e115a60f973fc13ed0c2bd7e63349badd391.001325683009319644 Ether
0x2d0f27f35e9ae40cd38af7db7504bf00b0ad7c3ccecead27e410b72d10c8f6c94333003436 days 18 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010xed3b48904af493ad4a7121078d13c69c9d0172c391.012115010961826579 Ether
0xc2a4d40738c4f1eb56e014442fbf5598c7f037811189db821df4d5e8c10a6bed4333003436 days 18 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010xfb0b239ca5b11ce0aeabf0403f569ecd50bc5db590.998595060439100416 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 transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.