Sponsored Link: Join FundYourselfNow ICO – Crypto crowdfunding platform to find talent, raise funding while protecting project fraud
Contract Overview
ETH Balance: 291.49 Ether
ETH USD Value: $91,857.24 (@ $315.13/ETH)
No Of Transactions: 26216 txns
  Latest 25 txns from a total Of 26216 transactions View All

TxHash Block Age From To Value [TxFee]
0x2dc587106a6b2ce0afe63aec93c32e6b8dcb4b08cc27449cb5d2c2e8cb63e25439385861 day 9 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.00110907
0x1ffcc64fe38a40fbd7e4da12050205fb5cf9569852f21fd9fce6f98b74530d0339385811 day 9 hrs ago0x355907a3144b0fa14edf951ac86a0d16d8987ada  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.02 Ether0.0032071
0x4f268a0004e6c10c4e1cbc5796fbf0dd2414e77d1fe1c60557fe95a28e9ff99f39385751 day 9 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.00129987
0xc85f03b6d83875721ec74163cec2dbabe700142599bce6af7942381e9ecf31b739385691 day 9 hrs ago0x355907a3144b0fa14edf951ac86a0d16d8987ada  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.03 Ether0.00333501
0xf11a2c399ba14080429fe0be4b03d6ace13a4e24b69ec6ae0c4a232dad01dd1c39385641 day 9 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.00099036
0xab4801cdef4d5b9568421c89800ea446edfc5bbce51e5c1e5c72f28599fe9afa39385611 day 9 hrs ago0x355907a3144b0fa14edf951ac86a0d16d8987ada  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.01 Ether0.00314815
0xe9a2be66a0a1c180119aac06b0d3953ec807996888625d6acc7bcb7e27bf265839339532 days 8 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.00246757
0x417c40e331fbc6b1b8fd173b1169d3b8eff0674a5eda6085a56b41537ee1869a39339502 days 8 hrs ago0x24b52f71b6daa8298b144c7f2bf7c47f18308efe  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.12 Ether0.00632743
0xcb200dceada8d5d6ea19f20c8cb34a18a4280e9fd41275b6ffbaf168281ec5c139337972 days 8 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.00224884
0x990df89ebf4f7f6fc5af2095936fce78fb9fca9d44807ccc273dfa778eb2137339337932 days 8 hrs ago0x24b52f71b6daa8298b144c7f2bf7c47f18308efe  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.1 Ether0.00621171
0x16f6a23f98dbc09185e706601d63a278fcf1b9c1866f44e71c719af63fccaf3639337792 days 8 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.00217729
0xe45bbd686035e373e6064a8d5ff729c251ee372773d15a32f9026a8e20de92db39337762 days 8 hrs ago0x24b52f71b6daa8298b144c7f2bf7c47f18308efe  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.12 Ether0.00861248
0x38cab8a0d0e899ba10248d5c491ed4cdb9367b91bc0b05881f087ba00c49382839319002 days 18 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.00305332
0x7a70b99e58c640698bdd831d171bfa4d5510ab02b453f6db228c620d5895672e39318972 days 18 hrs ago0x28202583cc88e6e20ae2095c26092853b67986cd  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.03 Ether0.00081264
0x3e78bac85033c7591cbf7a37bba4b15a84affd68604b6c02f19e2fc210981e9e39318302 days 18 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.00238024
0x15ef75a5c1efe3374de41f502acdafee50f80a8c0b80d2023d858686d365c9dd39318272 days 18 hrs ago0x28202583cc88e6e20ae2095c26092853b67986cd  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.03 Ether0.00081264
0xa933a643bd1573792e518efdfd558034bb0b8f54400f13661cada1f0ba8af2f139317752 days 18 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.00305332
0xedf6f5848cc9eb75800598a365f3163835c57986cd33116590e023b2c5acb08c39317702 days 18 hrs ago0x28202583cc88e6e20ae2095c26092853b67986cd  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.03 Ether0.00081264
0x50f10afb47b3e1785167690b8eac89c8518618ef0e15864fd26c22dd6a46dadc39317682 days 18 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.00228365
0x906494e44a55045b06982932883b02e6c87fbe0482b4f7012f44104cd159180e39317652 days 18 hrs ago0x28202583cc88e6e20ae2095c26092853b67986cd  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.03 Ether0.00081264
0xe48624dd554f54540daef96ddb363e16f43c463559ff6c15cf5cef89734b574e39191325 days 8 hrs ago0x28202583cc88e6e20ae2095c26092853b67986cd  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.00133137
0x8e1eea0dedb6ff9b49c648ef3b1091a86f61b35aea605d02c8bdc9b33eaad31d39189165 days 9 hrs ago0x28202583cc88e6e20ae2095c26092853b67986cd  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.03 Ether0.00152742
0xe975ae14832d3d6b31872970af24add3e7ffa9fd8b91d7f4c7fc5730c32ceea439029248 days 15 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.00122348
0xe49746544789fff0ba7718ab9eeeb35d45ff4c38606862380401a489a18d8b7d39029208 days 15 hrs ago0x28202583cc88e6e20ae2095c26092853b67986cd  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.03 Ether0.00093104
0x84f6298a1fce90fa1c9a8ea05e917381398ba7a55cf83cebb6c37e3eb5f7f00439029068 days 15 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.00147154

[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
0xe9a2be66a0a1c180119aac06b0d3953ec807996888625d6acc7bcb7e27bf265839339532 days 8 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x24b52f71b6daa8298b144c7f2bf7c47f18308efe0.18 Ether
0xcb200dceada8d5d6ea19f20c8cb34a18a4280e9fd41275b6ffbaf168281ec5c139337972 days 8 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x24b52f71b6daa8298b144c7f2bf7c47f18308efe0.2 Ether
0x84f6298a1fce90fa1c9a8ea05e917381398ba7a55cf83cebb6c37e3eb5f7f00439029068 days 15 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x28202583cc88e6e20ae2095c26092853b67986cd0.36 Ether
0xa1f600ba3dcdcc0c64ae2c03665281482b40b0993b5c4f1a3ecb31ca2eaee6c639028388 days 15 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xa7284c98c84a2f0442318340635a8d63f6c21dbd0.48 Ether
0x0634b12a36da05c506ffabf2029620c0fb6de57bc080767461004ae8df75885b39027978 days 15 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xa7284c98c84a2f0442318340635a8d63f6c21dbd0.36 Ether
0xc1abfaf66d20dadda7a50a14ca53657eab58261468d0477fcf8a74569521a62e39027838 days 15 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xa7284c98c84a2f0442318340635a8d63f6c21dbd0.18 Ether
0xf13e7545572c9095e8b18d8bbf02d4d272fe38996f6a4ad5f5ce92be1d82c83a39027738 days 15 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xa7284c98c84a2f0442318340635a8d63f6c21dbd0.18 Ether
0xb4601bcc617847008e2432b420e016e74ed3ffdcc777bd55710bb594239a373e39027678 days 15 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xa7284c98c84a2f0442318340635a8d63f6c21dbd0.18 Ether
0xd5a6b6916a30afec353eb2d7ecedaf4c382db68b3cb2218ac2dface258d5881239027628 days 15 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xa7284c98c84a2f0442318340635a8d63f6c21dbd0.18 Ether
0xb0617c35fdd01e2cf7ae9fe550db5863d30685fc24004287dd5e16f9bffb9a6839027598 days 15 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xa7284c98c84a2f0442318340635a8d63f6c21dbd0.18 Ether
0x439f44ae1177850e2b8124b5d2332c7f3b12ccda830052b4de91b5828b1298b639027538 days 15 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xa7284c98c84a2f0442318340635a8d63f6c21dbd0.18 Ether
0x7240e312ec19fdddd224594497f62364cab3172c3c1c044b61fec1ded31b07dd39027478 days 15 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xa7284c98c84a2f0442318340635a8d63f6c21dbd0.18 Ether
0x3b3e9ac55c1cbb90ebadd306532cf074ffd938fde22cf65d690ba21dc1e5274e39027128 days 16 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x28202583cc88e6e20ae2095c26092853b67986cd0.36 Ether
0x6f6e8cdf5296adef06fb59b631538643cfa30aa7d3dd8f0030651dbf14159b6439026808 days 16 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xa7284c98c84a2f0442318340635a8d63f6c21dbd0.36 Ether
0xf04404a8d6c9098aa32c1e40bc9f1bca8713ee0fdf18bbd4cef437b88264c24b39026708 days 16 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xa7284c98c84a2f0442318340635a8d63f6c21dbd0.18 Ether
0x241b11705499e2cc9379851c6063dcac2e1937e4058729dd867c88a5f20adec7389275210 days 13 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x165209a4beee305c95c3fedadcae929d093354a10.2 Ether
0xfab98a647e5f28044376f5f473664ae67907fa3764d4a0549803ff9c59280bc6388742511 days 13 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x73fd3c61f22940f17dc6568f1c1e5cec8b5465a92.55 Ether
0xd86000564740e20ca71d55c34009b1eca0cd7d5a878ce4ffe78f7bb4aa4eaa14388740911 days 13 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x73fd3c61f22940f17dc6568f1c1e5cec8b5465a92.16 Ether
0xf46eaebe3c1cbe995d02b367ecd3055090bba7f6b7abaa46023d83c38a85e8c7388740211 days 13 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x73fd3c61f22940f17dc6568f1c1e5cec8b5465a90.18 Ether
0x48c9188463a7c1d3e0e6cd25eb92fc099c1064a4e5c2017e4522f4758a95bf54382177124 days 1 hr ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xab20d43f07b9af234227cbbfa21dc1329b467bfa0.2 Ether
0x5e4b2c12d1f2d995594899a75b1f71c8d0fb25d027b35eb6d9ddd5c0b1796421382123224 days 3 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xab20d43f07b9af234227cbbfa21dc1329b467bfa0.2 Ether
0x7d54266d21d586e3d7ce48cbeac7bf53d53ccafd93ed2bc4dd6d69bccc1c8303382052324 days 6 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x46e62f8fd8245ccf646bcd06896a55438c7e42520.18 Ether
0x4fac9d144041a1ed6239f49d587cd2b70c40a25aefbc37cbe4049c16f3756312381503725 days 8 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xa15830f1ce1d68e271451fbb02d75c65d22d64260.2 Ether
0xaad85d7fad9f2932f5dd3b5ac3dd6fd8720b6336b0865811353f9bd63dd52b3c380027428 days 4 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xab20d43f07b9af234227cbbfa21dc1329b467bfa0.36 Ether
0x0b56de78d972590472976fec9bb3f9dad62f8a8e8225c7ec10a90881450dde8f380024028 days 4 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xab20d43f07b9af234227cbbfa21dc1329b467bfa0.18 Ether

[Download: CSV Export ]    
Warning: The compiled contract might be susceptible to SkipEmptyStringLiteral (low-severity), ConstantOptimizerSubtraction (low-severity) Solidity compiler bugs.

Contract Source Code Verified
Contract Name: SmartRoulette
Compiler Version: v0.4.8+commit.60cc1668
Optimization Enabled: Yes
Online Solidity Editor:  -NA-



  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.