Sponsored Link:   SHIFT.cash - smart-contract based car title lending platform, 30 billion market, 35+ employees. Join NOW.
  Latest 25 txns from a total Of 28525 transactions View All

TxHash Age From To Value [TxFee]
0x8f68d64e693224ce7f98695cbcbf3611f8f1dda573787ec37fa289a5c376b6801 day 6 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.000489176
0x9f45ff836ffab1305aa32b8a62165fc6207f33f1c9fe595d44be371a231dae5a1 day 6 hrs ago0x66c9a8862c291e6ba61ed366829e9b962bce2d02  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.06 Ether0.001339232
0x729746ed9b4c4afbacdad5059a19640f30374358ad59869329184e33193a281b1 day 20 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.00122708
0x8937978d62a9c5a9b57fa294acacdec775be5e2323795544b5b0006c233fe1a71 day 20 hrs ago0x66c9a8862c291e6ba61ed366829e9b962bce2d02  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.2 Ether0.00335204
0x04526312c9dc4f58959bff0f00ae703218e31bcb104c650cbac40cc0a73649f11 day 21 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.0010486125
0x6fdf4d00171db12d45ad0420d996c28caaee86adc0152d450c25e544c648bbe81 day 21 hrs ago0x66c9a8862c291e6ba61ed366829e9b962bce2d02  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.06 Ether0.00335204
0x768be52a5350bccce2d48c17ada78cd6f39a3f92f1795f7a777ca13ae8129c261 day 21 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.000806625
0x9a4a4ffd52ab97c09eb4a62c1705632b7a353cb8a4bd44a2b7922f96a4fdcce01 day 21 hrs ago0x66c9a8862c291e6ba61ed366829e9b962bce2d02  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.06 Ether0.002346428
0x7f13f831bf04f063f220d28aeb449bf40bbeb12e90f8bf6e808263244e03fd461 day 21 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.000458655
0x858ed953c0f3fdd7438d4c3a92acc0790f2b1766841e428cb58a74caedd7ecc81 day 21 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.00075285
0x823640525959fcc239afda0bca3544886d522554d35d1760d12ac82e8b7cdecb1 day 21 hrs ago0x66c9a8862c291e6ba61ed366829e9b962bce2d02  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.06 Ether0.00335204
0xfd499b712582ba54bf7488788fac48c8156e85ef78b534f54960fc76c759d3cb1 day 21 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.000321748
0x1dc4d95146215e5f40340038afde7cb1fe926aeb7fa0ce24b095a2e23edf65781 day 21 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.00075285
0x2098d144f23413c1d46fc2c7ab2f6279b23bd25643d893ab0001714bd83ef9381 day 21 hrs ago0x66c9a8862c291e6ba61ed366829e9b962bce2d02  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.06 Ether0.002178826
0xd39cbb598e2e889af351763c3861df99c843e1776ad462abcbbce23ce9bce8881 day 21 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.000699075
0xec2bbdb0ebe5a469ddc7ed28bd7a18d81338aa67c6f9c4ba6ee0c1e2e522eb1b1 day 21 hrs ago0x66c9a8862c291e6ba61ed366829e9b962bce2d02  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.06 Ether0.00335204
0xcf85fb768aba5bda6f706d0460cb0eb8411c68818b5824e5c14b322660b3d8371 day 21 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.000397501
0xe82248ba79c701c3ecf72275f9076494cac1eec5d22b49b695c5fca3c41e6b041 day 21 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.000800293
0xa5492f31f608d24effb33c6f8693610e9c034b51a07dfb97c302cc4eabf4ff111 day 21 hrs ago0x66c9a8862c291e6ba61ed366829e9b962bce2d02  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.06 Ether0.0032721
0x2aafb6cd8ef6ca05535a21faeb269ce401494128d864a3866548499917204cdd1 day 21 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.000506766
0x51f0a47eb68d56de14fc1aa9d61cec2dd7d42bf049f892e52318493f51b7920c1 day 21 hrs ago0x66c9a8862c291e6ba61ed366829e9b962bce2d02  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.06 Ether0.0023492
0x08bf9f0b289c1beaa949c8efe8744bb43918c2c539bc90f93c2494cb4913b0a48 days 3 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.000484208
0xd0153d9589b088b8a83dc0fb0c99a122d12bd1b464804b49356c6f9c6885eb718 days 3 hrs ago0xee028de5bd371b5311f158f87beed76455dbeeb1  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.1 Ether0.000228298
0x0f08cdbe70cdb24c34eae753bfda859fb295017b61a5a184e380930268e1da9b8 days 21 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.00122294
0x42a7e3962b178e2edad13e2b3d96fb631c649895389bbb51bbee097dfc1bdf858 days 21 hrs ago0x66c9a8862c291e6ba61ed366829e9b962bce2d02  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.06 Ether0.00457784
[ 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
0x8f68d64e693224ce7f98695cbcbf3611f8f1dda573787ec37fa289a5c376b68051230881 day 6 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x66c9a8862c291e6ba61ed366829e9b962bce2d020.18 Ether
0x729746ed9b4c4afbacdad5059a19640f30374358ad59869329184e33193a281b51195851 day 20 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x66c9a8862c291e6ba61ed366829e9b962bce2d020.6 Ether
0xe82248ba79c701c3ecf72275f9076494cac1eec5d22b49b695c5fca3c41e6b0451194411 day 21 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x66c9a8862c291e6ba61ed366829e9b962bce2d020.18 Ether
0x08bf9f0b289c1beaa949c8efe8744bb43918c2c539bc90f93c2494cb4913b0a450822428 days 3 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xee028de5bd371b5311f158f87beed76455dbeeb10.2 Ether
0x0f08cdbe70cdb24c34eae753bfda859fb295017b61a5a184e380930268e1da9b50778718 days 21 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x66c9a8862c291e6ba61ed366829e9b962bce2d020.18 Ether
0xbfa54e30bf67637fb16f0a8e5a12b756f2cc3ad904d5e8aae872a91a848e6aa9504279614 days 18 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x73fd3c61f22940f17dc6568f1c1e5cec8b5465a90.18 Ether
0xdaa732ebae56ebc86f42984cdc24d05d0b743828d576082da02ab415f649d9b1496839627 days 7 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x7c1c78e34a693494a76e41f0665c03415634be2b0.2 Ether
0x91e0b0a3a3af77f5d9f1ffa70f92a21783ce135bc98cdf44a8bf5c0656b1c45b495018030 days 9 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x7c1c78e34a693494a76e41f0665c03415634be2b0.2 Ether
0xe69fd0ea5fe6d7f6f5861b211552a114c713b11af86f9742025464ab7a874fc4494385431 days 11 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x7c1c78e34a693494a76e41f0665c03415634be2b0.2 Ether
0xdd74793f585444e25cbf2c6f566c1e8da40e3fc72521e8a61cf79145ee5a59a1493920832 days 6 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x6777a65180fa2bee49aea67d3592f07caa8b77570.3 Ether
0x2b15f76015ad0957ac134b78f29ef668c6522c791689d4bfa43066ba63977be0490329138 days 17 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xdae0aca4b9b38199408ffab32562bf7b3b0495fe0.2 Ether
0xb88b0290de582d89db629a8d4c4a1bf1fd7698e589c1929b9cfd6f356f22ded1480696555 days 23 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x955f2571936df323c878beca68eb0625ef2aeab20.2 Ether
0xf98974590e3389012413ba9e8f149163696cef76d055412c0efb68d370b1ff52480313756 days 14 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xe5e14e802494bf7722421e1d67c09030df42463d0.2 Ether
0x636beea8073d7f62c734d3928e0f0123a8213ddb58f1feeb447eb65938764584479853657 days 9 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xe5e14e802494bf7722421e1d67c09030df42463d0.2 Ether
0x6fc7ea6644abad7af14ea606f7d564b1a2a2502595dd58b2bda87a18087d0dfb477824660 days 18 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x4fd2e44fd18a0cdb37d46a0235de133b3f86a6eb0.24 Ether
0xec25e4314abfa845413d6d16bb7960fa2b814d7e6d7a1612e180b9e98c686b3e477823960 days 18 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x4fd2e44fd18a0cdb37d46a0235de133b3f86a6eb0.24 Ether
0x94231e20e02189a02e4fd86c7b9b5d8377ad67e4ddfdbfece787a382759d4d82477783460 days 20 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x4fd2e44fd18a0cdb37d46a0235de133b3f86a6eb0.2 Ether
0x0ffa1ea113f0060ab323c6ff7349ad2d05f4f97afc702958e79b665150c9cf29477780560 days 20 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x4fd2e44fd18a0cdb37d46a0235de133b3f86a6eb0.2 Ether
0x9f239f640ae12f0b96a30c64d2928bacbc945a2b66abf0845140ef4712bc000e477780060 days 20 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x4fd2e44fd18a0cdb37d46a0235de133b3f86a6eb0.2 Ether
0x52210120cb5bf4c13de29c12ab5550de0b8269e180c9e0c800f424ff6e0e94d1477565461 days 5 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xe5e14e802494bf7722421e1d67c09030df42463d0.2 Ether
0x11dbbc8693d50bd1185a76829d188230915451f165064ce9bb226cbf9222baa0477083162 days 2 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x4fd2e44fd18a0cdb37d46a0235de133b3f86a6eb0.42 Ether
0xe6712b774e72b65c3b511d2c8f0c064d9893c436a9a74f534504768dc2f6efe4477082262 days 2 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x4fd2e44fd18a0cdb37d46a0235de133b3f86a6eb0.42 Ether
0x2ebd8efa2045973bbc013479e5efe3cabab9b8cb37390e478948c281e22a622f476745362 days 16 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x4fd2e44fd18a0cdb37d46a0235de133b3f86a6eb0.3 Ether
0x9879f2eaf60fcd3fbf4ab1c12297ed4ca7c4f785226bddf70e753a4cbfab7bc3476743462 days 16 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x4fd2e44fd18a0cdb37d46a0235de133b3f86a6eb0.2 Ether
0xa2c9d428cbbcd1f24d61c431c2fadcd7845bc156fe9074f638a39122f677a22c476741962 days 16 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x4fd2e44fd18a0cdb37d46a0235de133b3f86a6eb0.5 Ether
[ Download CSV Export  ] 
Contract Name: SmartRoulette
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 WinMatrix
 {
   function getCoeff(uint16 n) external returns (uint256);
   function getBetsProcessed() external constant returns (uint16);
 }

contract SmartRouletteToken 
{
   function emission(address player, address partner, uint256 value_bet, uint256 coef_player, uint256 coef_partner) external returns(uint256, uint8);
   function isOperationBlocked() external constant returns (bool);
}

contract SmartAffiliate 
{   
   function getAffiliateInfo(address player) external constant returns(address affiliate, uint16 coef_affiliate, uint16 coef_player);
}

/*
** User interface for SmartRoulette https://smartroulette.io
*/
contract SmartRoulette
{
  address developer;
  address operator;

  // Wait BlockDelay blocks before generate random number
  uint8 BlockDelay;

  // Maximum bet value for game (one credit is currentMaxBet/256)
  uint256 currentMaxBet;    

  // maximum games count per block
  uint64 maxGamblesPerBlock;
        
  // Enable\disable to place new bets
  bool ContractState;

  // table with winner coefficients
  WinMatrix winMatrix;

  SmartRouletteToken smartToken;

  address public profitDistributionContract;

  SmartAffiliate smartAffiliateContract;

  uint16 constant maxTypeBets = 157;
  
  // Default coef for token emission (if SmartAffiliate contract is not setup)
  uint16 CoefPlayerEmission;   
  // 
  mapping (uint8 => uint8) private minCreditsOnBet;
  mapping (uint8 => uint8) private maxCreditsOnBet;

  struct GameInfo
  {
       address player;
       uint256 blockNumber;
       uint8 wheelResult;
       uint256 bets;
       bytes32 values;
       bytes32 values2;
  } 
       
  GameInfo[] private gambles;

   enum GameStatus {Success, Skipped, Stop}

   enum BetTypes{number0, number1,number2,number3,number4,number5,number6,number7,number8,number9,
     number10,number11,number12,number13,number14,number15,number16,number17,number18,number19,number20,number21,
     number22,number23,number24,number25,number26,number27,number28,number29,number30,number31,number32,number33,
     number34,number35,number36, red, black, odd, even, dozen1,dozen2,dozen3, column1,column2,column3, low,high,
     pair_01, pair_02, pair_03, pair_12, pair_23, pair_36, pair_25, pair_14, pair_45, pair_56, pair_69, pair_58, pair_47,
     pair_78, pair_89, pair_912, pair_811, pair_710, pair_1011, pair_1112, pair_1215, pair_1518, pair_1617, pair_1718, pair_1720,
     pair_1619, pair_1922, pair_2023, pair_2124, pair_2223, pair_2324, pair_2528, pair_2629, pair_2730, pair_2829, pair_2930, pair_1114,
     pair_1013, pair_1314, pair_1415, pair_1316, pair_1417, pair_1821, pair_1920, pair_2021, pair_2225, pair_2326, pair_2427, pair_2526,
     pair_2627, pair_2831, pair_2932, pair_3033, pair_3132, pair_3233, pair_3134, pair_3235, pair_3336, pair_3435, pair_3536, corner_0_1_2_3,
     corner_1_2_5_4, corner_2_3_6_5, corner_4_5_8_7, corner_5_6_9_8, corner_7_8_11_10, corner_8_9_12_11, corner_10_11_14_13, corner_11_12_15_14,
     corner_13_14_17_16, corner_14_15_18_17, corner_16_17_20_19, corner_17_18_21_20, corner_19_20_23_22, corner_20_21_24_23, corner_22_23_26_25,
     corner_23_24_27_26, corner_25_26_29_28, corner_26_27_30_29, corner_28_29_32_31, corner_29_30_33_32, corner_31_32_35_34, corner_32_33_36_35,
     three_0_2_3, three_0_1_2, three_1_2_3, three_4_5_6, three_7_8_9, three_10_11_12, three_13_14_15, three_16_17_18, three_19_20_21, three_22_23_24,
     three_25_26_27, three_28_29_30, three_31_32_33, three_34_35_36, six_1_2_3_4_5_6, six_4_5_6_7_8_9, six_7_8_9_10_11_12, six_10_11_12_13_14_15,
     six_13_14_15_16_17_18, six_16_17_18_19_20_21, six_19_20_21_22_23_24, six_22_23_24_25_26_27, six_25_26_27_28_29_30, six_28_29_30_31_32_33,
     six_31_32_33_34_35_36}
   

   function SmartRoulette() internal
   {        
        developer  = msg.sender;
        operator   = msg.sender;
        
        winMatrix = WinMatrix(0x073D6621E9150bFf9d1D450caAd3c790b6F071F2);
        if (winMatrix.getBetsProcessed() != maxTypeBets) throw;
        
        smartToken = SmartRouletteToken(0xcced5b8288086be8c38e23567e684c3740be4d48);

        currentMaxBet = 2560 finney; // 2.56 ether
        BlockDelay = 1;        
        maxGamblesPerBlock = 5;        
        ContractState  = true;  
        bankrolLimit = 277 ether;
        profitLimit  = 50 ether;
        CoefPlayerEmission = 100; // default 1%
   }

   function changeSettings(uint256 newMaxBet, uint8 newBlockDelay) public onlyDeveloper 
   {             
      BlockDelay = newBlockDelay;
      // rounds to 2 digts
      newMaxBet = newMaxBet / 2560000000000000000 * 2560000000000000000;  
      if (newMaxBet != currentMaxBet) 
      {
        currentMaxBet = newMaxBet;
        SettingsChanged();
      }
   }

   uint256 bankrolLimit;
   uint256 profitLimit;
   uint256 lastDistributedProfit;
   uint256 lastDateDistributedProfit;
   
   function getDistributeProfitsInfo() public constant returns (uint256 lastProfit, uint256 lastDate)
   {
      lastProfit = lastDistributedProfit;
      lastDate = lastDateDistributedProfit;
   }

   function setProfitDistributionContract(address contractAddress) onlyDeveloper
   {
      if (profitDistributionContract > 0) throw;
      profitDistributionContract = contractAddress;
   }

   function setSmartAffiliateContract(address contractAddress) onlyDeveloper
   {
      if (address(smartAffiliateContract) > 0) throw;
      smartAffiliateContract = SmartAffiliate(contractAddress);
   }

   function distributeProfits(uint256 gasValue) onlyDeveloperOrOperator
   {
      if (profitDistributionContract > 0 && this.balance >= (bankrolLimit+profitLimit))
      {
         uint256 diff = this.balance - bankrolLimit;
         if (address(profitDistributionContract).call.gas(gasValue).value(diff)() == false) throw;
         lastDistributedProfit = diff;
         lastDateDistributedProfit = block.timestamp;
      }      
   }

   function getTokenSettings() public constant returns(uint16 Coef_player, uint256 BankrolLimit, uint256 ProfitLimit)
   {
      Coef_player = CoefPlayerEmission;      
      BankrolLimit = bankrolLimit;
      ProfitLimit = profitLimit;
   }

   function changeTokenSettings(uint16 newCoef_player, uint256 newBankrolLimit, uint256 newProfitLimit) onlyDeveloper
   {
      CoefPlayerEmission  = newCoef_player;      
      bankrolLimit = newBankrolLimit;
      profitLimit  = newProfitLimit;
   }

   function changeMinBet(uint8[157] value) onlyDeveloper
   {
     // value[i] == 0 means skip this value
     // value[i] == 255 means value will be 0
     // Raw mapping minCreditsOnBet changes from 0 to 254, 
     // when compare with real bet we add +1, so min credits changes from 1 to 255
     for(var i=0;i<157;i++) 
     {
        if (value[i] > 0) 
        {
           if (value[i] == 255)
             minCreditsOnBet[i] = 0;     
           else  
             minCreditsOnBet[i] = value[i];
        }
     }
     SettingsChanged();
   }

   function changeMaxBet(uint8[157] value) onlyDeveloper
   {
     // value[i] == 0 means skip this value
     // value[i] == 255 means value will be 0
     // Raw mapping maxCreditsOnBet hold values that reduce max bet from 255 to 0     
     // If we want to calculate real max bet value we should do: 256 - maxCreditsOnBet[i]
     // example: if mapping holds 0 it means, that max bet will be 256 - 0 = 256
     //          if mapping holds 50 it means, that max bet will be 256 - 50 = 206 
     for(var i=0;i<157;i++) 
     {
       if (value[i] > 0) 
       {
          if (value[i] == 255)
             maxCreditsOnBet[i] = 0;     
           else  
             maxCreditsOnBet[i] = 255 - value[i];              
       }
     }
     SettingsChanged();
   }
   
   function deleteContract() onlyDeveloper  
   {
        suicide(msg.sender);
   }

   // bit from 0 to 255
   function isBitSet(uint256 data, uint8 bit) private constant returns (bool ret)
   {
       assembly {
            ret := iszero(iszero(and(data, exp(2,bit))))
        }
        return ret;
   }

   // unique combination of bet and wheelResult, used for access to WinMatrix
   function getIndex(uint16 bet, uint16 wheelResult) private constant returns (uint16)
   {
      return (bet+1)*256 + (wheelResult+1);
   }

   // n form 1 <= to <= 32
   function getBetValue(bytes32 values, uint8 n, uint8 nBit) private constant returns (uint256)
   {
        // bet in credits (1..256) 
        uint256 bet = uint256(values[32 - n]) + 1;

        if (bet < uint256(minCreditsOnBet[nBit]+1)) throw;   //default: bet < 0+1
        if (bet > uint256(256-maxCreditsOnBet[nBit])) throw; //default: bet > 256-0      

        return currentMaxBet * bet / 256;        
   }

   // n - number player bet
   // nBit - betIndex
   function getBetValueByGamble(GameInfo memory gamble, uint8 n, uint8 nBit) private constant returns (uint256) 
   {
      if (n <= 32) return getBetValue(gamble.values , n, nBit);
      if (n <= 64) return getBetValue(gamble.values2, n - 32, nBit);
      // there are 64 maximum unique bets (positions) in one game
      throw;
   }
  
   function totalGames() constant returns (uint256)
   {
       return gambles.length;
   }
   
   function getSettings() constant returns(uint256 maxBet, uint256 oneCredit, uint8[157] _minCreditsOnBet, uint8[157] _maxCreditsOnBet, uint8 blockDelay, bool contractState)
    {
        maxBet    = currentMaxBet;
        oneCredit = currentMaxBet / 256; 
        blockDelay = BlockDelay;      
        for(var i = 0;i < maxTypeBets;i++)  
        {
          _minCreditsOnBet[i] = minCreditsOnBet[i] + 1;
          _maxCreditsOnBet[i] = 255 - maxCreditsOnBet[i];
        }     
        contractState        = ContractState;
    }
   
    modifier onlyDeveloper() 
    {
       if (msg.sender != developer) throw;
       _;
    }

    modifier onlyDeveloperOrOperator() 
    {
       if (msg.sender != developer && msg.sender != operator) throw;
       _;
    }

   function disableBetting_only_Dev()
    onlyDeveloperOrOperator
    {
        ContractState=false;
    }


    function changeOperator(address newOperator) onlyDeveloper
    {
       operator = newOperator;
    }

    function enableBetting_only_Dev()
    onlyDeveloperOrOperator
    {
        ContractState=true;

    }

    event PlayerBet(uint256 gambleId, uint256 playerTokens);
    event EndGame(address player, uint8 result, uint256 gambleId);
    event SettingsChanged();
    event ErrorLog(address player, string message);
    event GasLog(string msg, uint256 level, uint256 gas);

   function totalBetValue(GameInfo memory g) private constant returns (uint256)
   {              
       uint256 totalBetsValue = 0; 
       uint8 nPlayerBetNo = 0;
       uint8 betsCount = uint8(bytes32(g.bets)[0]);

       for(uint8 i = 0; i < maxTypeBets;i++) 
        if (isBitSet(g.bets, i))
        {
          totalBetsValue += getBetValueByGamble(g, nPlayerBetNo+1, i);
          nPlayerBetNo++;

          if (betsCount == 1) break;
          betsCount--;          
        }

       return totalBetsValue;
   }

   function totalBetCount(GameInfo memory g) private constant returns (uint256)
   {              
       uint256 totalBets = 0; 
       for(uint8 i=0; i < maxTypeBets;i++) 
        if (isBitSet(g.bets, i)) totalBets++;          
       return totalBets;   
   }

   function placeBet(uint256 bets, bytes32 values1,bytes32 values2) public payable
   {
       if (ContractState == false)
       {
         ErrorLog(msg.sender, "ContractDisabled");
         if (msg.sender.send(msg.value) == false) throw;
         return;
       }

       var gamblesLength = gambles.length;

       if (gamblesLength > 0)
       {
          uint8 gamblesCountInCurrentBlock = 0;
          for(var i = gamblesLength - 1;i > 0; i--)
          {
            if (gambles[i].blockNumber == block.number) 
            {
               if (gambles[i].player == msg.sender)
               {
                   ErrorLog(msg.sender, "Play twice the same block");
                   if (msg.sender.send(msg.value) == false) throw;
                   return;
               }

               gamblesCountInCurrentBlock++;
               if (gamblesCountInCurrentBlock >= maxGamblesPerBlock)
               {
                  ErrorLog(msg.sender, "maxGamblesPerBlock");
                  if (msg.sender.send(msg.value) == false) throw;
                  return;
               }
            }
            else
            {
               break;
            }
          }
       }
       
       var _currentMaxBet = currentMaxBet;

       if (msg.value < _currentMaxBet/256 || bets == 0)
       {
          ErrorLog(msg.sender, "Wrong bet value");
          if (msg.sender.send(msg.value) == false) throw;
          return;
       }

       if (msg.value > _currentMaxBet)
       {
          ErrorLog(msg.sender, "Limit for table");
          if (msg.sender.send(msg.value) == false) throw;
          return;
       }

       GameInfo memory g = GameInfo(msg.sender, block.number, 37, bets, values1,values2);

       if (totalBetValue(g) != msg.value)
       {
          ErrorLog(msg.sender, "Wrong bet value");
          if (msg.sender.send(msg.value) == false) throw;
          return;
       }       

       address affiliate = 0;
       uint16 coef_affiliate = 0;
       uint16 coef_player;
       if (address(smartAffiliateContract) > 0)
       {        
         (affiliate, coef_affiliate, coef_player) = smartAffiliateContract.getAffiliateInfo(msg.sender);   
       }
       else
       {
         coef_player = CoefPlayerEmission;
       }

       uint256 playerTokens;
       uint8 errorCodeEmission;
       
       (playerTokens, errorCodeEmission) = smartToken.emission(msg.sender, affiliate, msg.value, coef_player, coef_affiliate);
       if (errorCodeEmission != 0)
       {
          if (errorCodeEmission == 1) 
            ErrorLog(msg.sender, "token operations stopped");
          else if (errorCodeEmission == 2) 
            ErrorLog(msg.sender, "contract is not in a games list");
          else if (errorCodeEmission == 3) 
            ErrorLog(msg.sender, "incorect player address");
          else if (errorCodeEmission == 4) 
            ErrorLog(msg.sender, "incorect value bet");
          else if (errorCodeEmission == 5) 
            ErrorLog(msg.sender, "incorect Coefficient emissions");
          
          if (msg.sender.send(msg.value) == false) throw;
          return;
       }

       gambles.push(g);

       PlayerBet(gamblesLength, playerTokens); 
   }

    function Invest() payable onlyDeveloper
    {      
    }

    function GetGameIndexesToProcess() public constant returns (uint256[64] gameIndexes)
    {           
      uint8 index = 0;
      for(int256 i = int256(gambles.length) - 1;i >= 0;i--)
      {      
         GameInfo memory g = gambles[uint256(i)];
         if (block.number - g.blockNumber >= 256) break;

         if (g.wheelResult == 37 && block.number >= g.blockNumber + BlockDelay)
         { 
            gameIndexes[index++] = uint256(i + 1);
         }
      }      
    }

    uint256 lastBlockGamesProcessed;

    function ProcessGames(uint256[] gameIndexes, bool simulate) 
    {
      if (!simulate)
      {
         if (lastBlockGamesProcessed == block.number)  return;
         lastBlockGamesProcessed = block.number;
      }

      uint8 delay = BlockDelay;
      uint256 length = gameIndexes.length;
      bool success = false;
      for(uint256 i = 0;i < length;i++)
      {      
         if (ProcessGame(gameIndexes[i], delay) == GameStatus.Success) success = true;         
      }      
      if (simulate && !success) throw;
    }
    
    function ProcessGameExt(uint256 index) public returns (GameStatus)
    {
      return ProcessGame(index, BlockDelay);
    }

    function ProcessGame(uint256 index, uint256 delay) private returns (GameStatus)
    {            
      GameInfo memory g = gambles[index];
      if (block.number - g.blockNumber >= 256) return GameStatus.Stop;

      if (g.wheelResult == 37 && block.number > g.blockNumber + delay)
      {            
         gambles[index].wheelResult = getRandomNumber(g.player, g.blockNumber);
                 
         uint256 playerWinnings = getGameResult(gambles[index]);
         if (playerWinnings > 0) 
         {
            if (g.player.send(playerWinnings) == false) throw;
         }

         EndGame(g.player, gambles[index].wheelResult, index);
         return GameStatus.Success;
      }

      return GameStatus.Skipped;
    }

    function getRandomNumber(address player, uint256 playerblock) private returns(uint8 wheelResult)
    {
        // block.blockhash - hash of the given block - only works for 256 most recent blocks excluding current
        bytes32 blockHash = block.blockhash(playerblock+BlockDelay); 
        
        if (blockHash==0) 
        {
          ErrorLog(msg.sender, "Cannot generate random number");
          wheelResult = 200;
        }
        else
        {
          bytes32 shaPlayer = sha3(player, blockHash);
    
          wheelResult = uint8(uint256(shaPlayer)%37);
        }    
    }

    function calculateRandomNumberByBlockhash(uint256 blockHash, address player) public constant returns (uint8 wheelResult) 
    { 
          bytes32 shaPlayer = sha3(player, blockHash);
    
          wheelResult = uint8(uint256(shaPlayer)%37);
    }

    function emergencyFixGameResult(uint64 gambleId, uint256 blockHash) onlyDeveloperOrOperator
    {
      // Probably this function will never be called, but
      // if game was not spinned in 256 blocks then block.blockhash will returns always 0 and 
      // we should fix this manually (you can check result with public function calculateRandomNumberByBlockhash)
      GameInfo memory gamble = gambles[gambleId];
      if (gamble.wheelResult != 200) throw;

      gambles[gambleId].wheelResult = calculateRandomNumberByBlockhash(blockHash, gamble.player);      

      uint256 playerWinnings = getGameResult(gambles[gambleId]);
      if (playerWinnings > 0)
      {
        if (gamble.player.send(playerWinnings) == false) throw;
      }      

      EndGame(gamble.player, gamble.wheelResult, gambleId);
    }


    function preliminaryGameResult(uint64 gambleIndex) constant returns (uint64 gambleId, address player, uint256 blockNumber, uint256 totalWin, uint8 wheelResult, uint256 bets, uint256 values1, uint256 values2, uint256 nTotalBetValue, uint256 nTotalBetCount) 
    { 
      GameInfo memory g = gambles[uint256(gambleIndex)];
      
      if (g.wheelResult == 37 && block.number > g.blockNumber + BlockDelay)
      {
         gambles[gambleIndex].wheelResult = getRandomNumber(g.player, g.blockNumber);
         return getGame(gambleIndex);
      }
      throw;      
    }

    // Preliminary game result before real transaction is mined
    function calcRandomNumberAndGetPreliminaryGameResult(uint256 blockHash, uint64 gambleIndex) constant returns (uint64 gambleId, address player, uint256 blockNumber, uint256 totalWin, uint8 wheelResult, uint256 bets, uint256 values1, uint256 values2, uint256 nTotalBetValue, uint256 nTotalBetCount)
    { 
      GameInfo memory g = gambles[uint256(gambleIndex)];      
      g.wheelResult = calculateRandomNumberByBlockhash(blockHash, g.player);      

      gambleId = gambleIndex;
      player = g.player;
      wheelResult = g.wheelResult;      
      totalWin = getGameResult(g);
      blockNumber = g.blockNumber;              
      nTotalBetValue = totalBetValue(g);
      nTotalBetCount = totalBetCount(g);
      bets = g.bets;
      values1 = uint256(g.values);
      values2 = uint256(g.values2);     
    }

    function getGameResult(GameInfo memory game) private constant returns (uint256 totalWin) 
    {
        totalWin = 0;
        uint8 nPlayerBetNo = 0;
        // we sent count bets at last byte 
        uint8 betsCount = uint8(bytes32(game.bets)[0]); 
        for(uint8 i=0; i<maxTypeBets; i++)
        {                      
            if (isBitSet(game.bets, i))
            {              
              var winMul = winMatrix.getCoeff(getIndex(i, game.wheelResult)); // get win coef
              if (winMul > 0) winMul++; // + return player bet
              totalWin += winMul * getBetValueByGamble(game, nPlayerBetNo+1,i);
              nPlayerBetNo++; 

              if (betsCount == 1) break;
              betsCount--;
            }
        }        
    }

    function getGame(uint64 index) constant returns (uint64 gambleId, address player, uint256 blockNumber, uint256 totalWin, uint8 wheelResult, uint256 bets, uint256 values1, uint256 values2, uint256 nTotalBetValue, uint256 nTotalBetCount) 
    {
        gambleId = index;
        player = gambles[index].player;
        totalWin = getGameResult(gambles[index]);
        blockNumber = gambles[index].blockNumber;        
        wheelResult = gambles[index].wheelResult;
        nTotalBetValue = totalBetValue(gambles[index]);
        nTotalBetCount = totalBetCount(gambles[index]);
        bets = gambles[index].bets;
        values1 = uint256(gambles[index].values);
        values2 = uint256(gambles[index].values2);        
    }

   function() 
   {
      throw;
   }
   

}

    Contract ABI  
[{"constant":false,"inputs":[{"name":"newOperator","type":"address"}],"name":"changeOperator","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint8[157]"}],"name":"changeMinBet","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint8[157]"}],"name":"changeMaxBet","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"gambleId","type":"uint64"},{"name":"blockHash","type":"uint256"}],"name":"emergencyFixGameResult","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"bets","type":"uint256"},{"name":"values1","type":"bytes32"},{"name":"values2","type":"bytes32"}],"name":"placeBet","outputs":[],"payable":true,"type":"function"},{"constant":true,"inputs":[],"name":"getTokenSettings","outputs":[{"name":"Coef_player","type":"uint16"},{"name":"BankrolLimit","type":"uint256"},{"name":"ProfitLimit","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalGames","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getDistributeProfitsInfo","outputs":[{"name":"lastProfit","type":"uint256"},{"name":"lastDate","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newCoef_player","type":"uint16"},{"name":"newBankrolLimit","type":"uint256"},{"name":"newProfitLimit","type":"uint256"}],"name":"changeTokenSettings","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint64"}],"name":"getGame","outputs":[{"name":"gambleId","type":"uint64"},{"name":"player","type":"address"},{"name":"blockNumber","type":"uint256"},{"name":"totalWin","type":"uint256"},{"name":"wheelResult","type":"uint8"},{"name":"bets","type":"uint256"},{"name":"values1","type":"uint256"},{"name":"values2","type":"uint256"},{"name":"nTotalBetValue","type":"uint256"},{"name":"nTotalBetCount","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"contractAddress","type":"address"}],"name":"setSmartAffiliateContract","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"disableBetting_only_Dev","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"deleteContract","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"gameIndexes","type":"uint256[]"},{"name":"simulate","type":"bool"}],"name":"ProcessGames","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"enableBetting_only_Dev","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getSettings","outputs":[{"name":"maxBet","type":"uint256"},{"name":"oneCredit","type":"uint256"},{"name":"_minCreditsOnBet","type":"uint8[157]"},{"name":"_maxCreditsOnBet","type":"uint8[157]"},{"name":"blockDelay","type":"uint8"},{"name":"contractState","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"profitDistributionContract","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"index","type":"uint256"}],"name":"ProcessGameExt","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"blockHash","type":"uint256"},{"name":"player","type":"address"}],"name":"calculateRandomNumberByBlockhash","outputs":[{"name":"wheelResult","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"gasValue","type":"uint256"}],"name":"distributeProfits","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"blockHash","type":"uint256"},{"name":"gambleIndex","type":"uint64"}],"name":"calcRandomNumberAndGetPreliminaryGameResult","outputs":[{"name":"gambleId","type":"uint64"},{"name":"player","type":"address"},{"name":"blockNumber","type":"uint256"},{"name":"totalWin","type":"uint256"},{"name":"wheelResult","type":"uint8"},{"name":"bets","type":"uint256"},{"name":"values1","type":"uint256"},{"name":"values2","type":"uint256"},{"name":"nTotalBetValue","type":"uint256"},{"name":"nTotalBetCount","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"Invest","outputs":[],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"newMaxBet","type":"uint256"},{"name":"newBlockDelay","type":"uint8"}],"name":"changeSettings","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"GetGameIndexesToProcess","outputs":[{"name":"gameIndexes","type":"uint256[64]"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"contractAddress","type":"address"}],"name":"setProfitDistributionContract","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"gambleIndex","type":"uint64"}],"name":"preliminaryGameResult","outputs":[{"name":"gambleId","type":"uint64"},{"name":"player","type":"address"},{"name":"blockNumber","type":"uint256"},{"name":"totalWin","type":"uint256"},{"name":"wheelResult","type":"uint8"},{"name":"bets","type":"uint256"},{"name":"values1","type":"uint256"},{"name":"values2","type":"uint256"},{"name":"nTotalBetValue","type":"uint256"},{"name":"nTotalBetCount","type":"uint256"}],"payable":false,"type":"function"},{"inputs":[],"payable":false,"type":"constructor"},{"payable":false,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"gambleId","type":"uint256"},{"indexed":false,"name":"playerTokens","type":"uint256"}],"name":"PlayerBet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"player","type":"address"},{"indexed":false,"name":"result","type":"uint8"},{"indexed":false,"name":"gambleId","type":"uint256"}],"name":"EndGame","type":"event"},{"anonymous":false,"inputs":[],"name":"SettingsChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"player","type":"address"},{"indexed":false,"name":"message","type":"string"}],"name":"ErrorLog","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"msg","type":"string"},{"indexed":false,"name":"level","type":"uint256"},{"indexed":false,"name":"gas","type":"uint256"}],"name":"GasLog","type":"event"}]

  Contract Creation Code Switch To Opcodes View
606060405234610000575b60008054600160a060020a03338116600160a060020a0319928316811784556001805490931617909155600380547c073d6621e9150bff9d1d450caad3c790b6f071f2000000000000000000604860020a60e860020a0319909116179081905560408051602090810185905281517f9eb9dd3b0000000000000000000000000000000000000000000000000000000081529151609d95690100000000000000000090940490941693639eb9dd3b936004808501948390030190829087803b156100005760325a03f1156100005750506040515161ffff169190911490506100f057610000565b60048054600160a060020a03191673cced5b8288086be8c38e23567e684c3740be4d48179055672386f26fc10000006002556001805460a060020a60ff0219167401000000000000000000000000000000000000000017905560038054604060020a60ff02196001604060020a03199091166005171668010000000000000000179055680f0425b0641f340000600a556802b5e3af16b1880000600b55600680547464000000000000000000000000000000000000000060a060020a61ffff02199091161790555b5b6127d380620001c96000396000f300606060405236156101385763ffffffff60e060020a60003504166306394c9b811461014a5780630672cce3146101655780630e6b5823146101a05780630f590c36146101db578063257bcd6a146101fa578063267127ec1461020d5780632c4e591b1461023d57806338f77d691461025c5780633aa5f4f714610282578063490419031461029e57806353c845261461031d578063580bdf3c146103385780635a58cd4c14610347578063665bcc3214610356578063750cae6a146103ac57806385b4bb53146103bb578063864329251461045c57806389abeb19146104855780638f4fb958146104b65780639a969768146104e8578063bd02e4f6146104fa578063c08199611461057c578063ce89a2a214610586578063d02528e61461059e578063eb5904c0146105e9578063fe73e3ec14610604575b34610000576101485b610000565b565b005b3461000057610148600160a060020a0360043516610683565b005b3461000057604080516113a0818101909252610148916004916113a4918390609d908390839080828437509395506106be945050505050565b005b3461000057604080516113a0818101909252610148916004916113a4918390609d908390839080828437509395506107c3945050505050565b005b346100005761014867ffffffffffffffff600435166024356108bf565b005b610148600435602435604435610b20565b005b346100005761021a611516565b6040805161ffff9094168452602084019290925282820152519081900360600190f35b346100005761024a611532565b60408051918252519081900360200190f35b3461000057610269611539565b6040805192835260208301919091528051918290030190f35b346100005761014861ffff60043516602435604435611544565b005b34610000576102b867ffffffffffffffff6004351661159b565b6040805167ffffffffffffffff909b168b52600160a060020a0390991660208b015289890197909752606089019590955260ff909316608088015260a087019190915260c086015260e085015261010084015261012083015251908190036101400190f35b3461000057610148600160a060020a036004351661186c565b005b34610000576101486118c2565b005b3461000057610148611910565b005b346100005761014860048080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284375094965050505091351515915061193a9050565b005b34610000576101486119dc565b005b34610000576103c8611a35565b6040805187815260208101879052908101856113a08083835b80518252602083111561040157601f1990920191602091820191016103e1565b505050919091019050846113a08083835b80518252602083111561043257601f199092019160209182019101610412565b50505060ff9095169190940190815291151560208301525060408051918290030195509350505050f35b3461000057610469611b3e565b60408051600160a060020a039092168252519081900360200190f35b3461000057610495600435611b4d565b6040518082600281116100005760ff16815260200191505060405180910390f35b34610000576104d2600435600160a060020a0360243516611b70565b6040805160ff9092168252519081900360200190f35b3461000057610148600435611bb2565b005b34610000576102b860043567ffffffffffffffff60243516611c6b565b6040805167ffffffffffffffff909b168b52600160a060020a0390991660208b015289890197909752606089019590955260ff909316608088015260a087019190915260c086015260e085015261010084015261012083015251908190036101400190f35b610148611daf565b005b346100005761014860043560ff60243516611dce565b005b34610000576105ab611e61565b60405180826108008083835b8051825260208311156105d757601f1990920191602091820191016105b7565b50505090500191505060405180910390f35b3461000057610148600160a060020a0360043516611faa565b005b34610000576102b867ffffffffffffffff60043516612000565b6040805167ffffffffffffffff909b168b52600160a060020a0390991660208b015289890197909752606089019590955260ff909316608088015260a087019190915260c086015260e085015261010084015261012083015251908190036101400190f35b60005433600160a060020a0390811691161461069e57610000565b60018054600160a060020a031916600160a060020a0383161790555b5b50565b6000805433600160a060020a039081169116146106da57610000565b5060005b609d8160ff161015610794576000828260ff16609d81101561000057602002015160ff16111561078a57818160ff16609d81101561000057602002015160ff1660ff14156107455760ff81166000908152600760205260409020805460ff1916905561078a565b818160ff16609d811015610000576020020151600760008360ff1660ff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055505b5b5b6001016106de565b6040517f85a52584e2a604db198ab2f447cba2fc038a972048381c24b40219ef7a83df7090600090a15b5b5050565b6000805433600160a060020a039081169116146107df57610000565b5060005b609d8160ff161015610794576000828260ff16609d81101561000057602002015160ff16111561088657818160ff16609d81101561000057602002015160ff1660ff141561084a5760ff81166000908152600860205260409020805460ff19169055610886565b818160ff16609d811015610000576020908102919091015160ff838116600090815260089093526040909220805460ff19169183039092161790555b5b5b6001016107e3565b6040517f85a52584e2a604db198ab2f447cba2fc038a972048381c24b40219ef7a83df7090600090a15b5b5050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a08101829052815490919033600160a060020a03908116911614801590610920575060015433600160a060020a03908116911614155b1561092a57610000565b60098467ffffffffffffffff16815481101561000057906000526020600020906006020160005b506040805160c0810182528254600160a060020a0316815260018301546020820152600283015460ff16918101829052600383015460608201526004830154608082015260059092015460a083015290925060c8146109af57610000565b6109bd838360000151611b70565b60098567ffffffffffffffff16815481101561000057906000526020600020906006020160005b5060020160006101000a81548160ff021916908360ff160217905550610a7f60098567ffffffffffffffff16815481101561000057906000526020600020906006020160005b506040805160c0810182528254600160a060020a0316815260018301546020820152600283015460ff1691810191909152600382015460608201526004820154608082015260059091015460a082015261217f565b90506000811115610abe578151604051600160a060020a039091169082156108fc029083906000818181858888f115159350610abe9250505057610000565b5b81516040808401518151600160a060020a03909316835260ff16602083015267ffffffffffffffff861682820152517f38a332eb3aa0f3c1f4139e60234dbd0ad329da0a423413df4ca5936f2f733d819181900360600190a15b5b50505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a08101829052600354829182918291908290819081908190819068010000000000000000900460ff161515610c0c5760408051600160a060020a0333168152602081018290526010818301527f436f6e747261637444697361626c656400000000000000000000000000000000606082015290516000805160206127888339815191529181900360800190a1604051600160a060020a033316903480156108fc02916000818181858888f115159350610c079250505057610000565b611507565b600954995060008a1115610de6576000985060018a0397505b6000881115610de65743600989815481101561000057906000526020600020906006020160005b50600101541415610dd45733600160a060020a0316600989815481101561000057906000526020600020906006020160005b5054600160a060020a03161415610d215760408051600160a060020a0333168152602081018290526019818301527f506c6179207477696365207468652073616d6520626c6f636b00000000000000606082015290516000805160206127888339815191529181900360800190a1604051600160a060020a033316903480156108fc02916000818181858888f115159350610c079250505057610000565b611507565b60035460019099019867ffffffffffffffff1660ff8a1610610dcf5760408051600160a060020a0333168152602081018290526012818301527f6d617847616d626c6573506572426c6f636b0000000000000000000000000000606082015290516000805160206127888339815191529181900360800190a1604051600160a060020a033316903480156108fc02916000818181858888f115159350610c079250505057610000565b611507565b610dd9565b610de6565b5b60001990970196610c25565b5b60025496506101008704341080610dfc57508c155b15610e935760408051600160a060020a033316815260208101829052600f818301527f57726f6e67206265742076616c75650000000000000000000000000000000000606082015290516000805160206127888339815191529181900360800190a1604051600160a060020a033316903480156108fc02916000818181858888f115159350610c079250505057610000565b611507565b86341115610f2d5760408051600160a060020a033316815260208101829052600f818301527f4c696d697420666f72207461626c650000000000000000000000000000000000606082015290516000805160206127888339815191529181900360800190a1604051600160a060020a033316903480156108fc02916000818181858888f115159350610c079250505057610000565b611507565b6040805160c081018252600160a060020a0333168152436020820152602591810191909152606081018e9052608081018d905260a081018c9052955034610f7387612299565b1461100a5760408051600160a060020a033316815260208101829052600f818301527f57726f6e67206265742076616c75650000000000000000000000000000000000606082015290516000805160206127888339815191529181900360800190a1604051600160a060020a033316903480156108fc02916000818181858888f115159350610c079250505057610000565b611507565b60065460009550859450600160a060020a0316849011156110ba57600654604080516000606091820181905282517f7a8df1b9000000000000000000000000000000000000000000000000000000008152600160a060020a03338116600483015293519390941693637a8df1b9936024808301949391928390030190829087803b156100005760325a03f11561000057505060408051805160208201519190920151919750955093506110cb9050565b60065460a060020a900461ffff1692505b6004805460408051600090820181905281517f0f762cfe000000000000000000000000000000000000000000000000000000008152600160a060020a0333811695820195909552898516602482015234604482015261ffff88811660648301528916608482015282519490931693630f762cfe9360a48082019493918390030190829087803b156100005760325a03f115610000575050604051805160209091015190935091505060ff8116156113d7578060ff16600114156111ea5760408051600160a060020a0333168152602081018290526018818301527f746f6b656e206f7065726174696f6e732073746f707065640000000000000000606082015290516000805160206127888339815191529181900360800190a161139e565b8060ff16600214156112585760408051600160a060020a033316815260208101829052601f818301527f636f6e7472616374206973206e6f7420696e20612067616d6573206c69737400606082015290516000805160206127888339815191529181900360800190a161139e565b8060ff16600314156112c65760408051600160a060020a0333168152602081018290526017818301527f696e636f7265637420706c617965722061646472657373000000000000000000606082015290516000805160206127888339815191529181900360800190a161139e565b8060ff16600414156113345760408051600160a060020a0333168152602081018290526012818301527f696e636f726563742076616c7565206265740000000000000000000000000000606082015290516000805160206127888339815191529181900360800190a161139e565b8060ff166005141561139e5760408051600160a060020a033316815260208101829052601e818301527f696e636f7265637420436f656666696369656e7420656d697373696f6e730000606082015290516000805160206127888339815191529181900360800190a15b5b5b5b5b604051600160a060020a033316903480156108fc02916000818181858888f115159350610c079250505057610000565b611507565b600980548060010182818154818355818115116114535760060281600602836000526020600020918201910161145391905b8082111561144f578054600160a060020a031916815560006001820181905560028201805460ff1916905560038201819055600482018190556005820155600601611409565b5090565b5b505050916000526020600020906006020160005b5087518154600160a060020a031916600160a060020a0390911617815560208089015160018301556040808a015160028401805460ff191660ff90921691909117905560608a0151600384015560808a0151600484015560a08a015160059093019290925581518d815290810185905281517f8a0f1e52443beebd562effb53b94f903320af76cbdca2deb2d2bf01cf119d6dc93509081900390910190a15b50505050505050505050505050565b600654600a54600b5460a060020a90920461ffff16915b909192565b6009545b90565b600c54600d545b9091565b60005433600160a060020a0390811691161461155f57610000565b6006805475ffff0000000000000000000000000000000000000000191660a060020a61ffff861602179055600a829055600b8190555b5b505050565b60006000600060006000600060006000600060008a995060098b67ffffffffffffffff16815481101561000057906000526020600020906006020160005b505460098054600160a060020a039092169a506116699167ffffffffffffffff8e169081101561000057906000526020600020906006020160005b506040805160c0810182528254600160a060020a0316815260018301546020820152600283015460ff1691810191909152600382015460608201526004820154608082015260059091015460a082015261217f565b965060098b67ffffffffffffffff16815481101561000057906000526020600020906006020160005b5060010154975060098b67ffffffffffffffff16815481101561000057906000526020600020906006020160005b50600201546009805460ff909216975061174d9167ffffffffffffffff8e169081101561000057906000526020600020906006020160005b506040805160c0810182528254600160a060020a0316815260018301546020820152600283015460ff1691810191909152600382015460608201526004820154608082015260059091015460a0820152612299565b91506117ce60098c67ffffffffffffffff16815481101561000057906000526020600020906006020160005b506040805160c0810182528254600160a060020a0316815260018301546020820152600283015460ff1691810191909152600382015460608201526004820154608082015260059091015460a0820152612316565b905060098b67ffffffffffffffff16815481101561000057906000526020600020906006020160005b5060030154945060098b67ffffffffffffffff16815481101561000057906000526020600020906006020160005b506004015460019004935060098b67ffffffffffffffff16815481101561000057906000526020600020906006020160005b506005015492505b9193959799509193959799565b60005433600160a060020a0390811691161461188757610000565b6006546000600160a060020a0390911611156118a257610000565b60068054600160a060020a031916600160a060020a0383161790555b5b50565b60005433600160a060020a039081169116148015906118f0575060015433600160a060020a03908116911614155b156118fa57610000565b6003805468ff0000000000000000191690555b5b565b60005433600160a060020a0390811691161461192b57610000565b33600160a060020a0316ff5b5b565b600060006000600084151561195d5743600e541415611958576119d3565b43600e555b5050600154845160a060020a90910460ff16925090506000805b828110156119be5760006119a28783815181101561000057906020019060200201518660ff16612355565b600281116100005714156119b557600191505b5b600101611977565b8480156119c9575081155b156119d357610000565b5b505050505050565b60005433600160a060020a03908116911614801590611a0a575060015433600160a060020a03908116911614155b15611a1457610000565b6003805468ff00000000000000001916680100000000000000001790555b5b565b600060006113a060405190810160405280609d905b600081526000199091019060200181611a4a575050604080516113a08101909152609d815b600081526000199091019060200181611a6f5750506002546001549094506101008504935060a060020a900460ff166000805b609d60ff82161015611b205760ff808216600081815260076020526040902054909116600101908690609d8110156100005760ff92831660209182029290920191909152828216600081815260089092526040909120548216909103908590609d8110156100005760ff90921660209290920201525b600101611aa2565b60035468010000000000000000900460ff1691505b50909192939495565b600554600160a060020a031681565b600154600090611b6890839060a060020a900460ff16612355565b90505b919050565b604080516c01000000000000000000000000600160a060020a0384160281526014810184905290519081900360340190206000906025810691505b5092915050565b6000805433600160a060020a03908116911614801590611be1575060015433600160a060020a03908116911614155b15611beb57610000565b6005546000600160a060020a03909116118015611c185750600b54600a540130600160a060020a03163110155b156107be5750600a54600554604051600160a060020a033081163193909303929190911690839083906000818181858888f115159350611c5b9250505057610000565b600c81905542600d555b5b5b5050565b600060006000600060006000600060006000600060c0604051908101604052806000600160a060020a0316815260200160008152602001600060ff16815260200160008152602001600060001916815260200160006000191681525060098c67ffffffffffffffff16815481101561000057906000526020600020906006020160005b506040805160c0810182528254600160a060020a031680825260018401546020830152600284015460ff1692820192909252600383015460608201526004830154608082015260059092015460a0830152909150611d4d908e90611b70565b60ff166040820181905281518d9c509a509650611d698161217f565b975080602001519850611d7b81612299565b9250611d8681612316565b6060820151608083015160a08401519198509650945091505b509295989b9194979a5092959850565b60005433600160a060020a0390811691161461014657610000565b5b5b565b60005433600160a060020a03908116911614611de957610000565b6001805474ff0000000000000000000000000000000000000000191660a060020a60ff841602179055600254672386f26fc1000000928390049092029182146107be5760028290556040517f85a52584e2a604db198ab2f447cba2fc038a972048381c24b40219ef7a83df7090600090a15b5b5b5050565b604080516108008101825290815b6000815260200190600190039081611e6f5750506040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260095460001901905b60008212611fa357600982815481101561000057906000526020600020906006020160005b506040805160c0810182528254600160a060020a03168152600183015460208201819052600284015460ff1692820192909252600383015460608201526004830154608082015260059092015460a0830152909150610100439190910310611f4957611fa3565b806040015160ff166025148015611f735750600154602082015160a060020a90910460ff16014310155b15611f965781600101848480600101955060ff1660408110156100005760200201525b5b60001990910190611ebd565b5b50505090565b60005433600160a060020a03908116911614611fc557610000565b6005546000600160a060020a039091161115611fe057610000565b60058054600160a060020a031916600160a060020a0383161790555b5b50565b600060006000600060006000600060006000600060c0604051908101604052806000600160a060020a0316815260200160008152602001600060ff16815260200160008152602001600060001916815260200160006000191681525060098c67ffffffffffffffff16815481101561000057906000526020600020906006020160005b506040805160c0810182528254600160a060020a0316815260018301546020820152600283015460ff16918101829052600383015460608201526004830154608082015260059092015460a083015290915060251480156120f65750600154602082015160a060020a90910460ff160143115b156101415761210d816000015182602001516125bc565b60098d67ffffffffffffffff16815481101561000057906000526020600020906006020160005b50600201805460ff191660ff929092169190911790556121538c61159b565b9a509a509a509a509a509a509a509a509a509a50612171565b610000565b509193959799509193959799565b6060810151600090819060f860020a90821a81020481805b609d60ff8316101561228f576121b186606001518361267f565b1561228357600360099054906101000a9004600160a060020a0316600160a060020a03166303ee8f086121ee8460ff16896040015160ff1661268f565b6000604051602001526040518263ffffffff1660e060020a028152600401808261ffff1661ffff168152602001915050602060405180830381600087803b156100005760325a03f115610000575050604051519150506000811115612251576001015b61225f8685600101846126a7565b8102949094019360019384019360ff8416141561227b5761228f565b600019909201915b5b600190910190612197565b5b50505050919050565b60608101516000908190819060f860020a90821a810204815b609d60ff82161015612309576122cc86606001518261267f565b15612300576122df8684600101836126a7565b9093019260019283019260ff831614156122f857612309565b600019909101905b5b6001016122b2565b8394505b50505050919050565b600080805b609d60ff8216101561234a5761233584606001518261267f565b15612341576001909101905b5b60010161231b565b8192505b5050919050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260098054839190869081101561000057906000526020600020906006020160005b506040805160c0810182528254600160a060020a03168152600183015460208201819052600284015460ff1692820192909252600383015460608201526004830154608082015260059092015460a083015290925061010043919091031061241257600292506125b4565b816040015160ff16602514801561242e57508382602001510143115b156125af57612445826000015183602001516125bc565b600986815481101561000057906000526020600020906006020160005b5060020160006101000a81548160ff021916908360ff1602179055506124f3600986815481101561000057906000526020600020906006020160005b506040805160c0810182528254600160a060020a0316815260018301546020820152600283015460ff1691810191909152600382015460608201526004820154608082015260059091015460a082015261217f565b90506000811115612532578151604051600160a060020a039091169082156108fc029083906000818181858888f1151593506125329250505057610000565b5b7f38a332eb3aa0f3c1f4139e60234dbd0ad329da0a423413df4ca5936f2f733d818260000151600987815481101561000057906000526020600020906006020160005b506002015460408051600160a060020a03909316835260ff9091166020830152818101889052519081900360600190a1600092506125b4565b600192505b505092915050565b60015460009060a060020a900460ff168201408181151561263d5760408051600160a060020a033316815260208101829052601d818301527f43616e6e6f742067656e65726174652072616e646f6d206e756d626572000000606082015290516000805160206127888339815191529181900360800190a160c892506125b4565b50604080516c01000000000000000000000000600160a060020a0387160281526014810183905290519081900360340190206025810692505b5b505092915050565b600281900a821615155b92915050565b60008160010183600101610100020190505b92915050565b6000602060ff8416116126ca576126c3846080015184846126fa565b90506126f3565b604060ff841611610141576126c38460a0015160208503846126fa565b90506126f3565b610000565b9392505050565b60006000848460200360ff1660208110156100005760ff808616600090815260076020526040902054600160f860020a9490931a84029390930482019350918216011681101561274957610000565b60ff838116600090815260086020526040902054166101000361ffff1681111561277257610000565b6002546101009082020491505b50939250505056003811264a3dc641fd8e586a867055d4058a1592a7d5d8c41027c42b03a762c7eba165627a7a72305820a3eb481f3a7d35ecb53e1767d0cc54c5bca56b7fe092f961faaf7e8194858d8b0029

   Swarm Source:
bzzr://a3eb481f3a7d35ecb53e1767d0cc54c5bca56b7fe092f961faaf7e8194858d8b

 

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.