Sponsored Link:   COVESTING - EU-based digital asset exchange. Aggregated liquidity. Algorithmic & Copy-trading features. 24/7 support. Get access!
 Latest 25 txns from a total Of 35562 transactions
View All

TxHash Age From To Value [TxFee]
0x8317dcc5a1dcb67df7c7f63f0fea670d78a3b90952720224ac59ea0d9ec2fa3695 days 8 hrs ago0x2197123ea3812d2ee8b2beb4355ac9025e9abf43  IN   Rouleth0 Ether0.000899499
0x2bd3fce8ece6d86e7663a294d665a1b65b2f9a6b284ef3c30ec3ef69b5c10162113 days 9 hrs ago0xdf81b3347711cb1176f49027eb925f2fa232a025  IN   Rouleth0 Ether0.0000682
0xc7d35c50160b308d25065878edb5c1449103fee88d804c3dc231703418bf96dc155 days 3 hrs ago0xfe703eac828bd479701e640d8a07edf10d4374ac  IN   Rouleth0 Ether0.00147969
0x29f92b5e14fef31e85aedc6386d1cff43b3ffeb7ed3712b8af1b2955f31898c1155 days 3 hrs ago0xfe703eac828bd479701e640d8a07edf10d4374ac  IN   Rouleth0 Ether0.00147969
0xc155af900ebc5c85fcda5f5d1d8be63784bfdcec4fcb55a15eaf4428b810510f155 days 3 hrs ago0xfe703eac828bd479701e640d8a07edf10d4374ac  IN   Rouleth0 Ether0.00147969
0x9cc13137ed95c4ba111b40c7d54ef63791c9436f638d8a73c79142272f55860e155 days 3 hrs ago0xfe703eac828bd479701e640d8a07edf10d4374ac  IN   Rouleth0 Ether0.002622688
0xd8efe7d3fcfe785186677ce244f6b75a0fb82787ee2ba00315e5d961da6a280a155 days 3 hrs ago0xfe703eac828bd479701e640d8a07edf10d4374ac  IN   Rouleth0 Ether0.002622688
0x7dc35a1c63f2a3060bd7de8272099fb4ff66d46bda54a735580dafd7ef485d24171 days 14 hrs ago0x59d5284238e34d03791b14378a259d7e1290001e  IN   Rouleth0 Ether0.00007218
0x4380b75e803549c3a4278be0bee18cb6bf5092e380dc40505e447b8720b1f557187 days 21 hrs ago0x173bf79c85a5b084cb7439ac72b052617f27d9ed  IN   Rouleth0 Ether0.001389154
0x704bb9d1fc9f1abf423f1242ae4d72c79a32b071e8a2903839fa4ba7d381df72188 days 3 hrs ago0xaf934caef7e457049cbcbd60b7e32f1395a733c9  IN   Rouleth0.05 Ether0.009603
0x556a2db7de55e95405484783780d9f1604faf30db69b1316f7b103ad1ab04850189 days 15 hrs ago0x707fd4f4c5797b506bdffc414ff4532fb7a1f923  IN   Rouleth0 Ether0.002624533
0xef3f0a97d56f860d3f7a11c9e720fb207e2f67af63a72f6d47749fad97e6ccb1189 days 15 hrs ago0x953f1500d093b2f1a462d91f5ed7dea4bcf554e9  IN   Rouleth0 Ether0.001311344
0x3d65933ce8f8d531107eb36d487b99521f8758fd5d5900c7be83237c3b19ec37189 days 16 hrs ago0xe984dfadcc44130f8adba44290622afb04496442  IN   Rouleth0 Ether0.001885795
0x5798a64c1f6ffebb1f71bf63fa6bd038b5e970bc57e340433316ce85d4bacf36189 days 16 hrs ago0x1a5c18e15c6ff01d6e0b644a87a896f70af991ef  IN   Rouleth0 Ether0.002652946
0xf94aca0aa8e32fdd6dca3d5a31650cde915da9b07568818a83aeb569a3a95899189 days 16 hrs ago0xa4d432f884a9632bb87856ae829eb0b08ffb739f  IN   Rouleth0 Ether0.00259612
0x05a93a793fcf098d7dd438fcf8ea4dbfe4d44e1a741e6c472d788e551c29f09d189 days 22 hrs ago0xa4d432f884a9632bb87856ae829eb0b08ffb739f  IN   Rouleth0 Ether0.001025
0x63f4023489e4d6c835fe145175e960263fb195188e36220b5afc02b9e8c1d496201 days 19 hrs ago0x80d72abf188f77515cb916ab1fc3851c0ea1bc64  IN   Rouleth0 Ether0.000914466
0x3ecf6eca47f1964be4714b2e1effa5bc4024b0d9a98e4f8756d9cc47c43ff349201 days 22 hrs ago0xeb4de394a7a93c4d460a142d0dcd285993a2e773  IN   Rouleth0 Ether0.000905058
0xac8c2a983fd1e274da35d65845500f07891095a05961b09ce83a158fd8d09916214 days 21 hrs ago0x296ae1d2d9a8701e113ecdf6ce986a4a7d0a6dc5  IN   Rouleth0 Ether0.000065308
0xe4b27b9f08adc99306ccc070a843b06f2d2c60fc0e7c06b6cbcf6a12775f8b91218 days 4 hrs ago0xc47d9e6c75d388aeb92574429dad43a148f2f3ea  IN   Rouleth0 Ether0.0000079214
0xfb37894f92985f4058f75658d0299638c65dc7da271fbb9542e5beebba9d1c6c248 days 11 hrs ago0xfbef5b785be6fb8d6f3d2bb837abb8b9816b77e0  IN   Rouleth0 Ether0.000980448
0xa8d6184ee39e8006e2e2ed6e112bd3dadb74edcffdd7fa276087db6b417b3496248 days 11 hrs ago0x54e37af2a228053c3b2f18a0abe4e51e0bec0f97  IN   Rouleth0 Ether0.000940905
0x6aa771d8d98e80e358ed62a7ec001b500f6e71c56f33374214de01bcb156c765248 days 11 hrs ago0x4a84038df9c4869f318774659f478f1a739e9bf3  IN   Rouleth0 Ether0.000951342
0xf20bcce96e9b2836b8a5cf7f7d9407fa8f5b078adfcf5016a4776ef4edaa6597248 days 11 hrs ago0xc542b5473add7f341a56127ca45274178268cd5a  IN   Rouleth0 Ether0.000933618
0x2fdbe1e59f0c9299fb5f661c129a291615e03bf844cf378cc10025576bcf705b248 days 11 hrs ago0xe6d3307737cc385b78102a62f1b607efd55f2c3f  IN   Rouleth0 Ether0.000926352
[ 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
0x7dc35a1c63f2a3060bd7de8272099fb4ff66d46bda54a735580dafd7ef485d244825598171 days 14 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x59d5284238e34d03791b14378a259d7e1290001e98.403398602443233263 Ether
0x4380b75e803549c3a4278be0bee18cb6bf5092e380dc40505e447b8720b1f5574731163187 days 21 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x173bf79c85a5b084cb7439ac72b052617f27d9ed91.90858101104349142 Ether
0x556a2db7de55e95405484783780d9f1604faf30db69b1316f7b103ad1ab048504721152189 days 15 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x707fd4f4c5797b506bdffc414ff4532fb7a1f923109.032150087141579249 Ether
0xef3f0a97d56f860d3f7a11c9e720fb207e2f67af63a72f6d47749fad97e6ccb14721095189 days 15 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x953f1500d093b2f1a462d91f5ed7dea4bcf554e9182.002651366018639299 Ether
0x3d65933ce8f8d531107eb36d487b99521f8758fd5d5900c7be83237c3b19ec374721071189 days 16 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010xe984dfadcc44130f8adba44290622afb04496442108.588485867735705046 Ether
0x5798a64c1f6ffebb1f71bf63fa6bd038b5e970bc57e340433316ce85d4bacf364721044189 days 16 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x1a5c18e15c6ff01d6e0b644a87a896f70af991ef163.545120996852004637 Ether
0xf94aca0aa8e32fdd6dca3d5a31650cde915da9b07568818a83aeb569a3a958994720951189 days 16 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010xa4d432f884a9632bb87856ae829eb0b08ffb739f98.128935078427421317 Ether
0xac8c2a983fd1e274da35d65845500f07891095a05961b09ce83a158fd8d099164569600214 days 21 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x296ae1d2d9a8701e113ecdf6ce986a4a7d0a6dc5195.35041347591228032 Ether
0xe4b27b9f08adc99306ccc070a843b06f2d2c60fc0e7c06b6cbcf6a12775f8b914549300218 days 4 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010xc47d9e6c75d388aeb92574429dad43a148f2f3ea91.140057774176925425 Ether
0xfb37894f92985f4058f75658d0299638c65dc7da271fbb9542e5beebba9d1c6c4366246248 days 11 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010xfbef5b785be6fb8d6f3d2bb837abb8b9816b77e0200.414644626086470188 Ether
0xa8d6184ee39e8006e2e2ed6e112bd3dadb74edcffdd7fa276087db6b417b34964366236248 days 11 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x54e37af2a228053c3b2f18a0abe4e51e0bec0f9790.869683445466142405 Ether
0x6aa771d8d98e80e358ed62a7ec001b500f6e71c56f33374214de01bcb156c7654366236248 days 11 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x4a84038df9c4869f318774659f478f1a739e9bf390.869683445466142405 Ether
0xf20bcce96e9b2836b8a5cf7f7d9407fa8f5b078adfcf5016a4776ef4edaa65974366225248 days 11 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010xc542b5473add7f341a56127ca45274178268cd5a90.869683445466142405 Ether
0x2fdbe1e59f0c9299fb5f661c129a291615e03bf844cf378cc10025576bcf705b4366219248 days 11 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010xe6d3307737cc385b78102a62f1b607efd55f2c3f90.869683445466142405 Ether
0x9364a92ced7162e9f5a3c08864d3fe80b1b693abaf1e2d4a61999248467786a74366211248 days 11 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010xc6c2a7f5a3cdb586f44b04806223b55edb46b19690.869683445466142405 Ether
0xc6e22f95eb00511adea356f486d071b0ff14b1ac665e5ac9d2c3ec87502f7fd14333248259 days 21 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010xba9e6acc2524641727ea34a98f247d09dbf3c109182.071282021591933764 Ether
0xe421f882eb7a2d7d6ffef3731394bbb8e27fb32b6204c2149196e8a540a1d91a4333229259 days 21 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x14d7b78a95d39e005b88f2764f47083be5574fcc91.06142823733648552 Ether
0x821f06c44eb408667037be54ec2217870848eff2fde9c20dc4e0dc099a994f354333177259 days 21 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010xb713b7465db67571f8a926488a8ee211058e013a91.001325683009319644 Ether
0x590d8841451bd1c0dd16e3f140c1cb7bb1729b52be58a5046d376d819a1f55434333152259 days 22 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x85fa37445759397dcba5164f844c681bf720bdff91.056216620206706348 Ether
0x9ac855b5b5f742706e92ab5e2eabcaf55308578bb2bde2c18fba838b8e7c19494333118259 days 22 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x0bdfeec95e0091b4311c5181ce4d1a6da2d8141591.001325683009319644 Ether
0x8f921ada9333a527545e44f406120c2210e35b5657bc9807336f0f79a5b9bd804333118259 days 22 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x490d730da6d278facd0434906cd92338fbbbab2c91.001325683009319644 Ether
0x1fa77ca178e3273335feb3abba1c47cd4e9475439daf8d60c9a588d9d3a3b41c4333030259 days 23 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010x47c9b54bde89c25278b921f36b21345890f3d6b791.001325683009319644 Ether
0x5b0417d5015cc8684170d57403e7986956128e48f794eec5261271dc3df42add4333030259 days 23 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010xac75e8e115a60f973fc13ed0c2bd7e63349badd391.001325683009319644 Ether
0x2d0f27f35e9ae40cd38af7db7504bf00b0ad7c3ccecead27e410b72d10c8f6c94333003259 days 23 hrs ago0x18a672e11d637fffadccc99b152f4895da0696010xed3b48904af493ad4a7121078d13c69c9d0172c391.012115010961826579 Ether
0xc2a4d40738c4f1eb56e014442fbf5598c7f037811189db821df4d5e8c10a6bed4333003259 days 23 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 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.