Sponsored Link:   Etheal: Backed by a Finance Minister & Michael Terpin & Harvard alumnus Prof 30% bonus - First hour only: June 25
 Latest 25 txns from a total Of 29005 transactions
View All

TxHash Age From To Value [TxFee]
0x91b5bd5525ba37a92b9dca7763e5ac0d010aa7237ea8a04be27dd1e80038fee459 mins ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.000095958
0x5cd86f82feb345b0a5db33c9b7074f8c5a9e92792b9da9458cc3543cb3fcf1b31 hr ago0x8e8dc0e7445c0ebd7c0f6a362b8ea8ae8d1c3e2a  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.01 Ether0.000440982
0xe142ae3e6ac32a9fccb91f91bfacacf4b8baa2bbda96e83e0238a1810148c94c8 hrs 15 mins ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.000484208
0xd380c722b6d84c5490264640076f9670543563fb0bc7564300e720fab6e02eba8 hrs 16 mins ago0xada779089a832198e2925d8f1d5c75229f8d0081  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda31.2 Ether0.000216853
0x45d5a5634cb52226b910cf211dae81dac10c720754cdd4b2155e6e43f185ca958 hrs 20 mins ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.000423682
0x89e138941bc3f7c3db2720ea4afdd2eadb35c9f68e62b2c8cc1b9270266f86028 hrs 21 mins ago0xada779089a832198e2925d8f1d5c75229f8d0081  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.81 Ether0.000456596
0xf8de015ca400f6fc23a05a0d93dad19020e8747f0475781b05bf5184b5f2e1fe10 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.000708552
0xfa6fa842359822cb9c93b578cc414e66d20c74dd91f75a0043566a905f169b7410 hrs 2 mins ago0x938101c9e95c3d0e65a47fea3e95073d7882aad9  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.1 Ether0.000977568
0xbeec84005f270716466fd705647c8a07ef665133b6c5fc8824c0cb14dff24a5911 hrs 56 mins ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.0003282714
0x3a5fd7321c60f4d421f0c1c2d5e646c112c638be2b452c3f8cc0574443f752c211 hrs 57 mins ago0x938101c9e95c3d0e65a47fea3e95073d7882aad9  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.15 Ether0.00083405
0x4be28e504cb59dee63555d47e153b054dc018b0142c03801bf26553fdfeabf7911 hrs 58 mins ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.000317682
0xa79567c8485baac054e9266f91be5d54d7d169ee21a10f25eaf013dc3ab0daad12 hrs ago0x938101c9e95c3d0e65a47fea3e95073d7882aad9  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.13 Ether0.000700602
0x7d5b39eb5c5a2f65942b313a3f52d33286884d0ffab0f3b54b620e9119464bdd12 hrs 3 mins ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.000361914
0x309bfa41c2f5911c590adb4fde6a6954bd6c7309639349c2c181de3ccdd356a512 hrs 4 mins ago0x938101c9e95c3d0e65a47fea3e95073d7882aad9  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.15 Ether0.00083306
0xccaf69b7b27db99bd9ca08d38853ed2eb691021db48872e20380b215533df7ba12 hrs 6 mins ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.000137892
0x1c53410dcc500862e544112719764ff4f1db55a96ac9c1cac3eec162a4e6d60212 hrs 6 mins ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.000531414
0x12dd02f9a570ac63225187b10c2831d0c5de572d3425e140846952e2f7f1655e12 hrs 7 mins ago0x938101c9e95c3d0e65a47fea3e95073d7882aad9  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.1 Ether0.0010097568
0x0a852ea89ccc72617024031f9e49bfe710fc5b79b00ee6daf6ce36d704aa6d6e12 hrs 8 mins ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.000618264
0x2aaf785a1300656f38c66b27337ad045023fbf36a14331fde54dbc0c922c4b4d12 hrs 9 mins ago0x938101c9e95c3d0e65a47fea3e95073d7882aad9  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.1 Ether0.001005392
0x5d1edf7a5d6bf4a250538e51346f666e4f6d8c6457a5b31f8f3980cec99a870c2 days 3 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.000240618
0xf794b2e5f5ef437207bd009c14eeba3fde2c90c825f31d25db5169672808b7b02 days 3 hrs ago0x8e8dc0e7445c0ebd7c0f6a362b8ea8ae8d1c3e2a  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.1 Ether0.000334867875
0x514416a1756f94ace75972c37f4be60e8717b738927d3bbfe6f14da185be86182 days 6 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.00031341425
0x838f2c8c857b3a20c48313b3e08d3d05cefdd994798a716bf6b5ec13cf34878d2 days 6 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.00100911765
0x64a2634429ef218eceed0625a829eff661ae3bc194f67ee973d7e3ec5332abe42 days 6 hrs ago0x8e8dc0e7445c0ebd7c0f6a362b8ea8ae8d1c3e2a  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.1 Ether0.00096511
0x2223544d855f4e7dcd5405b79ac23c2985bee532ef78bf2ee37613ff86ccd5dd2 days 7 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.00094344
[ 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
0xe142ae3e6ac32a9fccb91f91bfacacf4b8baa2bbda96e83e0238a1810148c94c58296768 hrs 15 mins ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xada779089a832198e2925d8f1d5c75229f8d00812.4 Ether
0x45d5a5634cb52226b910cf211dae81dac10c720754cdd4b2155e6e43f185ca9558296598 hrs 20 mins ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xada779089a832198e2925d8f1d5c75229f8d00811.62 Ether
0x7d5b39eb5c5a2f65942b313a3f52d33286884d0ffab0f3b54b620e9119464bdd582876212 hrs 3 mins ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x938101c9e95c3d0e65a47fea3e95073d7882aad90.3 Ether
0x0a852ea89ccc72617024031f9e49bfe710fc5b79b00ee6daf6ce36d704aa6d6e582874112 hrs 8 mins ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x938101c9e95c3d0e65a47fea3e95073d7882aad90.36 Ether
0x2223544d855f4e7dcd5405b79ac23c2985bee532ef78bf2ee37613ff86ccd5dd58182442 days 7 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x8e8dc0e7445c0ebd7c0f6a362b8ea8ae8d1c3e2a0.36 Ether
0x4d350063161010356619041e984ef6aac822525fae40a4dc71578cd7d2327c7f58181142 days 7 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x8e8dc0e7445c0ebd7c0f6a362b8ea8ae8d1c3e2a0.18 Ether
0x59174d3340f425d2892fb23965512a7253b5b792dd5fee3f779474d197d4afb958180752 days 8 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x8e8dc0e7445c0ebd7c0f6a362b8ea8ae8d1c3e2a0.18 Ether
0x61380b61c30c90f868c6eef71c6361af9b01dc9dc9634a5b04832c267a57674558179942 days 8 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x8e8dc0e7445c0ebd7c0f6a362b8ea8ae8d1c3e2a0.18 Ether
0x518909f0607c90ac35d2d9c4eb0954b3fbd6560acdab1cb33f1a57afcd1f618657959156 days 2 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x193278812715be2873f4f07f898fd422b45d99ce0.2 Ether
0x752b5feb99b2e6d52448dd19032d73e1987a3e7530eaa5cbb690b6bb5ca0308b57800968 days 19 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x972d2e48d7010c09099640cc38ff4f4bff51c5120.32 Ether
0x9a5218ad2619197716fe53d1b40b3b56cf663fced2183aaedfecae98a128808957800708 days 20 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x972d2e48d7010c09099640cc38ff4f4bff51c5120.2 Ether
0x3a06a0039b5b9caa2cb16cc4f25297d8fe3af41560fb620911305c960bb063f4576704811 days 3 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x6236feb3f7c74e12e09c9f1a78f169711588a5d00.3 Ether
0x9973b754d368d5e5e9233e00cee7159992608852c94ff241ce6d94412e0008a9576699611 days 3 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x6236feb3f7c74e12e09c9f1a78f169711588a5d00.24 Ether
0xd256b5927ea284a5b31e871754b41e37dab51cceeca6c0131e8e2f1a47e7cce6576694611 days 3 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x6236feb3f7c74e12e09c9f1a78f169711588a5d00.18 Ether
0x933468452f1dd384ae845ada0e4fdeb0e28d1adf1207ed9f23658cd57588617f576522011 days 10 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x6236feb3f7c74e12e09c9f1a78f169711588a5d00.72 Ether
0x53b9547b37681c3f82b7d32f712efa35f83591cad32906d7158f9bb0f60610b1576501611 days 11 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x6236feb3f7c74e12e09c9f1a78f169711588a5d00.36 Ether
0xcf82fbdaac9f143e47c00e6c68b36b13630f8cb8b6f3a3a421306a0cfef25fce576499711 days 11 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x6236feb3f7c74e12e09c9f1a78f169711588a5d00.36 Ether
0x6fa87e4df03fe98d0b2c2c12a22b305cda50631482cd3ca3e0d160800b5956d2576498611 days 11 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x6236feb3f7c74e12e09c9f1a78f169711588a5d00.24 Ether
0x88fcc80cd3adb59e52b3eaac875e9a09164723f83b380bcb386e540ff6d67dd7576495811 days 12 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x6236feb3f7c74e12e09c9f1a78f169711588a5d00.24 Ether
0x673d1ba174087b78e6ee7239f9c650a764dbdf6319705af1272071bc8b65d4bc576238811 days 22 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x6236feb3f7c74e12e09c9f1a78f169711588a5d00.18 Ether
0x2bec4e2f91daf171286d56b5764aedae11b5f1eae75f44370ef67376ee584371576235911 days 23 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x6236feb3f7c74e12e09c9f1a78f169711588a5d00.24 Ether
0x01c3bbc70b0c577bf49394808885f42118b1b16475833bb84c70e87317422abf576160812 days 2 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x6236feb3f7c74e12e09c9f1a78f169711588a5d00.24 Ether
0x7f502f34154032fbd324ff10fb5b6c9ecdec0cbe3db0297d0e673325319f48bc576155812 days 2 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x6236feb3f7c74e12e09c9f1a78f169711588a5d00.24 Ether
0x79becbe4f8cc8983c8c67b0f3777f7bc836b880006c39bdddde44d46be8b1d48576154612 days 2 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x6236feb3f7c74e12e09c9f1a78f169711588a5d00.3 Ether
0x3841586ea4c8da33b94753a8b92096b61acb21d367a560b2c0234b8a9905a8ea576150912 days 2 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x6236feb3f7c74e12e09c9f1a78f169711588a5d00.24 Ether
[ Download CSV Export  ] 
Warning: The compiled contract might be susceptible to ZeroFunctionSelector (very low-severity), DelegateCallReturnValue (low-severity), ECRecoverMalformedInput (medium-severity), SkipEmptyStringLiteral (low-severity), ConstantOptimizerSubtraction (low-severity) Solidity compiler bugs.

Contract Source Code Verified (Exact match)
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.