Sponsored Link:  Simple Token - Cryptocurrency for digital communities - 105% of target hit, Sale ends 1 Dec!
Contract Overview
ETH Balance: 104.168898999999997461 Ether
ETH USD Value: $48,666.67 (@ $467.19/ETH)
No Of Transactions: 7862 txns
  Latest 25 txns from a total Of 7862 transactions View All

TxHash Age From To Value [TxFee]
0x4c7c4d3681555b96fb8925abf2d61d834ca31141f61817f116bf348a503efd5a5 hrs 11 mins ago0x9b4997702650dc8cbb05b9f9d892cbc8ae449f6c  IN   0x91a57b2f6fa86b373bce5716eb26c81cbb0042230.02 Ether0.000623476
0x385c7317005520a1b6117abdd5172094c7e5d844da9339b155165c4fe36d05d63 days 23 hrs ago0x67f4b4f120db88da373767faf46c380f078a9458  IN   0x91a57b2f6fa86b373bce5716eb26c81cbb0042230.001 Ether0.00475
0x56e493d5ef5129982cf9aeb956f634389b0b559570adda7eff343ab5cc79e0ce3 days 23 hrs ago0x67f4b4f120db88da373767faf46c380f078a9458  IN   0x91a57b2f6fa86b373bce5716eb26c81cbb0042230.001 Ether0.0028125
0x700a5caf791e88edd8c68d1ad7a52449eb591bb1a002da74d990b0b7f0ba05ef6 days 17 hrs ago0x1485f26ad0be9ffc6c98a50cc81c503dadc9bb28  IN   0x91a57b2f6fa86b373bce5716eb26c81cbb0042230.01 Ether0.0000185869
0xf2330dbf70259d19afec63dc737aa14094c0764c17b1a2aef6d7b8b69c37104916 days 5 hrs ago0x09820a2fae3bd73b5009e89ccb7bb236ff59b744  IN   0x91a57b2f6fa86b373bce5716eb26c81cbb0042230 Ether0.0000352625
0xc48888885c5a12cb5f07846d5446a7e68150ba5bbf12fb0cd271c01782c3daa116 days 5 hrs ago0x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a  IN   0x91a57b2f6fa86b373bce5716eb26c81cbb0042230.01 Ether0.00311738
0xb71891ebd69d9d7da3972b180ab5536809de25e19f6e04b97d1c53177c02ab7916 days 5 hrs ago0x09820a2fae3bd73b5009e89ccb7bb236ff59b744  IN   0x91a57b2f6fa86b373bce5716eb26c81cbb0042230 Ether0.0000352625
0x2572021619ef025259df9ffa89c3704c1344561dfdbc70821b05e06b3564eaf916 days 5 hrs ago0x09820a2fae3bd73b5009e89ccb7bb236ff59b744  IN   0x91a57b2f6fa86b373bce5716eb26c81cbb0042230 Ether0.00005
0xbc08108eeb30669387ff4dae1abde9668a720f14032ab334b318da20bf28bfc616 days 5 hrs ago0x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a  IN   0x91a57b2f6fa86b373bce5716eb26c81cbb0042230.02 Ether0.00406052
0x040fabc9b00ea32e2c7403ffe5ffb9b8289e18a341daf4bba075df844cdc569716 days 5 hrs ago0x09820a2fae3bd73b5009e89ccb7bb236ff59b744  IN   0x91a57b2f6fa86b373bce5716eb26c81cbb0042230 Ether0.00005
0x2afa855e3860ac34af514e0d29656b6412daa56871988736a82c36568db3e91a16 days 5 hrs ago0x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a  IN   0x91a57b2f6fa86b373bce5716eb26c81cbb0042230.015 Ether0.0041643
0x023141918ba090177452d880d32decc1ae1328b579845e00082bfccfa070933816 days 5 hrs ago0x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a  IN   0x91a57b2f6fa86b373bce5716eb26c81cbb0042230.01 Ether0.00311738
0x5c5c9f970bf19e1c8474c351afbbf15c9081b1071c95763e0d706a219f3b283d16 days 5 hrs ago0x09820a2fae3bd73b5009e89ccb7bb236ff59b744  IN   0x91a57b2f6fa86b373bce5716eb26c81cbb0042230 Ether0.0000352625
0x0bd8e9176e8146ea0b8b0573aa22ee3fc2bad3848ff3c4730e0c2adadd05fc0616 days 5 hrs ago0x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a  IN   0x91a57b2f6fa86b373bce5716eb26c81cbb0042230.01 Ether0.00311738
0xdfe6f9774e653d514b242c9943194981e229d3e08637e19df30ac9450c98ff6916 days 5 hrs ago0x09820a2fae3bd73b5009e89ccb7bb236ff59b744  IN   0x91a57b2f6fa86b373bce5716eb26c81cbb0042230 Ether0.000038323
0x32774795b19f6a2e3a9e834226bfb780223269e412078b0e3ee684ae438366d916 days 5 hrs ago0x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a  IN   0x91a57b2f6fa86b373bce5716eb26c81cbb0042230.02 Ether0.00432076
0x7ddb81253403e66b2aeaf967d35cabbc86e9698f0017d45880379a65bd114d2716 days 5 hrs ago0x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a  IN   0x91a57b2f6fa86b373bce5716eb26c81cbb0042230.02 Ether0.00448402
0x815df2df36b09a650af88fa3bf6d87083e8b4b3c6d12968f5208893d1bfd385c16 days 5 hrs ago0x09820a2fae3bd73b5009e89ccb7bb236ff59b744  IN   0x91a57b2f6fa86b373bce5716eb26c81cbb0042230 Ether0.00005
0xcd0977f149f15351a486de59abfb47bc02b1d9d1ae78aabc336f36993748a74a16 days 5 hrs ago0x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a  IN   0x91a57b2f6fa86b373bce5716eb26c81cbb0042230.02 Ether0.00424728
0xff6e8a7193a44c2d6bedc7645de94a85532f04456595fc4ba6669f5222928fe816 days 5 hrs ago0x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a  IN   0x91a57b2f6fa86b373bce5716eb26c81cbb0042230.01 Ether0.00341846
0xf15b3835cbf2d4ee32f1db0b77bb6dafdb0236d2e50e3b3b11d868e857df6be716 days 5 hrs ago0x09820a2fae3bd73b5009e89ccb7bb236ff59b744  IN   0x91a57b2f6fa86b373bce5716eb26c81cbb0042230 Ether0.0000324045
0x67b73a35051c259e5e2ded74583bcc7b6e874daffb7fa00c00b6c3a12aabd4ab16 days 5 hrs ago0x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a  IN   0x91a57b2f6fa86b373bce5716eb26c81cbb0042230.01 Ether0.00446538
0x53b6296fe2de6f690747bfe9625e73ebb0edfb07f0aabda674956ea474b7867c16 days 6 hrs ago0x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a  IN   0x91a57b2f6fa86b373bce5716eb26c81cbb0042230.01 Ether0.00311738
0x16de2dae3c015e6a5af9193ee47598583f7fbb9750630fd87837bcaec4e2f1eb16 days 6 hrs ago0x09820a2fae3bd73b5009e89ccb7bb236ff59b744  IN   0x91a57b2f6fa86b373bce5716eb26c81cbb0042230 Ether0.00003602
0xeb50529ed2cd4b25adb1ab4bca4b80bc5b3127265892df2df694a922dff5356616 days 6 hrs ago0x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a  IN   0x91a57b2f6fa86b373bce5716eb26c81cbb0042230.02 Ether0.00311738
[ 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
0xf2330dbf70259d19afec63dc737aa14094c0764c17b1a2aef6d7b8b69c371049451816016 days 5 hrs ago0x91a57b2f6fa86b373bce5716eb26c81cbb0042230x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a1 wei
0xb71891ebd69d9d7da3972b180ab5536809de25e19f6e04b97d1c53177c02ab79451815516 days 5 hrs ago0x91a57b2f6fa86b373bce5716eb26c81cbb0042230x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a1 wei
0xbc08108eeb30669387ff4dae1abde9668a720f14032ab334b318da20bf28bfc6451815216 days 5 hrs ago0x91a57b2f6fa86b373bce5716eb26c81cbb0042230x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a1 wei
0x2afa855e3860ac34af514e0d29656b6412daa56871988736a82c36568db3e91a451814916 days 5 hrs ago0x91a57b2f6fa86b373bce5716eb26c81cbb0042230x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a0.02 Ether
0x5c5c9f970bf19e1c8474c351afbbf15c9081b1071c95763e0d706a219f3b283d451814516 days 5 hrs ago0x91a57b2f6fa86b373bce5716eb26c81cbb0042230x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a1 wei
0xdfe6f9774e653d514b242c9943194981e229d3e08637e19df30ac9450c98ff69451814216 days 5 hrs ago0x91a57b2f6fa86b373bce5716eb26c81cbb0042230x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a0.04 Ether
0x32774795b19f6a2e3a9e834226bfb780223269e412078b0e3ee684ae438366d9451814016 days 5 hrs ago0x91a57b2f6fa86b373bce5716eb26c81cbb0042230x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a1 wei
0x7ddb81253403e66b2aeaf967d35cabbc86e9698f0017d45880379a65bd114d27451813516 days 5 hrs ago0x91a57b2f6fa86b373bce5716eb26c81cbb0042230x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a0.04 Ether
0xcd0977f149f15351a486de59abfb47bc02b1d9d1ae78aabc336f36993748a74a451813116 days 5 hrs ago0x91a57b2f6fa86b373bce5716eb26c81cbb0042230x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a1 wei
0xf15b3835cbf2d4ee32f1db0b77bb6dafdb0236d2e50e3b3b11d868e857df6be7451812816 days 5 hrs ago0x91a57b2f6fa86b373bce5716eb26c81cbb0042230x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a1 wei
0x67b73a35051c259e5e2ded74583bcc7b6e874daffb7fa00c00b6c3a12aabd4ab451812716 days 5 hrs ago0x91a57b2f6fa86b373bce5716eb26c81cbb0042230x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a0.02 Ether
0x16de2dae3c015e6a5af9193ee47598583f7fbb9750630fd87837bcaec4e2f1eb451812216 days 6 hrs ago0x91a57b2f6fa86b373bce5716eb26c81cbb0042230x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a0.04 Ether
0xcc03ef358932251e092ad4b5111b51c638facab5724e39ed48d4f67f041995de451810816 days 6 hrs ago0x91a57b2f6fa86b373bce5716eb26c81cbb0042230x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a0.04 Ether
0x8b8deb61d8cd46d7d20af47f6bab8380de765187bd95ba8638b1911cce45edeb451810616 days 6 hrs ago0x91a57b2f6fa86b373bce5716eb26c81cbb0042230x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a1 wei
0x561f3380c8e1e94cb23a53e18c4b39f7a7061c1a6187f072439bae2f767c75b5451810016 days 6 hrs ago0x91a57b2f6fa86b373bce5716eb26c81cbb0042230x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a1 wei
0xf6448b9e767dca851c0308c7c94947262ac303e2ed6e4bff11b68dd47e6e59ad451809916 days 6 hrs ago0x91a57b2f6fa86b373bce5716eb26c81cbb0042230x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a1 wei
0xd415781ba7cc3a66018cd7a9226d3f92a0e31c2905b385da37e525c90840889d451809516 days 6 hrs ago0x91a57b2f6fa86b373bce5716eb26c81cbb0042230x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a0.08 Ether
0x2ed1d494117ef313108c01bafb0cbef83bf1bac24fcb665c5b4d3f46f792fdbe451808616 days 6 hrs ago0x91a57b2f6fa86b373bce5716eb26c81cbb0042230x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a1 wei
0xbf390e5bfc49f37e93ca947ad130e9e0df0c500954b21543b1f7bbe7a5eca6ed451807416 days 6 hrs ago0x91a57b2f6fa86b373bce5716eb26c81cbb0042230x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a1 wei
0xa5ca3b897dae41aaacd84c67ac949c8fbea377a57b684cc7098403c99021e328451807116 days 6 hrs ago0x91a57b2f6fa86b373bce5716eb26c81cbb0042230x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a1 wei
0xa9ba3a71e9ade850683dde9999f51b74e49bd5d69b0cb1f0690fee1aadc38bec451806616 days 6 hrs ago0x91a57b2f6fa86b373bce5716eb26c81cbb0042230x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a0.02 Ether
0xb206d995bca1b5820df2fc6c967ec3db112aa15d2529146c58f12cbc57348bbc451806016 days 6 hrs ago0x91a57b2f6fa86b373bce5716eb26c81cbb0042230x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a1 wei
0xf9461777fac80d7e583579d4c473f11a8d244cad93ac96d12ef2478582b52313451805816 days 6 hrs ago0x91a57b2f6fa86b373bce5716eb26c81cbb0042230x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a1 wei
0xbb710fd3f010b2d75edfff2923b98277f6bf2b65b4fc0c3f65194879a7e98af1451805416 days 6 hrs ago0x91a57b2f6fa86b373bce5716eb26c81cbb0042230x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a1 wei
0x0b52076238794f59c72d2101c321ad7a37a5fbc2ed8446423322a0533e810972451804216 days 6 hrs ago0x91a57b2f6fa86b373bce5716eb26c81cbb0042230x2c0f4bcbc2a523dc9c1b484d17ab2cab788af64a0.05 Ether
[ Download CSV Export  ] 
Contract Name: Rouleth
Compiler Version: v0.4.8+commit.60cc1668
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts
pragma solidity ^0.4.8;

contract OwnedByWinsome {

  address public owner;
  mapping (address => bool) allowedWorker;

  function initOwnership(address _owner, address _worker) internal{
    owner = _owner;
    allowedWorker[_owner] = true;
    allowedWorker[_worker] = true;
  }

  function allowWorker(address _new_worker) onlyOwner{
    allowedWorker[_new_worker] = true;
  }
  function removeWorker(address _old_worker) onlyOwner{
    allowedWorker[_old_worker] = false;
  }
  function changeOwner(address _new_owner) onlyOwner{
    owner = _new_owner;
  }
						    
  modifier onlyAllowedWorker{
    if (!allowedWorker[msg.sender]){
      throw;
    }
    _;
  }

  modifier onlyOwner{
    if (msg.sender != owner){
      throw;
    }
    _;
  }

  
}

/**
 * Math operations with safety checks
 */
library SafeMath {
  function mul(uint a, uint b) internal returns (uint) {
    uint c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function div(uint a, uint b) internal returns (uint) {
    assert(b > 0);
    uint c = a / b;
    assert(a == b * c + a % b);
    return c;
  }

  function sub(uint a, uint b) internal returns (uint) {
    assert(b <= a);
    return a - b;
  }

  function add(uint a, uint b) internal returns (uint) {
    uint c = a + b;
    assert(c >= a);
    return c;
  }

  function max64(uint64 a, uint64 b) internal constant returns (uint64) {
    return a >= b ? a : b;
  }

  function min64(uint64 a, uint64 b) internal constant returns (uint64) {
    return a < b ? a : b;
  }

  function max256(uint256 a, uint256 b) internal constant returns (uint256) {
    return a >= b ? a : b;
  }

  function min256(uint256 a, uint256 b) internal constant returns (uint256) {
    return a < b ? a : b;
  }

  function assert(bool assertion) internal {
    if (!assertion) {
      throw;
    }
  }
}


/*
 * Basic token
 * Basic version of StandardToken, with no allowances
 */
contract BasicToken {
  using SafeMath for uint;
  event Transfer(address indexed from, address indexed to, uint value);
  mapping(address => uint) balances;
  uint public     totalSupply =    0;    			 // Total supply of 500 million Tokens
  
  /*
   * Fix for the ERC20 short address attack  
   */
  modifier onlyPayloadSize(uint size) {
     if(msg.data.length < size + 4) {
       throw;
     }
     _;
  }

  function transfer(address _to, uint _value) onlyPayloadSize(2 * 32) {
    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    Transfer(msg.sender, _to, _value);
  }

  function balanceOf(address _owner) constant returns (uint balance) {
    return balances[_owner];
  }
  
}


contract StandardToken is BasicToken{
  
  event Approval(address indexed owner, address indexed spender, uint value);

  
  mapping (address => mapping (address => uint)) allowed;

  function transferFrom(address _from, address _to, uint _value) {
    var _allowance = allowed[_from][msg.sender];

    // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met
    // if (_value > _allowance) throw;

    balances[_to] = balances[_to].add(_value);
    balances[_from] = balances[_from].sub(_value);
    allowed[_from][msg.sender] = _allowance.sub(_value);
    Transfer(_from, _to, _value);
  }

  function approve(address _spender, uint _value) {
    allowed[msg.sender][_spender] = _value;
    Approval(msg.sender, _spender, _value);
  }

  function allowance(address _owner, address _spender) constant returns (uint remaining) {
    return allowed[_owner][_spender];
  }

}


contract WinToken is StandardToken, OwnedByWinsome{

  string public   name =           "Winsome.io Token";
  string public   symbol =         "WIN";
  uint public     decimals =       18;
  
  mapping (address => bool) allowedMinter;

  function WinToken(address _owner){
    allowedMinter[_owner] = true;
    initOwnership(_owner, _owner);
  }

  function allowMinter(address _new_minter) onlyOwner{
    allowedMinter[_new_minter] = true;
  }
  function removeMinter(address _old_minter) onlyOwner{
    allowedMinter[_old_minter] = false;
  }

  modifier onlyAllowedMinter{
    if (!allowedMinter[msg.sender]){
      throw;
    }
    _;
  }
  function mintTokens(address _for, uint _value_wei) onlyAllowedMinter {
    balances[_for] = balances[_for].add(_value_wei);
    totalSupply = totalSupply.add(_value_wei) ;
    Transfer(address(0), _for, _value_wei);
  }
  function destroyTokens(address _for, uint _value_wei) onlyAllowedMinter {
    balances[_for] = balances[_for].sub(_value_wei);
    totalSupply = totalSupply.sub(_value_wei);
    Transfer(_for, address(0), _value_wei);    
  }
  
}

contract Rouleth
{
  //Game and Global Variables, Structure of gambles
  address public developer;
  uint8 public blockDelay; //nb of blocks to wait before spin
  uint8 public blockExpiration; //nb of blocks before bet expiration (due to hash storage limits)
  uint256 public maxGamble; //max gamble value manually set by config
  uint256 public minGamble; //min gamble value manually set by config

  mapping (address => uint) pendingTokens;
  
  address public WINTOKENADDRESS;
  WinToken winTokenInstance;

  uint public emissionRate;
  
  //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;
    uint input; //stores number, color, dozen or oddeven
    uint256 wager;
    uint256 blockNumber; //block of bet
    uint256 blockSpinned; //block of spin
    uint8 wheelResult;
  }
  Gamble[] private gambles;

  //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(address _developer, address _winToken) //creation settings
  {
    WINTOKENADDRESS = _winToken;
    winTokenInstance = WinToken(_winToken);
    developer = _developer;
    blockDelay=0; //indicates which block after bet will be used for RNG
    blockExpiration=245; //delay after which gamble expires
    minGamble=10 finney; //configurable min bet
    maxGamble=1 ether; //configurable max bet
    emissionRate = 5;
  }
    
  modifier onlyDeveloper() 
  {
    if (msg.sender!=developer) throw;
    _;
  }

  function addBankroll()
    onlyDeveloper
    payable {
  }

  function removeBankroll(uint256 _amount_wei)
    onlyDeveloper
  {
    if (!developer.send(_amount_wei)) throw;
  }
    
  function changeDeveloper_only_Dev(address new_dev)
    onlyDeveloper
  {
    developer=new_dev;
  }





  //Change some settings within safety bounds
  function changeSettings_only_Dev(uint256 newMinGamble, uint256 newMaxGamble, uint8 newBlockDelay, uint8 newBlockExpiration, uint newEmissionRate)
    onlyDeveloper
  {
    emissionRate = newEmissionRate;
    //MAX BET : limited by payroll/(casinoStatisticalLimit*35)
    if (newMaxGamble<newMinGamble) throw;  
    maxGamble=newMaxGamble; 
    minGamble=newMinGamble;
    //Delay before spin :
    blockDelay=newBlockDelay;
    if (newBlockExpiration < blockDelay + 250) throw;
    blockExpiration=newBlockExpiration;
  }


  //**********************************************
  //                 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 ()
    payable
    {
      //defaut bet : bet on red
      betOnColor(false);
    } 

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



  //Function record bet called by all others betting functions
  function placeBet(BetTypes betType, uint input) private
  {

    if (playerStatus[msg.sender] != Status.waitingForBet) {
      if (!SpinTheWheel(msg.sender)) throw;
    }

    //Once this is done, we can record the new bet
    playerStatus[msg.sender] = Status.waitingForSpin;
    gambleIndex[msg.sender] = gambles.length;
    
    //adapts wager to casino limits
    uint256 betValue = checkBetValue();
    pendingTokens[msg.sender] += betValue * emissionRate;

    
    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;
    }
  }

  function getPendingTokens(address account) constant returns (uint){
    return pendingTokens[account];
  }
  
  function redeemTokens(){
    uint totalTokens = pendingTokens[msg.sender];
    if (totalTokens == 0) return;
    pendingTokens[msg.sender] = 0;

    //ADD POTENTIAL BONUS BASED ON How long waited!
    
    //mint WIN Tokens
    winTokenInstance.mintTokens(msg.sender, totalTokens);
  }

  

  //***//bet on Number	
  function betOnNumber(uint numberChosen)
    payable
  {
    //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 Black)
    payable
  {
    uint input;
    if (!Black) 
      { 
	input=0;
      }
    else{
      input=1;
    }
    placeBet(BetTypes.color, input);
  }

  //***// function betOnLow_High
  //bet type : lowhigh
  //input : 0 for low
  //input : 1 for low
  function betOnLowHigh(bool High)
    payable
  {
    uint input;
    if (!High) 
      { 
	input=0;
      }
    else 
      {
	input=1;
      }
    placeBet(BetTypes.lowhigh, input);
  }

  //***// function betOnOddEven
  //bet type : parity
  //input : 0 for even
  //input : 1 for odd
  function betOnOddEven(bool Odd)
    payable
  {
    uint input;
    if (!Odd) 
      { 
	input=0;
      }
    else{
      input=1;
    }
    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(uint dozen_selected_0_1_2)
    payable

  {
    if (dozen_selected_0_1_2 > 2) throw;
    placeBet(BetTypes.dozen, dozen_selected_0_1_2);
  }


  // //***// function betOnColumn
  //     //bet type : column
  //     //input : 0 for first column
  //     //input : 1 for second column
  //     //input : 2 for third column
  function betOnColumn(uint column_selected_0_1_2)
    payable
  {
    if (column_selected_0_1_2 > 2) throw;
    placeBet(BetTypes.column, column_selected_0_1_2);
  }

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

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

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


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

    //check that player has to spin
    if (playerStatus[playerSpinned] != Status.waitingForSpin) return false;

    //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, this);
	// get the final wheel result
	wheelResult = uint8(uint256(shaPlayer)%37);
	//check result against bet and pay if win
	checkBetResult(wheelResult, playerSpinned, blockHash, shaPlayer);
      }
    return true;
  }
    

  //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);
  }

  // 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;
	Win(player, result, win_v, blockHash, shaPlayer, gambleIndex[player], bet_v);
	//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], bet_v);
	//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);
  }


  function checkMyBet(address player) constant returns(Status player_status, BetTypes bettype, uint 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 getTotalGambles() constant returns(uint){
    return gambles.length;
  }

  
  function getGamblesList(uint256 index) constant returns(address player, BetTypes bettype, uint 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":"addBankroll","outputs":[],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"_amount_wei","type":"uint256"}],"name":"removeBankroll","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newMinGamble","type":"uint256"},{"name":"newMaxGamble","type":"uint256"},{"name":"newBlockDelay","type":"uint8"},{"name":"newBlockExpiration","type":"uint8"},{"name":"newEmissionRate","type":"uint256"}],"name":"changeSettings_only_Dev","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getTotalGambles","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"Black","type":"bool"}],"name":"betOnColor","outputs":[],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"numberChosen","type":"uint256"}],"name":"betOnNumber","outputs":[],"payable":true,"type":"function"},{"constant":true,"inputs":[],"name":"minGamble","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"column_selected_0_1_2","type":"uint256"}],"name":"betOnColumn","outputs":[],"payable":true,"type":"function"},{"constant":true,"inputs":[{"name":"player","type":"address"}],"name":"checkMyBet","outputs":[{"name":"player_status","type":"uint8"},{"name":"bettype","type":"uint8"},{"name":"input","type":"uint256"},{"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"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"new_dev","type":"address"}],"name":"changeDeveloper_only_Dev","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"maxGamble","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"emissionRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"Odd","type":"bool"}],"name":"betOnOddEven","outputs":[],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"High","type":"bool"}],"name":"betOnLowHigh","outputs":[],"payable":true,"type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getGamblesList","outputs":[{"name":"player","type":"address"},{"name":"bettype","type":"uint8"},{"name":"input","type":"uint256"},{"name":"value","type":"uint256"},{"name":"result","type":"uint8"},{"name":"wheelspinned","type":"bool"},{"name":"win","type":"bool"},{"name":"blockNb","type":"uint256"},{"name":"blockSpin","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"developer","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"blockExpiration","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"blockDelay","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"WINTOKENADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"spin_for_player","type":"address"}],"name":"spinTheWheel","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"dozen_selected_0_1_2","type":"uint256"}],"name":"betOnDozen","outputs":[],"payable":true,"type":"function"},{"constant":false,"inputs":[],"name":"redeemTokens","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"getPendingTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"inputs":[{"name":"_developer","type":"address"},{"name":"_winToken","type":"address"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"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"},{"indexed":false,"name":"bet","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"},{"indexed":false,"name":"bet","type":"uint256"}],"name":"Loss","type":"event"}]

  Contract Creation Code Switch To Opcodes View
6102a06040819052600160609081526003608052600560a052600760c052600960e052600c61010052600e6101205260106101405260126101605260136101805260156101a05260176101c05260196101e052601b61020052601e61022052602061024052602261026052602461028052600a91601c919083905b8281111561009a578251829060ff1690559160200191906001019061007a565b5b506100bb9291505b808211156100b757600081556001016100a3565b5090565b50503461000057604051604080611af88339810160405280516020909101515b60048054600160a060020a0319908116600160a060020a038481169182179093556005805483169091178155600080549092169285169290921760a060020a61ffff02191675f5000000000000000000000000000000000000000000179055662386f26fc10000600255670de0b6b3a76400006001556006555b50505b611991806101676000396000f300606060405236156101175763ffffffff60e060020a600035041663148105ab811461012a5780633bafc5c0146101345780633c837b7d14610146578063402e62301461016a5780635521d17b146101895780635808e1c2146101985780635a975128146101a5578063677e6fa4146101c45780636e1b6bcc146101d15780637c9cd7df1461025a5780638cd4fdf11461027557806396afc450146102945780639ff00adc146102b3578063ac940823146102c2578063bcb3b5d2146102d1578063ca4b208b14610349578063d4595aaa14610372578063d98f608814610395578063db2ac8d8146103b8578063e56c8552146103e1578063e765c69a146103fc578063e9a9c50c14610409578063fb2f506414610418575b6101285b6101256000610443565b5b565b005b610128610468565b005b3461000057610128600435610487565b005b346100005761012860043560243560ff604435811690606435166084356104da565b005b346100005761017761056f565b60408051918252519081900360200190f35b6101286004351515610443565b005b610128600435610576565b005b3461000057610177610593565b60408051918252519081900360200190f35b610128600435610599565b005b34610000576101ea600160a060020a03600435166105b6565b604051808b600181116100005760ff1681526020018a600581116100005760ff9081168252602082019a909a52604080820199909952969098166060870152931515608086015291151560a085015260c084015260e0830152610100820152905190819003610120019350915050f35b3461000057610128600160a060020a036004351661080a565b005b3461000057610177610852565b60408051918252519081900360200190f35b3461000057610177610858565b60408051918252519081900360200190f35b610128600435151561085e565b005b6101286004351515610883565b005b34610000576102e16004356108a8565b604051600160a060020a038a1681526020810189600581116100005760ff90811682526020820199909952604080820198909852959097166060860152921515608085015290151560a084015260c083015260e0820152905190819003610100019350915050f35b3461000057610356610a44565b60408051600160a060020a039092168252519081900360200190f35b346100005761037f610a53565b6040805160ff9092168252519081900360200190f35b346100005761037f610a63565b6040805160ff9092168252519081900360200190f35b3461000057610356610a73565b60408051600160a060020a039092168252519081900360200190f35b3461000057610128600160a060020a0360043516610a82565b005b610128600435610a90565b005b3461000057610128610aad565b005b3461000057610177600160a060020a0360043516610b58565b60408051918252519081900360200190f35b600081151561045457506000610458565b5060015b610463600182610b77565b5b5050565b60005433600160a060020a0390811691161461012557610000565b5b5b565b60005433600160a060020a039081169116146104a257610000565b60008054604051600160a060020a039091169183156108fc02918491818181858888f1935050505015156104d557610000565b5b5b50565b60005433600160a060020a039081169116146104f557610000565b60068190558484101561050757610000565b600184905560028590556000805460a060020a60ff02191660a060020a60ff86811682029290921792839055909104811660fa018116908316101561054b57610000565b6000805460a860020a60ff02191660a860020a60ff8516021790555b5b5050505050565b6007545b90565b602481111561058457610000565b6104d5600082610b77565b5b50565b60025481565b60028111156105a757610000565b6104d5600482610b77565b5b50565b600160a060020a03811660009081526009602090815260408083205460089092528220546007805460ff9093169392839283928392839283928392839283929181101561000057906000526020600020906006020160005b5054600160a060020a038c166000908152600860205260409020546007805460b060020a90930460ff169b509181101561000057906000526020600020906006020160005b5060010154600160a060020a038c1660009081526008602052604090205460078054929a509181101561000057906000526020600020906006020160005b5060020154600160a060020a038c16600090815260086020526040902054600780549299509181101561000057906000526020600020906006020160005b5060050154600160a060020a038c166000908152600860205260409020546007805460ff90931698509181101561000057906000526020600020906006020160005b5054600160a060020a038c166000908152600860205260409020546007805460a060020a90930460ff1697509181101561000057906000526020600020906006020160005b5054600160a060020a038c166000908152600860205260409020546007805460a860020a90930460ff1696509181101561000057906000526020600020906006020160005b5060030154600160a060020a038c16600090815260086020526040902054600780549295509181101561000057906000526020600020906006020160005b5060040154600160a060020a038c1660009081526008602052604090205490925090505b9193959799509193959799565b60005433600160a060020a0390811691161461082557610000565b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60015481565b60065481565b600081151561086f57506000610873565b5060015b610463600282610b77565b5b5050565b600081151561089457506000610898565b5060015b610463600582610b77565b5b5050565b60006000600060006000600060006000600060078a815481101561000057906000526020600020906006020160005b505460078054600160a060020a039092169a50908b9081101561000057906000526020600020906006020160005b5060000160169054906101000a900460ff16975060078a815481101561000057906000526020600020906006020160005b5060010154965060078a815481101561000057906000526020600020906006020160005b5060020154955060078a815481101561000057906000526020600020906006020160005b50600501546007805460ff9092169650908b9081101561000057906000526020600020906006020160005b5060000160149054906101000a900460ff16935060078a815481101561000057906000526020600020906006020160005b5060000160159054906101000a900460ff16925060078a815481101561000057906000526020600020906006020160005b5060030154915060078a815481101561000057906000526020600020906006020160005b506004015490505b9193959799909294969850565b600054600160a060020a031681565b60005460a860020a900460ff1681565b60005460a060020a900460ff1681565b600454600160a060020a031681565b61046381610e43565b505b50565b6002811115610a9e57610000565b6104d5600382610b77565b5b50565b600160a060020a033316600090815260036020526040902054801515610ad2576104d5565b600160a060020a0333811660008181526003602052604080822082905560055481517ff0dda65c000000000000000000000000000000000000000000000000000000008152600481019490945260248401869052905193169263f0dda65c92604480820193929182900301818387803b156100005760325a03f115610000575050505b50565b600160a060020a0381166000908152600360205260409020545b919050565b600080600160a060020a03331660009081526009602052604090205460ff16600181116100005714610bb757610bac33610e43565b1515610bb757610000565b5b33600160a060020a03166000908152600960209081526040808320805460ff19166001179055600754600890925290912055610bf2610fe6565b60065433600160a060020a0316600090815260036020526040902080549183029091019055600780546001810180835592935090918281838015829011610ca857600602816006028360005260206000209182019101610ca891905b80821115610ca457805476ffffffffffffffffffffffffffffffffffffffffffffff191681556000600182018190556002820181905560038201819055600482015560058101805460ff19169055600601610c4e565b5090565b5b505050916000526020600020906006020160005b6101206040519081016040528033600160a060020a031681526020016000151581526020016000151581526020018760058111610000578152602080820188905260408083018890524360608085019190915260006080850152602560a09094019390935283518654928501519185015173ffffffffffffffffffffffffffffffffffffffff19909316600160a060020a039091161760a060020a60ff02191660a060020a911515919091021760a860020a60ff02191660a860020a91151591909102178085559082015191939250829076ff00000000000000000000000000000000000000000000191660b060020a83600581116100005702179055506080820151600182015560a0820151600282015560c0820151600382015560e08201516004820155610100909101516005909101805460ff191660ff9092169190911790555034811015610e3c57604051600160a060020a033316903483900380156108fc02916000818181858888f115159350610e3c9250505057610000565b5b5b505050565b600080808080600160a060020a0386161515610e5d573395505b6001600160a060020a03871660009081526009602052604090205460ff16600181116100005714610e915760009450610fdd565b600160a060020a0386166000908152600860205260409020546007805490919081101561000057906000526020600020906006020160005b505460a060020a900460ff16151560011415610ee457610000565b600160a060020a0386166000908152600860205260409020546007805490919081101561000057906000526020600020906006020160005b506003015460005490945060a060020a900460ff1684014311610f3e57610000565b60005460a860020a900460ff168401431115610f6a57610f658660ff600060018180611015565b610fd6565b60005460a060020a900460ff168401409150811515610f8857610000565b50604080516c01000000000000000000000000600160a060020a03808916820283526014830185905230160260348201529051908190036048019020602581069250610fd68387848461131d565b5b5b600194505b50505050919050565b6000600254341015610ff757610000565b60015434111561100a5750600154610573565b5034610573565b5b90565b600160a060020a0386166000908152600960209081526040808320805460ff19169055600890915281205460078054839289929181101561000057906000526020600020906006020160005b50600501805460ff191660ff92909216919091179055600160a060020a038816600090815260086020526040902054600780546001929081101561000057906000526020600020906006020160005b50805491151560a060020a0260a060020a60ff0219909216919091179055600160a060020a0388166000908152600860205260409020546007805443929081101561000057906000526020600020906006020160005b5060040155600160a060020a0388166000908152600860205260409020546007805490919081101561000057906000526020600020906006020160005b50600201549150851561126957600160a060020a038816600090815260086020526040902054600780546001929081101561000057906000526020600020906006020160005b50805491151560a860020a0260a860020a60ff021990921691909117905550600160a060020a03871660008181526008602090815260409182902054825193845260ff8a81169285019290925260001988019091168402838301819052606084018790526080840186905260a084019190915260c08301849052905190917fad9b4fc5fa2170ef9fea52053cf1e3b4f10aac5af5f1ddd2f4a8ca05ef8650f9919081900360e00190a1604051600160a060020a0389169082840180156108fc02916000818181858888f1151593506112649250505057610000565b611311565b600160a060020a03881660008181526008602090815260409182902054825193845260ff8b1691840191909152600019850183830152606083018790526080830186905260a083015260c08201849052517f414db054afc9efbe838527c7cb664cbed63622d9fd658409ab7f6e3f11587eb79181900360e00190a1604051600160a060020a0389169060009060019082818181858883f1151593506113119250505057610000565b5b5b5050505050505050565b600160a060020a0383166000908152600860205260408120546007805490919081101561000057906000526020600020906006020160005b505460b060020a900460ff169050600081600581116100005714156113855761138085858585611438565b610567565b600281600581116100005714156113a7576113808585858561149a565b610567565b600181600581116100005714156113c95761138085858585611510565b610567565b600581600581116100005714156113eb576113808585858561161f565b610567565b6003816005811161000057141561140d57611380858585856116f2565b610567565b60048160058111610000571415610567576105678585858561182a565b5b5b5b5b5b5b5b5050505050565b600160a060020a0383166000908152600860205260408120546007805490919081101561000057906000526020600020906006020160005b50600101548560ff161415611483575060015b61056784868360248787611015565b5b5050505050565b600160a060020a0383166000908152600860205260408120546007805490919081101561000057906000526020600020906006020160005b5060010154600260ff87160660ff161480156114f0575060ff851615155b156114f9575060015b61056784868360028787611015565b5b5050505050565b6000600060005b60128260ff161015611557578660ff16600a8360ff166012811015610000570160005b5054141561154b5760019250611557565b5b600190910190611517565b60ff8716158015906115fb5750600160a060020a0386166000908152600860205260409020546007805490919081101561000057906000526020600020906006020160005b50600101541580156115ab5750825b806115fb5750600160a060020a0386166000908152600860205260409020546007805490919081101561000057906000526020600020906006020160005b506001015460011480156115fb575082155b5b5b15611606575060015b61161586888360028989611015565b5b50505050505050565b600060ff8516158015906114f0575060138560ff1610801561167b5750600160a060020a0384166000908152600860205260409020546007805490919081101561000057906000526020600020906006020160005b5060010154155b806114f0575060128560ff161180156114f05750600160a060020a0384166000908152600860205260409020546007805490919081101561000057906000526020600020906006020160005b50600101546001145b5b5b156114f9575060015b61056784868360028787611015565b5b5050505050565b600060ff8516158015906118085750600d8560ff1610801561174e5750600160a060020a0384166000908152600860205260409020546007805490919081101561000057906000526020600020906006020160005b5060010154155b806117b25750600c8560ff1611801561176a575060198560ff16105b80156117b25750600160a060020a0384166000908152600860205260409020546007805490919081101561000057906000526020600020906006020160005b50600101546001145b5b80611808575060188560ff161180156118085750600160a060020a0384166000908152600860205260409020546007805490919081101561000057906000526020600020906006020160005b50600101546002145b5b5b15611813575060015b61056784868360038787611015565b5b5050505050565b600060ff8516158015906118085750600160a060020a0384166000908152600860205260409020546007805490919081101561000057906000526020600020906006020160005b506001015415801561188c5750600360ff86160660ff166001145b806118e75750600160a060020a0384166000908152600860205260409020546007805490919081101561000057906000526020600020906006020160005b506001015460011480156118e75750600360ff86160660ff166002145b5b806118085750600160a060020a0384166000908152600860205260409020546007805490919081101561000057906000526020600020906006020160005b506001015460021480156118085750600360ff86160660ff166000145b5b5b15611813575060015b61056784868360038787611015565b5b50505050505600a165627a7a72305820cc53c7cb3c8596830a60ee3fb03a406a3363fadeef58def7670e2d55ae21050f00290000000000000000000000000c26a6dbf6b285145ca4f64397a521f8b5e49a790000000000000000000000009e3f0fc2a9ea1ec8d9e51a7a34c20b777021b030

    Constructor Arguments (ABI-encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000c26a6dbf6b285145ca4f64397a521f8b5e49a790000000000000000000000009e3f0fc2a9ea1ec8d9e51a7a34c20b777021b030

-----Decoded View---------------
Found 2 constructor arguments :
Arg [0] : 0000000000000000000000000c26a6dbf6b285145ca4f64397a521f8b5e49a79
Arg [1] : 0000000000000000000000009e3f0fc2a9ea1ec8d9e51a7a34c20b777021b030


   Swarm Source:
bzzr://cc53c7cb3c8596830a60ee3fb03a406a3363fadeef58def7670e2d55ae21050f
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.