Latest 25 transactions from a total of 30515 transactions

TxHash Age From To Value [TxFee]
0x59c92fb111a8927c03ab067111308a49eeae5d677ca89c160b86bac3665f77b53 hrs 19 mins ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.000469632
0xc737f6d9deb8318b2a6377c431a8c55080a8da730f3d113e2625577fec66ec8a3 hrs 21 mins ago0x694595ff7eca7e0b30fc3e71d690e0ca3aa66b04  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.04 Ether0.00056577
0x765fffd8dc9b0f67494a93cd82d7e30afd25267861d7cd1d09f2ffc9551bf8241 day 3 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.0003402
0x65019b5f9c9da8655ec5d4d7e4c5049c3d5f11fb1a08238b72bf95445c5343221 day 3 hrs ago0x694595ff7eca7e0b30fc3e71d690e0ca3aa66b04  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.1 Ether0.000487956
0x38bc0f1b3248c4493b330340c13bbb3a31ce0341963f04c428ba2118df26d1601 day 3 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.000382718
0x71f857e33b5f0c2fbaf51d4456af764646eafcfa13c4bfef13bac1f34b4efde91 day 3 hrs ago0x694595ff7eca7e0b30fc3e71d690e0ca3aa66b04  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.1 Ether0.00082977
0xb36b2399c984442f35bea82142cb02b570320cdb4b23ef954e2bef3e0d9a6b5b1 day 3 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.000474047
0x87a2c4b1b1876180a42c086b238329bed2403c3e7eedcc090af6f8a1a612993e1 day 3 hrs ago0x694595ff7eca7e0b30fc3e71d690e0ca3aa66b04  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.1 Ether0.000512922
0xba106da09137d9d70490110aa9143f92524064d0b617efefcd6a1cc40bb85f1d1 day 3 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.000474047
0x4a7162948838f9c162b97b319c76068858aacdc0006e93d39e10a37585509fcf1 day 3 hrs ago0x694595ff7eca7e0b30fc3e71d690e0ca3aa66b04  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.1 Ether0.000512922
0x67474192e19b72265941cc6af79c7c2d359fdc4eb4a73260f24bcf3b0dd37f2d1 day 3 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.000406399
0x10e9743400a8abf3630b4a67e131cdf23326411aaaf0a30572518dc33ad4aa281 day 3 hrs ago0x694595ff7eca7e0b30fc3e71d690e0ca3aa66b04  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.06 Ether0.000500238
0x3710b160ad58877a012e04ca385ad29dec8d080f5c45ebb4b8fea45c1d0b9d9c1 day 4 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.00050626645
0x277a8681fdf68b744926d88701c991e7ff47df2367115e08fa3b9c2dbb25ec061 day 4 hrs ago0x694595ff7eca7e0b30fc3e71d690e0ca3aa66b04  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.11 Ether0.00182522
0x43c1c8821e73419d1ce93726a6383ae49de1e1f5e1443833c03605fb73407fcb1 day 4 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.000563154
0x680c379730573eb0b762f106121c1eab7b1ee1db12f14c455649e96341050d881 day 4 hrs ago0x694595ff7eca7e0b30fc3e71d690e0ca3aa66b04  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.09 Ether0.0004304205
0x5c1f550cfdf41727b9ce5a231a8e76a182e0b1a51b06322adcc4ed98d3633ab31 day 4 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.00051768
0x6eb6556020c251ff78b3ecf662dc9eaa3dabf6bf79609a9df7727d745f65b97f1 day 4 hrs ago0x694595ff7eca7e0b30fc3e71d690e0ca3aa66b04  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.09 Ether0.000382596
0x6aa1a39fd394361d06136ef152f4a121afbaadf5828ca571efe330b7706fcc2910 days 7 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.00022982
0x57b47a0b86f9489c92a398e226c95512427045f376f51c56e49e787f0791d34910 days 7 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.00030577
0xf045b85feef92d95612ed13a00737e76409fb658a95dcfc5fede96aa6900db1610 days 7 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.00030577
0x14cd729de3bffbd46d92c44e0016c3fbfeb4a41624805c54e5bec9130157f66210 days 7 hrs ago0xdae0aca4b9b38199408ffab32562bf7b3b0495fe  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.000131394
0x0a8b53fdd0f1cb38fd3f1a178a573865c4e5361f0f577810d2708cb76659730e10 days 7 hrs ago0xdae0aca4b9b38199408ffab32562bf7b3b0495fe  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.01 Ether0.000892656
0xee123d5037d966e3476f90cfada195bf29836216f4d512b6719e5fafe4f10ab417 days 19 hrs ago0xa92d36dc1ca4f505f1886503a0626c4aa8106497  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30 Ether0.00034281
0xa680a2824ce1952aeacba26bc3ce65499675c2eb2572a22509de5baf0e962ac517 days 19 hrs ago0xf483b317b4ecdf12fa28939e2292fdef29b9e3f8  IN   0xdfc328c19c8de45ac0117f836646378c10e0cda30.2 Ether0.002999016
[ 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
0x43c1c8821e73419d1ce93726a6383ae49de1e1f5e1443833c03605fb73407fcb70884801 day 4 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x694595ff7eca7e0b30fc3e71d690e0ca3aa66b041.44 Ether
0x01a42311d13dd6b172c452b0112257d2ffeadda9f6dc1a967dff5d3acd984274699545317 days 19 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xf483b317b4ecdf12fa28939e2292fdef29b9e3f80.2 Ether
0x764a6bd9faf48c757940633be1b0fba35980a18c2814f09de3d74b0af1622fac663006478 days 9 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x694595ff7eca7e0b30fc3e71d690e0ca3aa66b040.2 Ether
0x06f41a90a95cbbfbc618364f88eeb10ea5bb51348f721df3af5129aab8c626ce659395284 days 7 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30x694595ff7eca7e0b30fc3e71d690e0ca3aa66b042.16 Ether
0x6a03d2924c4d7ea2344d618cc1c6e75aff4d770219a044b64db232d3dd753ee8652743695 days 4 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xc4cb821465756ad2e05560617340c6f9e0c1fd590.18 Ether
0x38a2b0d9476e9ad9d2d8383edf1343db13a3fef348644ebd3bfcc161d1bb5c3b652741695 days 4 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xc4cb821465756ad2e05560617340c6f9e0c1fd590.45 Ether
0x8eda726a8bb4cb104f0af0dc8f00f666b35932160f100e2a8069472414e602e6652740495 days 4 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xc4cb821465756ad2e05560617340c6f9e0c1fd590.65 Ether
0x6f9240bf7eddeb5d6f6e7138c077e8d1c69164f55a1bbef032045c39d42bc3b1652738795 days 4 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xc4cb821465756ad2e05560617340c6f9e0c1fd590.5 Ether
0xf96d6a412dc1ec12c98e8d1641a733cf017aaced6ea958c58928d60f719a9a29652736995 days 4 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xc4cb821465756ad2e05560617340c6f9e0c1fd590.5 Ether
0xfa71f8c91143a1c8aa1e8d9279e36de1b0248d1344e0746b667384aa9a3b60d4652736595 days 4 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xc4cb821465756ad2e05560617340c6f9e0c1fd590.3 Ether
0x4b4166af66427efd197c23d2a62f69c664f43e108c659799c71d21e98f64f8b3652735695 days 4 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xc4cb821465756ad2e05560617340c6f9e0c1fd590.45 Ether
0xc22b112bf6282b24187f3626aed27d757ceb85e62374fd7d88833c8ea54264ce652733595 days 4 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xc4cb821465756ad2e05560617340c6f9e0c1fd590.6 Ether
0xd1a1951b816678d9a01c3845410d25e2146f6abeeb5b5f6de3dcb4af38862fd2652731695 days 4 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xc4cb821465756ad2e05560617340c6f9e0c1fd590.45 Ether
0xd243fc66b07da3ccbb06b8edf8ee616414658dd0629fab6ec3a098beec784d20652717595 days 5 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xc4cb821465756ad2e05560617340c6f9e0c1fd590.45 Ether
0x448009093d308569ff7dbdaefd32fe3873c7347506f24fee7a6c7ef21fc07a51652717195 days 5 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xc4cb821465756ad2e05560617340c6f9e0c1fd590.45 Ether
0x389626ee08e69a0314234e8798cf5bf7616fea778c18a8e512d8d5448fd7b496652716595 days 5 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xc4cb821465756ad2e05560617340c6f9e0c1fd590.45 Ether
0x6c0100a326aa380fb8466781dfae87896e7398e4ae75a8df6790f9a80de40b84652715995 days 5 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xc4cb821465756ad2e05560617340c6f9e0c1fd590.45 Ether
0x6884ab9d216652c87f88ec273e1c65ad27ed118a3f1dabd2ee08aa47fd33fe49652712395 days 5 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xc4cb821465756ad2e05560617340c6f9e0c1fd590.45 Ether
0x57517e016895ad093088926940f3ea76bffe229f6a4b78045a9035a6dfab9fef652711495 days 5 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xc4cb821465756ad2e05560617340c6f9e0c1fd590.45 Ether
0x1110acc8d710173ecee6cc58aad641a066e28e72622ddd0cf9a2eddbf525362d652710895 days 5 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xc4cb821465756ad2e05560617340c6f9e0c1fd590.45 Ether
0x0eba4602c906452f10331545e3ed1c295d79d393ece1bfaf9a44dc1c3726b88f652710295 days 5 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xc4cb821465756ad2e05560617340c6f9e0c1fd590.3 Ether
0xae74a849e7d035db37482fe3a2ba965ae98b86b968a57acf17d3386ab2eec7b3652709795 days 5 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xc4cb821465756ad2e05560617340c6f9e0c1fd590.3 Ether
0xe3461ae275042dd875853b203d066a0256304b0c98416b6338e3a2b8e974c2a6652709195 days 5 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xc4cb821465756ad2e05560617340c6f9e0c1fd590.3 Ether
0x44beb690167b899ac98556793ba6cc4be45ec1cf280e96133b9986013358f016652708295 days 5 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xc4cb821465756ad2e05560617340c6f9e0c1fd590.3 Ether
0x8e44217037342df2852d633989edf584f130719a8fd0940ed8014a714008782c652707495 days 5 hrs ago0xdfc328c19c8de45ac0117f836646378c10e0cda30xc4cb821465756ad2e05560617340c6f9e0c1fd590.3 Ether
[ Download CSV Export  ] 
Contract Name: SmartRoulette
Compiler Text: 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 transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.