Sponsored:   Ubex.com - World roadshow: Seoul Sep 17-19, Singapore Sep 19-20, Dubai 18-23. Meet us!.
 Latest 25 txns From a total of 34040 Transactions

TxHash Age From To Value [TxFee]
0x515d007e86d82f74d175e24e59f8280a847a00213c0fca3e528c4e869285abd41 day 19 hrs ago0x00004242f4449d49ec9c64ad6f9385a56b2a6297  IN   0xdd98b423dc61a756e1070de151b14854255059540 Ether0.0021286
0x8ea1a20d9b2c5cc2445f6635b06c5cfb65e179191484b84a0ec81b347f21fc171 day 19 hrs ago0x1c868ba011c5539844ad19d9818745381fb6a01f  IN   0xdd98b423dc61a756e1070de151b14854255059540.31 Ether0.00222477
0xd21f59247e0a89e6f6abb0c389e70bd8ef14811ad7dc075bf781c568c80268f91 day 19 hrs ago0x000042425e06b0b1e8e20a811c91d6864608324b  IN   0xdd98b423dc61a756e1070de151b14854255059540 Ether0.00207844
0x38b343aeb7774903fc1953da507fd60d9ceeb0c7494362c00547fcc3f87461351 day 20 hrs ago0x1c868ba011c5539844ad19d9818745381fb6a01f  IN   0xdd98b423dc61a756e1070de151b14854255059540.23 Ether0.00222477
0x7644de565df0b7ad058c563facbdbee74fd6fdc961cc0848e2a24f755e80e30c1 day 20 hrs ago0x1c868ba011c5539844ad19d9818745381fb6a01f  IN   0xdd98b423dc61a756e1070de151b14854255059540.25 Ether0.0035
0x8d598acbc42aa22f138b35864370a44819feb9a449ff13b754855ca9003f9d0b1 day 20 hrs ago0x1c868ba011c5539844ad19d9818745381fb6a01f  IN   0xdd98b423dc61a756e1070de151b14854255059540.23 Ether0.000315
0x12889d54289dd838db8b3ea5681c7beaf8c9487b8b21d58d7de2eee22969ebc21 day 20 hrs ago0x1c868ba011c5539844ad19d9818745381fb6a01f  IN   0xdd98b423dc61a756e1070de151b14854255059540.23 Ether0.00021
0xb1920dfbacfe53204b22abc3c90c3122181f1e63d4dc97cf7b68f573787d288910 days 23 hrs ago0xff190c5f451b218456db6272952236b6c29f7033  IN   0xdd98b423dc61a756e1070de151b14854255059540.6 Ether0.000593272
0xb7e30e04ab6b65c496700e91cab28c60da684ff4eb10219fad49f369acd3bc6910 days 23 hrs ago0x00004242f4449d49ec9c64ad6f9385a56b2a6297  IN   0xdd98b423dc61a756e1070de151b14854255059540 Ether0.003546
0x318987b7e7cb19658653f7112e336a10be5f4b0f0f29a83906e0816f4eb5271610 days 23 hrs ago0x00004242ca3469e30ae4a62775fee6584ed3fdca  IN   0xdd98b423dc61a756e1070de151b14854255059540 Ether0.0021286
0x9050e974c4cc1a0005f4937f72bde2d1464596bdd2bc23c98599d4b33a7085af10 days 23 hrs ago0xff190c5f451b218456db6272952236b6c29f7033  IN   0xdd98b423dc61a756e1070de151b14854255059540.3 Ether0.001334862
0xc04950438a89822114198385741159e1c7e856773d16c4c450a7d1db4b70a43213 days 3 hrs ago0x00004242ca3469e30ae4a62775fee6584ed3fdca  IN   0xdd98b423dc61a756e1070de151b14854255059540 Ether0.00212732
0xb45704975fa01beea3290b8782cb49768aa568073e97ce673b6c35874486df9a13 days 3 hrs ago0xff190c5f451b218456db6272952236b6c29f7033  IN   0xdd98b423dc61a756e1070de151b14854255059540.221 Ether0.00148318
0x2f6b3e593b949359c7ca58c0cecf2ac2ee21f954e7ac3f7e105db420c7627a8c14 days 13 hrs ago0x00004242f4449d49ec9c64ad6f9385a56b2a6297  IN   0xdd98b423dc61a756e1070de151b14854255059540 Ether0.00192746
0xa0b07f6982c116854a5781ca4f470e93f80861ba11e39857ccb3fe88cdd9f05814 days 13 hrs ago0xaf3ef2434f5081c6e86f53f9b38d0188581da23d  IN   0xdd98b423dc61a756e1070de151b14854255059540.6 Ether0.00074159
0xbc675f537ada4f8ad7c4fd3ebae392cdef98a52dfba075c5d62ebe32505719d016 days 10 hrs ago0x97e01ba7cedf5b8d87cbdcc2da5a9dc35e0f3286  IN   0xdd98b423dc61a756e1070de151b14854255059540.004438532061284 Ether0.000147
0xd6ee8872734288383c619ffb8f63c4e4d29bd5dec05b10dcccee7f72dea4c7ae20 days 3 hrs ago0x00004242ca3469e30ae4a62775fee6584ed3fdca  IN   0xdd98b423dc61a756e1070de151b14854255059540 Ether0.00192746
0xeff1a88ee0af5215d78717d69ad859e38f091d2401db85a326b9d3769344f31a20 days 3 hrs ago0x3f8860b846635417a5bd35b5e01d105d677cc119  IN   0xdd98b423dc61a756e1070de151b14854255059540.221 Ether0.000593272
0x9118d27c30699d55cf32ae3d64f3c70db18ca072a8678b59c907d456c9b963cc22 days 11 hrs ago0x00004242ca3469e30ae4a62775fee6584ed3fdca  IN   0xdd98b423dc61a756e1070de151b14854255059540 Ether0.00188122
0x4cf647f19e840cf3bf343b1b684a584edb659b0ff2b464fe29f62ca359cd02ba22 days 11 hrs ago0x3f8860b846635417a5bd35b5e01d105d677cc119  IN   0xdd98b423dc61a756e1070de151b14854255059540.221 Ether0.001631498
0xf91b7e14be63219505c10f189fd230d650e0470d03daccd24a9888c05babf63822 days 16 hrs ago0x00004242f4449d49ec9c64ad6f9385a56b2a6297  IN   0xdd98b423dc61a756e1070de151b14854255059540 Ether0.00192746
0x3ee89536d302eda77d009e295db2c02e94625698bb1af3b26c810e086039418122 days 16 hrs ago0x3f8860b846635417a5bd35b5e01d105d677cc119  IN   0xdd98b423dc61a756e1070de151b14854255059540.221 Ether0.001631498
0x1a329304c21c0e3558abbfaca4a4f12a445029b7f1948bc0b09b800bd7bfaf8322 days 16 hrs ago0x00004242f4449d49ec9c64ad6f9385a56b2a6297  IN   0xdd98b423dc61a756e1070de151b14854255059540 Ether0.00192746
0x1497c3e1c1545e0aa34f41c6925aade96a3d4469c964e9dac02895bd953f639d22 days 16 hrs ago0x3f8860b846635417a5bd35b5e01d105d677cc119  IN   0xdd98b423dc61a756e1070de151b14854255059540.441 Ether0.001631498
0x89c1d8289bd09d691992a0ddbc2067dc962a104594a6ee543ac0d676c9146b8b22 days 16 hrs ago0x00004242f4449d49ec9c64ad6f9385a56b2a6297  IN   0xdd98b423dc61a756e1070de151b14854255059540 Ether0.0021286
[ 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
0x515d007e86d82f74d175e24e59f8280a847a00213c0fca3e528c4e869285abd463687961 day 19 hrs ago0xdd98b423dc61a756e1070de151b14854255059540x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.002756033642068777 Ether
0x515d007e86d82f74d175e24e59f8280a847a00213c0fca3e528c4e869285abd463687961 day 19 hrs ago0xdd98b423dc61a756e1070de151b14854255059540x1c868ba011c5539844ad19d9818745381fb6a01f1 wei
0x8ea1a20d9b2c5cc2445f6635b06c5cfb65e179191484b84a0ec81b347f21fc1763687931 day 19 hrs ago0xdd98b423dc61a756e1070de151b14854255059540x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.0037740397701359 Ether
0xd21f59247e0a89e6f6abb0c389e70bd8ef14811ad7dc075bf781c568c80268f963687381 day 19 hrs ago0xdd98b423dc61a756e1070de151b14854255059540x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.002036033642068777 Ether
0xd21f59247e0a89e6f6abb0c389e70bd8ef14811ad7dc075bf781c568c80268f963687381 day 19 hrs ago0xdd98b423dc61a756e1070de151b14854255059540x1c868ba011c5539844ad19d9818745381fb6a01f1 wei
0x38b343aeb7774903fc1953da507fd60d9ceeb0c7494362c00547fcc3f874613563687221 day 20 hrs ago0xdd98b423dc61a756e1070de151b14854255059540x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.0037740397701359 Ether
0xb1920dfbacfe53204b22abc3c90c3122181f1e63d4dc97cf7b68f573787d2889631343810 days 23 hrs ago0xdd98b423dc61a756e1070de151b14854255059540x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.0038068514190317 Ether
0x318987b7e7cb19658653f7112e336a10be5f4b0f0f29a83906e0816f4eb52716631323110 days 23 hrs ago0xdd98b423dc61a756e1070de151b14854255059540x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.002665738337228715 Ether
0x318987b7e7cb19658653f7112e336a10be5f4b0f0f29a83906e0816f4eb52716631323110 days 23 hrs ago0xdd98b423dc61a756e1070de151b14854255059540xff190c5f451b218456db6272952236b6c29f70331 wei
0x9050e974c4cc1a0005f4937f72bde2d1464596bdd2bc23c98599d4b33a7085af631322810 days 23 hrs ago0xdd98b423dc61a756e1070de151b14854255059540x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.0038068514190317 Ether
0xc04950438a89822114198385741159e1c7e856773d16c4c450a7d1db4b70a432630045413 days 3 hrs ago0xdd98b423dc61a756e1070de151b14854255059540x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.001954738337228715 Ether
0xc04950438a89822114198385741159e1c7e856773d16c4c450a7d1db4b70a432630045413 days 3 hrs ago0xdd98b423dc61a756e1070de151b14854255059540xff190c5f451b218456db6272952236b6c29f70331 wei
0xb45704975fa01beea3290b8782cb49768aa568073e97ce673b6c35874486df9a630045013 days 3 hrs ago0xdd98b423dc61a756e1070de151b14854255059540x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.0038068514190317 Ether
0x2f6b3e593b949359c7ca58c0cecf2ac2ee21f954e7ac3f7e105db420c7627a8c629198314 days 13 hrs ago0xdd98b423dc61a756e1070de151b14854255059540xaf3ef2434f5081c6e86f53f9b38d0188581da23d1.169798192781800858 Ether
0xa0b07f6982c116854a5781ca4f470e93f80861ba11e39857ccb3fe88cdd9f058629197814 days 13 hrs ago0xdd98b423dc61a756e1070de151b14854255059540x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.00377258268001995 Ether
0xd6ee8872734288383c619ffb8f63c4e4d29bd5dec05b10dcccee7f72dea4c7ae625861920 days 3 hrs ago0xdd98b423dc61a756e1070de151b14854255059540x3f8860b846635417a5bd35b5e01d105d677cc1190.426315321222740897 Ether
0xeff1a88ee0af5215d78717d69ad859e38f091d2401db85a326b9d3769344f31a625861520 days 3 hrs ago0xdd98b423dc61a756e1070de151b14854255059540x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.0037139035561973 Ether
0x9118d27c30699d55cf32ae3d64f3c70db18ca072a8678b59c907d456c9b963cc624493922 days 11 hrs ago0xdd98b423dc61a756e1070de151b14854255059540x3f8860b846635417a5bd35b5e01d105d677cc1190.42629511509672823 Ether
0x4cf647f19e840cf3bf343b1b684a584edb659b0ff2b464fe29f62ca359cd02ba624493722 days 11 hrs ago0xdd98b423dc61a756e1070de151b14854255059540x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.00372420229524555 Ether
0xf91b7e14be63219505c10f189fd230d650e0470d03daccd24a9888c05babf638624358422 days 16 hrs ago0xdd98b423dc61a756e1070de151b14854255059540x3f8860b846635417a5bd35b5e01d105d677cc1190.42629511509672823 Ether
0x3ee89536d302eda77d009e295db2c02e94625698bb1af3b26c810e0860394181624358222 days 16 hrs ago0xdd98b423dc61a756e1070de151b14854255059540x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.00372420229524555 Ether
0x1a329304c21c0e3558abbfaca4a4f12a445029b7f1948bc0b09b800bd7bfaf83624357722 days 16 hrs ago0xdd98b423dc61a756e1070de151b14854255059540x3f8860b846635417a5bd35b5e01d105d677cc1190.85793511509672823 Ether
0x1497c3e1c1545e0aa34f41c6925aade96a3d4469c964e9dac02895bd953f639d624357422 days 16 hrs ago0xdd98b423dc61a756e1070de151b14854255059540x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.00372420229524555 Ether
0x89c1d8289bd09d691992a0ddbc2067dc962a104594a6ee543ac0d676c9146b8b624356722 days 16 hrs ago0xdd98b423dc61a756e1070de151b14854255059540x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.001955482179342791 Ether
0x89c1d8289bd09d691992a0ddbc2067dc962a104594a6ee543ac0d676c9146b8b624356722 days 16 hrs ago0xdd98b423dc61a756e1070de151b14854255059540x3f8860b846635417a5bd35b5e01d105d677cc1191 wei
[ Download CSV Export  ] 
Contract Name: Dice
Compiler Text: v0.4.6+commit.2dabbdf0
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.0;

// <ORACLIZE_API>
/*
Copyright (c) 2015-2016 Oraclize SRL
Copyright (c) 2016 Oraclize LTD



Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:



The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.



THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/

pragma solidity ^0.4.0;//please import oraclizeAPI_pre0.4.sol when solidity < 0.4.0

contract OraclizeI {
    address public cbAddress;
    function query(uint _timestamp, string _datasource, string _arg) payable returns (bytes32 _id);
    function query_withGasLimit(uint _timestamp, string _datasource, string _arg, uint _gaslimit) payable returns (bytes32 _id);
    function query2(uint _timestamp, string _datasource, string _arg1, string _arg2) payable returns (bytes32 _id);
    function query2_withGasLimit(uint _timestamp, string _datasource, string _arg1, string _arg2, uint _gaslimit) payable returns (bytes32 _id);
    function getPrice(string _datasource) returns (uint _dsprice);
    function getPrice(string _datasource, uint gaslimit) returns (uint _dsprice);
    function useCoupon(string _coupon);
    function setProofType(byte _proofType);
    function setConfig(bytes32 _config);
    function setCustomGasPrice(uint _gasPrice);
}
contract OraclizeAddrResolverI {
    function getAddress() returns (address _addr);
}
contract usingOraclize {
    uint constant day = 60*60*24;
    uint constant week = 60*60*24*7;
    uint constant month = 60*60*24*30;
    byte constant proofType_NONE = 0x00;
    byte constant proofType_TLSNotary = 0x10;
    byte constant proofStorage_IPFS = 0x01;
    uint8 constant networkID_auto = 0;
    uint8 constant networkID_mainnet = 1;
    uint8 constant networkID_testnet = 2;
    uint8 constant networkID_morden = 2;
    uint8 constant networkID_consensys = 161;

    OraclizeAddrResolverI OAR;
    
    OraclizeI oraclize;
    modifier oraclizeAPI {
        if(address(OAR)==0) oraclize_setNetwork(networkID_auto);
        oraclize = OraclizeI(OAR.getAddress());
        _;
    }
    modifier coupon(string code){
        oraclize = OraclizeI(OAR.getAddress());
        oraclize.useCoupon(code);
        _;
    }

    function oraclize_setNetwork(uint8 networkID) internal returns(bool){
        if (getCodeSize(0x1d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed)>0){ //mainnet
            OAR = OraclizeAddrResolverI(0x1d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed);
            return true;
        }
        if (getCodeSize(0xc03a2615d5efaf5f49f60b7bb6583eaec212fdf1)>0){ //ropsten testnet
            OAR = OraclizeAddrResolverI(0xc03a2615d5efaf5f49f60b7bb6583eaec212fdf1);
            return true;
        }
        if (getCodeSize(0x51efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa)>0){ //browser-solidity
            OAR = OraclizeAddrResolverI(0x51efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa);
            return true;
        }
        return false;
    }
    
    function __callback(bytes32 myid, string result) {
        __callback(myid, result, new bytes(0));
    }
    function __callback(bytes32 myid, string result, bytes proof) {
    }
    
    function oraclize_getPrice(string datasource) oraclizeAPI internal returns (uint){
        return oraclize.getPrice(datasource);
    }
    function oraclize_getPrice(string datasource, uint gaslimit) oraclizeAPI internal returns (uint){
        return oraclize.getPrice(datasource, gaslimit);
    }
    
    function oraclize_query(string datasource, string arg) oraclizeAPI internal returns (bytes32 id){
        uint price = oraclize.getPrice(datasource);
        if (price > 1 ether + tx.gasprice*200000) return 0; // unexpectedly high price
        return oraclize.query.value(price)(0, datasource, arg);
    }
    function oraclize_query(uint timestamp, string datasource, string arg) oraclizeAPI internal returns (bytes32 id){
        uint price = oraclize.getPrice(datasource);
        if (price > 1 ether + tx.gasprice*200000) return 0; // unexpectedly high price
        return oraclize.query.value(price)(timestamp, datasource, arg);
    }
    function oraclize_query(uint timestamp, string datasource, string arg, uint gaslimit) oraclizeAPI internal returns (bytes32 id){
        uint price = oraclize.getPrice(datasource, gaslimit);
        if (price > 1 ether + tx.gasprice*gaslimit) return 0; // unexpectedly high price
        return oraclize.query_withGasLimit.value(price)(timestamp, datasource, arg, gaslimit);
    }
    function oraclize_query(string datasource, string arg, uint gaslimit) oraclizeAPI internal returns (bytes32 id){
        uint price = oraclize.getPrice(datasource, gaslimit);
        if (price > 1 ether + tx.gasprice*gaslimit) return 0; // unexpectedly high price
        return oraclize.query_withGasLimit.value(price)(0, datasource, arg, gaslimit);
    }
    function oraclize_query(string datasource, string arg1, string arg2) oraclizeAPI internal returns (bytes32 id){
        uint price = oraclize.getPrice(datasource);
        if (price > 1 ether + tx.gasprice*200000) return 0; // unexpectedly high price
        return oraclize.query2.value(price)(0, datasource, arg1, arg2);
    }
    function oraclize_query(uint timestamp, string datasource, string arg1, string arg2) oraclizeAPI internal returns (bytes32 id){
        uint price = oraclize.getPrice(datasource);
        if (price > 1 ether + tx.gasprice*200000) return 0; // unexpectedly high price
        return oraclize.query2.value(price)(timestamp, datasource, arg1, arg2);
    }
    function oraclize_query(uint timestamp, string datasource, string arg1, string arg2, uint gaslimit) oraclizeAPI internal returns (bytes32 id){
        uint price = oraclize.getPrice(datasource, gaslimit);
        if (price > 1 ether + tx.gasprice*gaslimit) return 0; // unexpectedly high price
        return oraclize.query2_withGasLimit.value(price)(timestamp, datasource, arg1, arg2, gaslimit);
    }
    function oraclize_query(string datasource, string arg1, string arg2, uint gaslimit) oraclizeAPI internal returns (bytes32 id){
        uint price = oraclize.getPrice(datasource, gaslimit);
        if (price > 1 ether + tx.gasprice*gaslimit) return 0; // unexpectedly high price
        return oraclize.query2_withGasLimit.value(price)(0, datasource, arg1, arg2, gaslimit);
    }
    function oraclize_cbAddress() oraclizeAPI internal returns (address){
        return oraclize.cbAddress();
    }
    function oraclize_setProof(byte proofP) oraclizeAPI internal {
        return oraclize.setProofType(proofP);
    }
    function oraclize_setCustomGasPrice(uint gasPrice) oraclizeAPI internal {
        return oraclize.setCustomGasPrice(gasPrice);
    }    
    function oraclize_setConfig(bytes32 config) oraclizeAPI internal {
        return oraclize.setConfig(config);
    }

    function getCodeSize(address _addr) constant internal returns(uint _size) {
        assembly {
            _size := extcodesize(_addr)
        }
    }


    function parseAddr(string _a) internal returns (address){
        bytes memory tmp = bytes(_a);
        uint160 iaddr = 0;
        uint160 b1;
        uint160 b2;
        for (uint i=2; i<2+2*20; i+=2){
            iaddr *= 256;
            b1 = uint160(tmp[i]);
            b2 = uint160(tmp[i+1]);
            if ((b1 >= 97)&&(b1 <= 102)) b1 -= 87;
            else if ((b1 >= 48)&&(b1 <= 57)) b1 -= 48;
            if ((b2 >= 97)&&(b2 <= 102)) b2 -= 87;
            else if ((b2 >= 48)&&(b2 <= 57)) b2 -= 48;
            iaddr += (b1*16+b2);
        }
        return address(iaddr);
    }


    function strCompare(string _a, string _b) internal returns (int) {
        bytes memory a = bytes(_a);
        bytes memory b = bytes(_b);
        uint minLength = a.length;
        if (b.length < minLength) minLength = b.length;
        for (uint i = 0; i < minLength; i ++)
            if (a[i] < b[i])
                return -1;
            else if (a[i] > b[i])
                return 1;
        if (a.length < b.length)
            return -1;
        else if (a.length > b.length)
            return 1;
        else
            return 0;
   } 

    function indexOf(string _haystack, string _needle) internal returns (int)
    {
        bytes memory h = bytes(_haystack);
        bytes memory n = bytes(_needle);
        if(h.length < 1 || n.length < 1 || (n.length > h.length)) 
            return -1;
        else if(h.length > (2**128 -1))
            return -1;                                  
        else
        {
            uint subindex = 0;
            for (uint i = 0; i < h.length; i ++)
            {
                if (h[i] == n[0])
                {
                    subindex = 1;
                    while(subindex < n.length && (i + subindex) < h.length && h[i + subindex] == n[subindex])
                    {
                        subindex++;
                    }   
                    if(subindex == n.length)
                        return int(i);
                }
            }
            return -1;
        }   
    }

    function strConcat(string _a, string _b, string _c, string _d, string _e) internal returns (string){
        bytes memory _ba = bytes(_a);
        bytes memory _bb = bytes(_b);
        bytes memory _bc = bytes(_c);
        bytes memory _bd = bytes(_d);
        bytes memory _be = bytes(_e);
        string memory abcde = new string(_ba.length + _bb.length + _bc.length + _bd.length + _be.length);
        bytes memory babcde = bytes(abcde);
        uint k = 0;
        for (uint i = 0; i < _ba.length; i++) babcde[k++] = _ba[i];
        for (i = 0; i < _bb.length; i++) babcde[k++] = _bb[i];
        for (i = 0; i < _bc.length; i++) babcde[k++] = _bc[i];
        for (i = 0; i < _bd.length; i++) babcde[k++] = _bd[i];
        for (i = 0; i < _be.length; i++) babcde[k++] = _be[i];
        return string(babcde);
    }
    
    function strConcat(string _a, string _b, string _c, string _d) internal returns (string) {
        return strConcat(_a, _b, _c, _d, "");
    }

    function strConcat(string _a, string _b, string _c) internal returns (string) {
        return strConcat(_a, _b, _c, "", "");
    }

    function strConcat(string _a, string _b) internal returns (string) {
        return strConcat(_a, _b, "", "", "");
    }

    // parseInt
    function parseInt(string _a) internal returns (uint) {
        return parseInt(_a, 0);
    }

    // parseInt(parseFloat*10^_b)
    function parseInt(string _a, uint _b) internal returns (uint) {
        bytes memory bresult = bytes(_a);
        uint mint = 0;
        bool decimals = false;
        for (uint i=0; i<bresult.length; i++){
            if ((bresult[i] >= 48)&&(bresult[i] <= 57)){
                if (decimals){
                   if (_b == 0) break;
                    else _b--;
                }
                mint *= 10;
                mint += uint(bresult[i]) - 48;
            } else if (bresult[i] == 46) decimals = true;
        }
        if (_b > 0) mint *= 10**_b;
        return mint;
    }
    
    function uint2str(uint i) internal returns (string){
        if (i == 0) return "0";
        uint j = i;
        uint len;
        while (j != 0){
            len++;
            j /= 10;
        }
        bytes memory bstr = new bytes(len);
        uint k = len - 1;
        while (i != 0){
            bstr[k--] = byte(48 + i % 10);
            i /= 10;
        }
        return string(bstr);
    }
    
    

}
// </ORACLIZE_API>

contract Dice is usingOraclize {

    uint constant pwin = 5000; //probability of winning (10000 = 100%)
    uint constant edge = 190; //edge percentage (10000 = 100%)
    uint constant maxWin = 100; //max win (before edge is taken) as percentage of bankroll (10000 = 100%)
    uint constant minBet = 200 finney;
    uint constant maxInvestors = 10; //maximum number of investors
    uint constant houseEdge = 90; //edge percentage (10000 = 100%)
    uint constant divestFee = 50; //divest fee percentage (10000 = 100%)
    uint constant emergencyWithdrawalRatio = 10; //ratio percentage (100 = 100%)

    uint safeGas = 2300;
    uint constant ORACLIZE_GAS_LIMIT = 175000;
    uint constant INVALID_BET_MARKER = 99999;
    uint constant EMERGENCY_TIMEOUT = 3 days;

    struct Investor {
        address investorAddress;
        uint amountInvested;
        bool votedForEmergencyWithdrawal;
    }

    struct Bet {
        address playerAddress;
        uint amountBet;
        uint numberRolled;
    }

    struct WithdrawalProposal {
        address toAddress;
        uint atTime;
    }

    //Starting at 1
    mapping(address => uint) public investorIDs;
    mapping(uint => Investor) public investors;
    uint public numInvestors = 0;

    uint public invested = 0;

    address public owner;
    address public houseAddress;
    bool public isStopped;

    WithdrawalProposal public proposedWithdrawal;

    mapping (bytes32 => Bet) public bets;
    bytes32[] public betsKeys;

    uint public investorsProfit = 0;
    uint public investorsLosses = 0;
    bool profitDistributed;

    event LOG_NewBet(address playerAddress, uint amount);
    event LOG_BetWon(address playerAddress, uint numberRolled, uint amountWon);
    event LOG_BetLost(address playerAddress, uint numberRolled);
    event LOG_EmergencyWithdrawalProposed();
    event LOG_EmergencyWithdrawalFailed(address withdrawalAddress);
    event LOG_EmergencyWithdrawalSucceeded(address withdrawalAddress, uint amountWithdrawn);
    event LOG_FailedSend(address receiver, uint amount);
    event LOG_ZeroSend();
    event LOG_InvestorEntrance(address investor, uint amount);
    event LOG_InvestorCapitalUpdate(address investor, int amount);
    event LOG_InvestorExit(address investor, uint amount);
    event LOG_ContractStopped();
    event LOG_ContractResumed();
    event LOG_OwnerAddressChanged(address oldAddr, address newOwnerAddress);
    event LOG_HouseAddressChanged(address oldAddr, address newHouseAddress);
    event LOG_GasLimitChanged(uint oldGasLimit, uint newGasLimit);
    event LOG_EmergencyAutoStop();
    event LOG_EmergencyWithdrawalVote(address investor, bool vote);
    event LOG_ValueIsTooBig();
    event LOG_SuccessfulSend(address addr, uint amount);

    function Dice() {
        oraclize_setProof(proofType_TLSNotary | proofStorage_IPFS);
        owner = msg.sender;
        houseAddress = msg.sender;
    }

    //SECTION I: MODIFIERS AND HELPER FUNCTIONS

    //MODIFIERS

    modifier onlyIfNotStopped {
        if (isStopped) throw;
        _;
    }

    modifier onlyIfStopped {
        if (!isStopped) throw;
        _;
    }

    modifier onlyInvestors {
        if (investorIDs[msg.sender] == 0) throw;
        _;
    }

    modifier onlyNotInvestors {
        if (investorIDs[msg.sender] != 0) throw;
        _;
    }

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

    modifier onlyOraclize {
        if (msg.sender != oraclize_cbAddress()) throw;
        _;
    }

    modifier onlyMoreThanMinInvestment {
        if (msg.value <= getMinInvestment()) throw;
        _;
    }

    modifier onlyMoreThanZero {
        if (msg.value == 0) throw;
        _;
    }

    modifier onlyIfBetExist(bytes32 myid) {
        if(bets[myid].playerAddress == address(0x0)) throw;
        _;
    }

    modifier onlyIfBetSizeIsStillCorrect(bytes32 myid) {
        if ((((bets[myid].amountBet * ((10000 - edge) - pwin)) / pwin ) <= (maxWin * getBankroll()) / 10000)  && (bets[myid].amountBet >= minBet)) {
             _;
        }
        else {
            bets[myid].numberRolled = INVALID_BET_MARKER;
            safeSend(bets[myid].playerAddress, bets[myid].amountBet);
            return;
        }
    }

    modifier onlyIfValidRoll(bytes32 myid, string result) {
        uint numberRolled = parseInt(result);
        if ((numberRolled < 1 || numberRolled > 10000) && bets[myid].numberRolled == 0) {
            bets[myid].numberRolled = INVALID_BET_MARKER;
            safeSend(bets[myid].playerAddress, bets[myid].amountBet);
            return;
        }
        _;
    }

    modifier onlyWinningBets(uint numberRolled) {
        if (numberRolled - 1 < pwin) {
            _;
        }
    }

    modifier onlyLosingBets(uint numberRolled) {
        if (numberRolled - 1 >= pwin) {
            _;
        }
    }

    modifier onlyAfterProposed {
        if (proposedWithdrawal.toAddress == 0) throw;
        _;
    }

    modifier onlyIfProfitNotDistributed {
        if (!profitDistributed) {
            _;
        }
    }

    modifier onlyIfValidGas(uint newGasLimit) {
        if (ORACLIZE_GAS_LIMIT + newGasLimit < ORACLIZE_GAS_LIMIT) throw;
        if (newGasLimit < 25000) throw;
        _;
    }

    modifier onlyIfNotProcessed(bytes32 myid) {
        if (bets[myid].numberRolled > 0) throw;
        _;
    }

    modifier onlyIfEmergencyTimeOutHasPassed {
        if (proposedWithdrawal.atTime + EMERGENCY_TIMEOUT > now) throw;
        _;
    }

    modifier investorsInvariant {
        _;
        if (numInvestors > maxInvestors) throw;
    }

    //CONSTANT HELPER FUNCTIONS

    function getBankroll()
        constant
        returns(uint) {

        if ((invested < investorsProfit) ||
            (invested + investorsProfit < invested) ||
            (invested + investorsProfit < investorsLosses)) {
            return 0;
        }
        else {
            return invested + investorsProfit - investorsLosses;
        }
    }

    function getMinInvestment()
        constant
        returns(uint) {

        if (numInvestors == maxInvestors) {
            uint investorID = searchSmallestInvestor();
            return getBalance(investors[investorID].investorAddress);
        }
        else {
            return 0;
        }
    }

    function getStatus()
        constant
        returns(uint, uint, uint, uint, uint, uint, uint, uint) {

        uint bankroll = getBankroll();
        uint minInvestment = getMinInvestment();
        return (bankroll, pwin, edge, maxWin, minBet, (investorsProfit - investorsLosses), minInvestment, betsKeys.length);
    }

    function getBet(uint id)
        constant
        returns(address, uint, uint) {

        if (id < betsKeys.length) {
            bytes32 betKey = betsKeys[id];
            return (bets[betKey].playerAddress, bets[betKey].amountBet, bets[betKey].numberRolled);
        }
    }

    function numBets()
        constant
        returns(uint) {

        return betsKeys.length;
    }

    function getMinBetAmount()
        constant
        returns(uint) {

        uint oraclizeFee = OraclizeI(OAR.getAddress()).getPrice("URL", ORACLIZE_GAS_LIMIT + safeGas);
        return oraclizeFee + minBet;
    }

    function getMaxBetAmount()
        constant
        returns(uint) {

        uint oraclizeFee = OraclizeI(OAR.getAddress()).getPrice("URL", ORACLIZE_GAS_LIMIT + safeGas);
        uint betValue =  (maxWin * getBankroll()) * pwin / (10000 * (10000 - edge - pwin));
        return betValue + oraclizeFee;
    }

    function getLossesShare(address currentInvestor)
        constant
        returns (uint) {

        return investors[investorIDs[currentInvestor]].amountInvested * (investorsLosses) / invested;
    }

    function getProfitShare(address currentInvestor)
        constant
        returns (uint) {

        return investors[investorIDs[currentInvestor]].amountInvested * (investorsProfit) / invested;
    }

    function getBalance(address currentInvestor)
        constant
        returns (uint) {

        uint invested = investors[investorIDs[currentInvestor]].amountInvested;
        uint profit = getProfitShare(currentInvestor);
        uint losses = getLossesShare(currentInvestor);

        if ((invested + profit < profit) ||
            (invested + profit < invested) ||
            (invested + profit < losses))
            return 0;
        else
            return invested + profit - losses;
    }

    function searchSmallestInvestor()
        constant
        returns(uint) {

        uint investorID = 1;
        for (uint i = 1; i <= numInvestors; i++) {
            if (getBalance(investors[i].investorAddress) < getBalance(investors[investorID].investorAddress)) {
                investorID = i;
            }
        }

        return investorID;
    }

    function changeOraclizeProofType(byte _proofType)
        onlyOwner {

        if (_proofType == 0x00) throw;
        oraclize_setProof( _proofType |  proofStorage_IPFS );
    }

    function changeOraclizeConfig(bytes32 _config)
        onlyOwner {

        oraclize_setConfig(_config);
    }

    // PRIVATE HELPERS FUNCTION

    function safeSend(address addr, uint value)
        private {

        if (value == 0) {
            LOG_ZeroSend();
            return;
        }

        if (this.balance < value) {
            LOG_ValueIsTooBig();
            return;
        }

        if (!(addr.call.gas(safeGas).value(value)())) {
            LOG_FailedSend(addr, value);
            if (addr != houseAddress) {
                //Forward to house address all change
                if (!(houseAddress.call.gas(safeGas).value(value)())) LOG_FailedSend(houseAddress, value);
            }
        }

        LOG_SuccessfulSend(addr,value);
    }

    function addInvestorAtID(uint id)
        private {

        investorIDs[msg.sender] = id;
        investors[id].investorAddress = msg.sender;
        investors[id].amountInvested = msg.value;
        invested += msg.value;

        LOG_InvestorEntrance(msg.sender, msg.value);
    }

    function profitDistribution()
        private
        onlyIfProfitNotDistributed {

        uint copyInvested;

        for (uint i = 1; i <= numInvestors; i++) {
            address currentInvestor = investors[i].investorAddress;
            uint profitOfInvestor = getProfitShare(currentInvestor);
            uint lossesOfInvestor = getLossesShare(currentInvestor);
            //Check for overflow and underflow
            if ((investors[i].amountInvested + profitOfInvestor >= investors[i].amountInvested) &&
                (investors[i].amountInvested + profitOfInvestor >= lossesOfInvestor))  {
                investors[i].amountInvested += profitOfInvestor - lossesOfInvestor;
                LOG_InvestorCapitalUpdate(currentInvestor, (int) (profitOfInvestor - lossesOfInvestor));
            }
            else {
                isStopped = true;
                LOG_EmergencyAutoStop();
            }

            if (copyInvested + investors[i].amountInvested >= copyInvested)
                copyInvested += investors[i].amountInvested;
        }

        delete investorsProfit;
        delete investorsLosses;
        invested = copyInvested;

        profitDistributed = true;
    }

    // SECTION II: BET & BET PROCESSING

    function()
        payable {

        bet();
    }

    function bet()
        payable
        onlyIfNotStopped {

        uint oraclizeFee = OraclizeI(OAR.getAddress()).getPrice("URL", ORACLIZE_GAS_LIMIT + safeGas);
        if (oraclizeFee >= msg.value) throw;
        uint betValue = msg.value - oraclizeFee;
        if ((((betValue * ((10000 - edge) - pwin)) / pwin ) <= (maxWin * getBankroll()) / 10000) && (betValue >= minBet)) {
            LOG_NewBet(msg.sender, betValue);
            bytes32 myid =
                oraclize_query(
                    "nested",
                    "[URL] ['json(https://api.random.org/json-rpc/1/invoke).result.random.data.0', '\\n{\"jsonrpc\":\"2.0\",\"method\":\"generateSignedIntegers\",\"params\":{\"apiKey\":${[decrypt] BGFVFgEmxZTIpg1u+Oaakn9M02RNztU4zgU23g78Jw9jUDjV6nFv5lVOPgn8wQ4a3WD1M0GvC1WWvWfJisUkzOlmSnPZOXTJsxsUKz80DfQZlPmHZ6SE5Nw4TKvwFPfRKKVnr3lk4bAwu/iiU3IBqXZdRfd3R9U=},\"n\":1,\"min\":1,\"max\":10000${[identity] \"}\"},\"id\":1${[identity] \"}\"}']",
                    ORACLIZE_GAS_LIMIT + safeGas
                );
            bets[myid] = Bet(msg.sender, betValue, 0);
            betsKeys.push(myid);
        }
        else {
            throw;
        }
    }

    function __callback(bytes32 myid, string result, bytes proof)
        onlyOraclize
        onlyIfBetExist(myid)
        onlyIfNotProcessed(myid)
        onlyIfValidRoll(myid, result)
        onlyIfBetSizeIsStillCorrect(myid)  {

        uint numberRolled = parseInt(result);
        bets[myid].numberRolled = numberRolled;
        isWinningBet(bets[myid], numberRolled);
        isLosingBet(bets[myid], numberRolled);
        delete profitDistributed;
    }

    function isWinningBet(Bet thisBet, uint numberRolled)
        private
        onlyWinningBets(numberRolled) {

        uint winAmount = (thisBet.amountBet * (10000 - edge)) / pwin;
        LOG_BetWon(thisBet.playerAddress, numberRolled, winAmount);
        safeSend(thisBet.playerAddress, winAmount);

        //Check for overflow and underflow
        if ((investorsLosses + winAmount < investorsLosses) ||
            (investorsLosses + winAmount < thisBet.amountBet)) {
                throw;
            }

        investorsLosses += winAmount - thisBet.amountBet;
    }

    function isLosingBet(Bet thisBet, uint numberRolled)
        private
        onlyLosingBets(numberRolled) {

        LOG_BetLost(thisBet.playerAddress, numberRolled);
        safeSend(thisBet.playerAddress, 1);

        //Check for overflow and underflow
        if ((investorsProfit + thisBet.amountBet < investorsProfit) ||
            (investorsProfit + thisBet.amountBet < thisBet.amountBet) ||
            (thisBet.amountBet == 1)) {
                throw;
            }

        uint totalProfit = investorsProfit + (thisBet.amountBet - 1); //added based on audit feedback
        investorsProfit += (thisBet.amountBet - 1)*(10000 - houseEdge)/10000;
        uint houseProfit = totalProfit - investorsProfit; //changed based on audit feedback
        safeSend(houseAddress, houseProfit);
    }

    //SECTION III: INVEST & DIVEST

    function increaseInvestment()
        payable
        onlyIfNotStopped
        onlyMoreThanZero
        onlyInvestors  {

        profitDistribution();
        investors[investorIDs[msg.sender]].amountInvested += msg.value;
        invested += msg.value;
    }

    function newInvestor()
        payable
        onlyIfNotStopped
        onlyMoreThanZero
        onlyNotInvestors
        onlyMoreThanMinInvestment
        investorsInvariant {

        profitDistribution();

        if (numInvestors == maxInvestors) {
            uint smallestInvestorID = searchSmallestInvestor();
            divest(investors[smallestInvestorID].investorAddress);
        }

        numInvestors++;
        addInvestorAtID(numInvestors);
    }

    function divest()
        onlyInvestors {

        divest(msg.sender);
    }


    function divest(address currentInvestor)
        private
        investorsInvariant {

        profitDistribution();
        uint currentID = investorIDs[currentInvestor];
        uint amountToReturn = getBalance(currentInvestor);

        if ((invested >= investors[currentID].amountInvested)) {
            invested -= investors[currentID].amountInvested;
            uint divestFeeAmount =  (amountToReturn*divestFee)/10000;
            amountToReturn -= divestFeeAmount;

            delete investors[currentID];
            delete investorIDs[currentInvestor];

            //Reorder investors
            if (currentID != numInvestors) {
                // Get last investor
                Investor lastInvestor = investors[numInvestors];
                //Set last investor ID to investorID of divesting account
                investorIDs[lastInvestor.investorAddress] = currentID;
                //Copy investor at the new position in the mapping
                investors[currentID] = lastInvestor;
                //Delete old position in the mappping
                delete investors[numInvestors];
            }

            numInvestors--;
            safeSend(currentInvestor, amountToReturn);
            safeSend(houseAddress, divestFeeAmount);
            LOG_InvestorExit(currentInvestor, amountToReturn);
        } else {
            isStopped = true;
            LOG_EmergencyAutoStop();
        }
    }

    function forceDivestOfAllInvestors()
        onlyOwner {

        uint copyNumInvestors = numInvestors;
        for (uint i = 1; i <= copyNumInvestors; i++) {
            divest(investors[1].investorAddress);
        }
    }

    /*
    The owner can use this function to force the exit of an investor from the
    contract during an emergency withdrawal in the following situations:
        - Unresponsive investor
        - Investor demanding to be paid in other to vote, the facto-blackmailing
        other investors
    */
    function forceDivestOfOneInvestor(address currentInvestor)
        onlyOwner
        onlyIfStopped {

        divest(currentInvestor);
        //Resets emergency withdrawal proposal. Investors must vote again
        delete proposedWithdrawal;
    }

    //SECTION IV: CONTRACT MANAGEMENT

    function stopContract()
        onlyOwner {

        isStopped = true;
        LOG_ContractStopped();
    }

    function resumeContract()
        onlyOwner {

        isStopped = false;
        LOG_ContractResumed();
    }

    function changeHouseAddress(address newHouse)
        onlyOwner {

        if (newHouse == address(0x0)) throw; //changed based on audit feedback
        houseAddress = newHouse;
        LOG_HouseAddressChanged(houseAddress, newHouse);
    }

    function changeOwnerAddress(address newOwner)
        onlyOwner {

        if (newOwner == address(0x0)) throw;
        owner = newOwner;
        LOG_OwnerAddressChanged(owner, newOwner);
    }

    function changeGasLimitOfSafeSend(uint newGasLimit)
        onlyOwner
        onlyIfValidGas(newGasLimit) {

        safeGas = newGasLimit;
        LOG_GasLimitChanged(safeGas, newGasLimit);
    }

    //SECTION V: EMERGENCY WITHDRAWAL

    function voteEmergencyWithdrawal(bool vote)
        onlyInvestors
        onlyAfterProposed
        onlyIfStopped {

        investors[investorIDs[msg.sender]].votedForEmergencyWithdrawal = vote;
        LOG_EmergencyWithdrawalVote(msg.sender, vote);
    }

    function proposeEmergencyWithdrawal(address withdrawalAddress)
        onlyIfStopped
        onlyOwner {

        //Resets previous votes
        for (uint i = 1; i <= numInvestors; i++) {
            delete investors[i].votedForEmergencyWithdrawal;
        }

        proposedWithdrawal = WithdrawalProposal(withdrawalAddress, now);
        LOG_EmergencyWithdrawalProposed();
    }

    function executeEmergencyWithdrawal()
        onlyOwner
        onlyAfterProposed
        onlyIfStopped
        onlyIfEmergencyTimeOutHasPassed {

        uint numOfVotesInFavour;
        uint amountToWithdraw = this.balance;

        for (uint i = 1; i <= numInvestors; i++) {
            if (investors[i].votedForEmergencyWithdrawal == true) {
                numOfVotesInFavour++;
                delete investors[i].votedForEmergencyWithdrawal;
            }
        }

        if (numOfVotesInFavour >= emergencyWithdrawalRatio * numInvestors / 100) {
            if (!proposedWithdrawal.toAddress.send(amountToWithdraw)) {
                LOG_EmergencyWithdrawalFailed(proposedWithdrawal.toAddress);
            }
            else {
                LOG_EmergencyWithdrawalSucceeded(proposedWithdrawal.toAddress, amountToWithdraw);
            }
        }
        else {
            throw;
        }
    }

}

    Contract ABI  
[{"constant":false,"inputs":[],"name":"divest","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"id","type":"uint256"}],"name":"getBet","outputs":[{"name":"","type":"address"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getBankroll","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"bet","outputs":[],"payable":true,"type":"function"},{"constant":true,"inputs":[{"name":"currentInvestor","type":"address"}],"name":"getProfitShare","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"stopContract","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numInvestors","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"currentInvestor","type":"address"}],"name":"getLossesShare","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"vote","type":"bool"}],"name":"voteEmergencyWithdrawal","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newHouse","type":"address"}],"name":"changeHouseAddress","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"forceDivestOfAllInvestors","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"myid","type":"bytes32"},{"name":"result","type":"string"}],"name":"__callback","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"myid","type":"bytes32"},{"name":"result","type":"string"},{"name":"proof","type":"bytes"}],"name":"__callback","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"isStopped","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"investors","outputs":[{"name":"investorAddress","type":"address"},{"name":"amountInvested","type":"uint256"},{"name":"votedForEmergencyWithdrawal","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"searchSmallestInvestor","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"withdrawalAddress","type":"address"}],"name":"proposeEmergencyWithdrawal","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getStatus","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_proofType","type":"bytes1"}],"name":"changeOraclizeProofType","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"currentInvestor","type":"address"}],"name":"forceDivestOfOneInvestor","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"proposedWithdrawal","outputs":[{"name":"toAddress","type":"address"},{"name":"atTime","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getMaxBetAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"investorsLosses","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"investorsProfit","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"investorIDs","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"betsKeys","outputs":[{"name":"","type":"bytes32"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getMinInvestment","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getMinBetAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"changeOwnerAddress","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"increaseInvestment","outputs":[],"payable":true,"type":"function"},{"constant":false,"inputs":[],"name":"resumeContract","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"bets","outputs":[{"name":"playerAddress","type":"address"},{"name":"amountBet","type":"uint256"},{"name":"numberRolled","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"invested","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newGasLimit","type":"uint256"}],"name":"changeGasLimitOfSafeSend","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"houseAddress","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_config","type":"bytes32"}],"name":"changeOraclizeConfig","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numBets","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"executeEmergencyWithdrawal","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"currentInvestor","type":"address"}],"name":"getBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"newInvestor","outputs":[],"payable":true,"type":"function"},{"inputs":[],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"playerAddress","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LOG_NewBet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"playerAddress","type":"address"},{"indexed":false,"name":"numberRolled","type":"uint256"},{"indexed":false,"name":"amountWon","type":"uint256"}],"name":"LOG_BetWon","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"playerAddress","type":"address"},{"indexed":false,"name":"numberRolled","type":"uint256"}],"name":"LOG_BetLost","type":"event"},{"anonymous":false,"inputs":[],"name":"LOG_EmergencyWithdrawalProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"withdrawalAddress","type":"address"}],"name":"LOG_EmergencyWithdrawalFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"withdrawalAddress","type":"address"},{"indexed":false,"name":"amountWithdrawn","type":"uint256"}],"name":"LOG_EmergencyWithdrawalSucceeded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"receiver","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LOG_FailedSend","type":"event"},{"anonymous":false,"inputs":[],"name":"LOG_ZeroSend","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LOG_InvestorEntrance","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"amount","type":"int256"}],"name":"LOG_InvestorCapitalUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LOG_InvestorExit","type":"event"},{"anonymous":false,"inputs":[],"name":"LOG_ContractStopped","type":"event"},{"anonymous":false,"inputs":[],"name":"LOG_ContractResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldAddr","type":"address"},{"indexed":false,"name":"newOwnerAddress","type":"address"}],"name":"LOG_OwnerAddressChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldAddr","type":"address"},{"indexed":false,"name":"newHouseAddress","type":"address"}],"name":"LOG_HouseAddressChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldGasLimit","type":"uint256"},{"indexed":false,"name":"newGasLimit","type":"uint256"}],"name":"LOG_GasLimitChanged","type":"event"},{"anonymous":false,"inputs":[],"name":"LOG_EmergencyAutoStop","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"vote","type":"bool"}],"name":"LOG_EmergencyWithdrawalVote","type":"event"},{"anonymous":false,"inputs":[],"name":"LOG_ValueIsTooBig","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"addr","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LOG_SuccessfulSend","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60606040526108fc600255600060055560006006556000600d556000600e553462000000575b6200005e7f1100000000000000000000000000000000000000000000000000000000000000640100000000620024376200009882021704565b600780546c0100000000000000000000000033810204600160a060020a031991821681179092556008805490911690911790555b6200033f565b600054600160a060020a03161515620000c757620000c560006401000000006200288c620001fe82021704565b505b600060009054906101000a9004600160a060020a0316600160a060020a03166338cc4831600060405160200152604051817c0100000000000000000000000000000000000000000000000000000000028152600401809050602060405180830381600087803b15620000005760325a03f1156200000057505060408051805160018054600160a060020a0319166c010000000000000000000000009283029290920491909117908190557f688dcfd70000000000000000000000000000000000000000000000000000000082527fff00000000000000000000000000000000000000000000000000000000000000851660048301529151600160a060020a03909216925063688dcfd791602480830192600092919082900301818387803b15620000005760325a03f11562000000575050505b5b50565b6000806200022e731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed64010000000062002adb6200033782021704565b111562000264575060008054600160a060020a031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed179055600162000332565b60006200029373c03a2615d5efaf5f49f60b7bb6583eaec212fdf164010000000062002adb6200033782021704565b1115620002c9575060008054600160a060020a03191673c03a2615d5efaf5f49f60b7bb6583eaec212fdf1179055600162000332565b6000620002f87351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa64010000000062002adb6200033782021704565b11156200032e575060008054600160a060020a0319167351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa179055600162000332565b5060005b919050565b803b5b919050565b612c6c806200034e6000396000f3606060405236156101d75760e060020a6000350463058aace181146101e8578063061e494f146101f75780630d1fce421461022f57806311610c251461024e578063116c6eab1461025857806312253a6c1461027a578063132ae5e9146102895780631514ea54146102a8578063187a62d5146102ca5780631efb17ee146102dc578063232523e8146102ee57806327dc297e146102fd57806338bbfa50146103535780633f683b6a146103e65780633feb5f2b1461040757806340a49a96146104415780634671e65e146104605780634e69d560146104725780635125796a146104c057806351404cbe146104d2578063518496b2146104e4578063550ed1f0146105145780636128a4f31461053357806366aee0fc146105525780636be80de71461057157806371d0ed0514610593578063724ae9d0146105b557806382a5285d146105d457806385eac05f146105f35780638da5cb5b14610605578063a4beffa71461062e578063c4bc5da514610638578063c902c3ae14610647578063cafb22021461067f578063d21d79501461069e578063d7cee31e146106b0578063da0bba7b146106d9578063df06f906146106eb578063f4993bbd1461070a578063f8b2cb4f14610719578063fb099c841461073b575b6101e65b6101e3610745565b5b565b005b34610000576101e6610a08565b005b3461000057610207600435610a39565b60408051600160a060020a039094168452602084019290925282820152519081900360600190f35b346100005761023c610aa3565b60408051918252519081900360200190f35b6101e6610745565b005b346100005761023c600435610af0565b60408051918252519081900360200190f35b34610000576101e6610b32565b005b346100005761023c610b90565b60408051918252519081900360200190f35b346100005761023c600435610b96565b60408051918252519081900360200190f35b34610000576101e6600435610bd8565b005b34610000576101e6600435610ca5565b005b34610000576101e6610d3b565b005b346100005760408051602060046024803582810135601f81018590048502860185019096528585526101e69583359593946044949392909201918190840183828082843750949650610db795505050505050565b005b346100005760408051602060046024803582810135601f81018590048502860185019096528585526101e6958335959394604494939290920191819084018382808284375050604080516020601f89358b01803591820183900483028401830190945280835297999881019791965091820194509250829150840183828082843750949650610de695505050505050565b005b34610000576103f361101e565b604080519115158252519081900360200190f35b346100005761041760043561102e565b60408051600160a060020a0390941684526020840192909252151582820152519081900360600190f35b346100005761023c61105c565b60408051918252519081900360200190f35b34610000576101e66004356110c9565b005b346100005761047f61118e565b604080519889526020890197909752878701959095526060870193909352608086019190915260a085015260c084015260e083015251908190036101000190f35b34610000576101e66004356111f1565b005b34610000576101e6600435611236565b005b34610000576104f161128d565b60408051600160a060020a03909316835260208301919091528051918290030190f35b346100005761023c6112a2565b60408051918252519081900360200190f35b346100005761023c6113ac565b60408051918252519081900360200190f35b346100005761023c6113b2565b60408051918252519081900360200190f35b346100005761023c6004356113b8565b60408051918252519081900360200190f35b346100005761023c6004356113ca565b60408051918252519081900360200190f35b346100005761023c6113eb565b60408051918252519081900360200190f35b346100005761023c61143f565b60408051918252519081900360200190f35b34610000576101e6600435611530565b005b34610000576106126115c6565b60408051600160a060020a039092168252519081900360200190f35b6101e66115d5565b005b34610000576101e6611664565b005b34610000576102076004356116bc565b60408051600160a060020a039094168452602084019290925282820152519081900360600190f35b346100005761023c6116e7565b60408051918252519081900360200190f35b34610000576101e66004356116ed565b005b3461000057610612611774565b60408051600160a060020a039092168252519081900360200190f35b34610000576101e6600435611783565b005b346100005761023c6117ac565b60408051918252519081900360200190f35b34610000576101e66117b3565b005b346100005761023c60043561195b565b60408051918252519081900360200190f35b6101e66119dc565b005b600060006000600860149054906101000a900460ff161561076557610000565b600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060408051805160025460006020938401819052845160e260020a630bbceb330281526202ab989092016024830152600482018590526003604483015260ea60020a621554930260648301529351600160a060020a039092169450632ef3accc9360848083019493928390030190829087803b156100005760325a03f1156100005750506040515193505034831061085957610000565b8234039150612710610869610aa3565b606402811561000057046113886112ca8402041115801561089257506702c68af0bb1400008210155b156109fc5760408051600160a060020a03331681526020810184905281517fa39417f926ed806b475d2cd74083819551616e7fdb3f5bb7abf8e893eae244b4929181900390910190a1610942604060405190810160405280600681526020017f6e657374656400000000000000000000000000000000000000000000000000008152602001506101c0604051908101604052806101898152602001612ae361018991396002546202ab9801611aa5565b6040805160608101825233815260208082018681526000838501818152868252600b9093529390932091518254600160a060020a031916606060020a9182029190910417825591516001808301919091559151600290910155600c80549182018082559293509182818380158290116109e0576000838152602090206109e09181019083015b808211156109dc57600081556001016109c8565b5090565b5b505050916000526020600020900160005b5082905550610a01565b610000565b5b5b505050565b600160a060020a0333166000908152600360205260409020541515610a2c57610000565b6101e333611d81565b5b5b565b6000600060006000600c80549050851015610a9a57600c85815481101561000057906000526020600020900160005b50546000818152600b6020526040902080546001820154600290920154600160a060020a039091169650909450925090505b5b509193909250565b6000600d546006541080610abc5750600654600d548101105b80610ace5750600e54600d5460065401105b15610adf57506000610aec56610aec565b50600e54600d5460065401035b5b90565b600654600d54600160a060020a03831660009081526003602090815260408083205483526004909152812060010154909291028115610000570490505b919050565b60075433600160a060020a03908116911614610b4d57610000565b6008805460a060020a60ff02191660a060020a1790556040517f3bb54b4ced112fe0d4fa7efd42b29a0a9036fde6e206de4290c4ff02d2dc2c5c90600090a15b5b565b60055481565b600654600e54600160a060020a03831660009081526003602090815260408083205483526004909152812060010154909291028115610000570490505b919050565b600160a060020a0333166000908152600360205260409020541515610bfc57610000565b600954600160a060020a03161515610c1357610000565b60085460a060020a900460ff161515610c2b57610000565b33600160a060020a031660008181526003602090815260408083205483526004825291829020600201805460ff191660f860020a8681020417905581519283528315159083015280517fea22ee15de9c385abeff072b23d6e0de5ebda8c59098f5585f45e82b9faa57629281900390910190a15b5b5b5b50565b60075433600160a060020a03908116911614610cc057610000565b600160a060020a0381161515610cd557610000565b60088054600160a060020a031916606060020a83810204179081905560408051600160a060020a039283168152918316602083015280517fb750ac854b12114073b8c76dcfe5fb889b30db5d3d60e07abc8ae66c349d7a689281900390910190a15b5b50565b600754600090819033600160a060020a03908116911614610d5b57610000565b505060055460015b818111610db157600160005260046020527fabd6e7cb50984ff9c2f3e18a2660c3353dadf4e3291deeb275dae2cd1e44fe0554610da890600160a060020a0316611d81565b5b600101610d63565b5b5b5050565b610db182826000604051805910610dcb5750595b8181526020808302820101604052905b50610de6565b5b5050565b6000610df0611fad565b600160a060020a031633600160a060020a0316141515610e0f57610000565b6000848152600b60205260409020548490600160a060020a03161515610e3457610000565b6000858152600b60205260408120600201548691901115610e5457610000565b85856000610e61826120c6565b90506001811080610e73575061271081115b8015610e8e57506000838152600b6020526040902060020154155b15610eca576000838152600b602052604090206201869f60028201558054600190910154610ec591600160a060020a0316906120db565b611010565b88612710610ed6610aa3565b6064028115610000576000838152600b602052604090206001015491900490611388906112ca020411158015610f2657506000818152600b60205260409020600101546702c68af0bb1400009010155b15610fda57610f34896120c6565b60008b8152600b60209081526040918290206002810184905582516060810184528154600160a060020a0316815260019091015491810191909152908101829052909750610f82908861228f565b60008a8152600b602090815260409182902082516060810184528154600160a060020a031681526001820154928101929092526002015491810191909152610fca908861234c565b600f805460ff191690555b61100c565b6000818152600b602052604090206201869f60028201558054600190910154610fd591600160a060020a0316906120db565b5b5b505b5050505b505b505b50505050565b60085460a060020a900460ff1681565b600460205260009081526040902080546001820154600290920154600160a060020a03909116919060ff1683565b60006001805b60055481116110c05760008281526004602052604090205461108c90600160a060020a031661195b565b6000828152600460205260409020546110ad90600160a060020a031661195b565b10156110b7578091505b5b600101611062565b8192505b505090565b60085460009060a060020a900460ff1615156110e457610000565b60075433600160a060020a039081169116146110ff57610000565b5060015b600554811161112e576000818152600460205260409020600201805460ff191690555b600101611103565b60408051808201825283815242602090910181905260098054600160a060020a031916606060020a80870204179055600a55517f6c0eb56f121418f16eaebbe01cb2694897b8578b3b1c549e634a1b7753ed2d8b90600090a15b5b5b5050565b60006000600060006000600060006000600060006111aa610aa3565b91506111b46113eb565b600e54600d54600c54949c506113889b5060be9a50606499506702c68af0bb14000098500395509350909150889050825b50509091929394959697565b60075433600160a060020a0390811691161461120c57610000565b600160f860020a03198116151561122257610000565b610c9f60f860020a8217612437565b5b5b50565b60075433600160a060020a0390811691161461125157610000565b60085460a060020a900460ff16151561126957610000565b61127281611d81565b60098054600160a060020a03191690556000600a555b5b5b50565b600954600a54600160a060020a039091169082565b60008054604080516020908101849052815160e060020a6338cc4831028152915184938493600160a060020a03909116926338cc48319260048084019382900301818787803b156100005760325a03f11561000057505060408051805160025460006020938401819052845160e260020a630bbceb330281526202ab989092016024830152600482018590526003604483015260ea60020a621554930260648301529351600160a060020a039092169450632ef3accc9360848083019493928390030190829087803b156100005760325a03f1156100005750506040515192506302ddf2a09050611388611394610aa3565b6064020281156100005704905081810192505b505090565b600e5481565b600d5481565b60036020526000908152604090205481565b600c81815481101561000057906000526020600020900160005b5054905081565b60006000600a60055414156114315761140261105c565b60008181526004602052604090205490915061142690600160a060020a031661195b565b91506109dc566109dc565b600091506109dc565b5b5090565b60008054604080516020908101849052815160e060020a6338cc483102815291518493600160a060020a0316926338cc483192600480830193919282900301818787803b156100005760325a03f11561000057505060408051805160025460006020938401819052845160e260020a630bbceb330281526202ab989092016024830152600482018590526003604483015260ea60020a621554930260648301529351600160a060020a039092169450632ef3accc9360848083019493928390030190829087803b156100005760325a03f115610000575050604051516702c68af0bb140000810193509150505b5090565b60075433600160a060020a0390811691161461154b57610000565b600160a060020a038116151561156057610000565b60078054600160a060020a031916606060020a83810204179081905560408051600160a060020a039283168152918316602083015280517f4f67fe223bca69f22bf24552638f3c95bfb9e9763c4a33a3aa67a46484d81c2b9281900390910190a15b5b50565b600754600160a060020a031681565b60085460a060020a900460ff16156115ec57610000565b3415156115f857610000565b600160a060020a033316600090815260036020526040902054151561161c57610000565b61162461254e565b600160a060020a0333166000908152600360209081526040808320548352600490915290206001018054349081019091556006805490910190555b5b5b5b565b60075433600160a060020a0390811691161461167f57610000565b6008805460a060020a60ff02191690556040517fadf8f79dd508a8e1881e3cca67a5af02a21f971925c3a6a6cb8fc165d07e346390600090a15b5b565b600b60205260009081526040902080546001820154600290920154600160a060020a03909116919083565b60065481565b60075433600160a060020a0390811691161461170857610000565b806202ab98816202ab9801101561171e57610000565b6161a881101561172d57610000565b6002829055604080518381526020810184905281517fb5e4ece1f96cc168fddcead7ee209f969a93607238c585767ea80fad5fe884b2929181900390910190a15b5b505b50565b600854600160a060020a031681565b60075433600160a060020a0390811691161461179e57610000565b610c9f816126e9565b5b5b50565b600c545b90565b6007546000908190819033600160a060020a039081169116146117d557610000565b600954600160a060020a031615156117ec57610000565b60085460a060020a900460ff16151561180457610000565b426203f48060096001015401111561181b57610000565b5050600160a060020a0330163160015b600554811161187c5760008181526004602052604090206002015460ff16151560011415611873576000818152600460205260409020600201805460ff191690556001909201915b5b60010161182b565b600554606490600a020483106109fc57600954604051600160a060020a039091169083156108fc029084906000818181858888f1935050505015156118ff5760095460408051600160a060020a039092168252517f0fd1ed783bf9505e3fc2545a18e022b8bd048d240d98a3c959646ccebd569b399181900360200190a1611947565b60095460408051600160a060020a0390921682526020820184905280517fe0376e740df28d6cbdef46880b37136bc75e027766e3295d4af8a44c557ae7329281900390910190a15b610a01565b610000565b5b5b5b5b5b505050565b600160a060020a03811660009081526003602090815260408083205483526004909152812060010154818061198f85610af0565b915061199a85610b96565b90508182840110806119ad575082828401105b806119b9575080828401105b156119cb57600093506119d3566119d3565b808284010393505b5b505050919050565b60085460009060a060020a900460ff16156119f657610000565b341515611a0257610000565b600160a060020a03331660009081526003602052604090205415611a2557610000565b611a2d6113eb565b3411611a3857610000565b611a4061254e565b600a6005541415611a7757611a5361105c565b600081815260046020526040902054909150611a7790600160a060020a0316611d81565b5b6005805460010190819055611a8c906127f7565b5b600a6005541115610c9f57610000565b5b5b5b5b5b50565b600080548190600160a060020a03161515611ac657611ac4600061288c565b505b600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f1156100005750505060405180519060200150600160006101000a815481600160a060020a030219169083606060020a908102040217905550600160009054906101000a9004600160a060020a0316600160a060020a0316632ef3accc86856000604051602001526040518360e060020a02815260040180806020018381526020018281038252848181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f168015611bf65780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b156100005760325a03f11561000057505060405151915050670de0b6b3a76400003a840201811115611c3f5760009150611d78565b600160009054906101000a9004600160a060020a0316600160a060020a031663c51be90f8260008888886000604051602001526040518660e060020a0281526004018085815260200180602001806020018481526020018381038352868181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f168015611cee5780820380516001836020036101000a031916815260200191505b508381038252858181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f168015611d475780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b156100005761235a5a03f11561000057505060405151935050505b5b509392505050565b6000600060006000611d9161254e565b600160a060020a0385166000908152600360205260409020549350611db58561195b565b6000858152600460205260409020600101546006549194509010611f54576000848152600460209081526040808320600181018054600680549190910390558154600160a060020a0319168255849055600201805460ff19169055600160a060020a038816835260039091528120556005546127106032850204938490039392508414611ee157506005805460009081526004602081815260408084208054600160a060020a039081168652600384528286208a90558986529390925280842082548154606060020a91909516810204600160a060020a031994851617815560018084015482820155600280850154928101805460f860020a60ff90951685029490940460ff199485161790559654865291852080549094168455908301939093559201805490911690555b60058054600019019055611ef585846120db565b600854611f0b90600160a060020a0316836120db565b60408051600160a060020a03871681526020810185905281517f3026a12843449d7e7377f8932a40bdb5d1b1125efbfbe147132016f8beac0f34929181900390910190a1611f94565b6008805460a060020a60ff02191660a060020a1790556040517f52e578ad17dc8fe0ff456fdf1f81516f7d29eb85fff301475a3a29d0e84bb31a90600090a15b5b600a600554111561101657610000565b5b5050505050565b60008054600160a060020a03161515611fcc57611fca600061288c565b505b600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060408051805160018054600160a060020a031916606060020a9283029290920491909117908190556000602092830181905283517fc281d19e0000000000000000000000000000000000000000000000000000000081529351600160a060020a03909216945063c281d19e936004808201949392918390030190829087803b156100005760325a03f115610000575050604051519150505b5b90565b60006120d3826000612990565b90505b919050565b801515612110576040517f4763e3feef50167ae1957a20ba2b75b5f4093062392e81d5e351b709b1d8261f90600090a1610db1565b8030600160a060020a0316311015612150576040517f504b0ae89b95779262e99243870eb936180a8c33b444f17f01807c40a20c7aa790600090a1610db1565b600254604051600160a060020a038416919083906000818181858888f1935050505015156122445760408051600160a060020a03841681526020810183905281517f949201d78c50a6b453f7068ed19a5c7d74aaa07c12cadfd3855357a0b0f47405929181900390910190a1600854600160a060020a0383811691161461224457600854600254604051600160a060020a039092169183906000818181858888f1935050505015156122445760085460408051600160a060020a0390921682526020820183905280517f949201d78c50a6b453f7068ed19a5c7d74aaa07c12cadfd3855357a0b0f474059281900390910190a15b5b5b60408051600160a060020a03841681526020810183905281517fc7e416c5685d8971558840f05c5e63e02575b29997d8da6b9ba44dc10da6a370929181900390910190a15b5050565b60008161138860018203101561101857602084015161138890612652020491507fa5acb022726d980b249ddc212f4992ad87f28c093550232fcc48bd8af803f2d5846000015184846040518084600160a060020a03168152602001838152602001828152602001935050505060405180910390a1835161230f90836120db565b600e5482810110806123285750836020015182600e5401105b1561233257610000565b6020840151600e805491840390910190555b5b5b50505050565b6000808261138860001982011061101657845160408051600160a060020a0390921682526020820186905280517ff6db2bace4ac8277384553ad9603d045220a91fb2448ab6130d7a6f044f9a8cf9281900390910190a184516123b09060016120db565b600d546020860151810110806123cd57506020850151600d548101105b806123dc575084602001516001145b156123e657610000565b6020850151600d5481016000199081019450612710916126b6910102600d8054929091049190910190819055600854908403925061101690600160a060020a0316836120db565b5b5b5b5050505050565b600054600160a060020a0316151561245557612453600061288c565b505b600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060408051805160018054600160a060020a031916606060020a9283029290920491909117908190557f688dcfd7000000000000000000000000000000000000000000000000000000008252600160f860020a0319851660048301529151600160a060020a03909216925063688dcfd791602480830192600092919082900301818387803b156100005760325a03f115610000575050505b5b50565b600f54600090819081908190819060ff16151561101657600193505b60055484116126c357600084815260046020526040902054600160a060020a0316925061259683610af0565b91506125a183610b96565b600085815260046020526040902060010154909150828101108015906125db57506000848152600460205260409020600101548201819010155b156126445760008481526004602090815260409182902060010180548486039081019091558251600160a060020a03871681529182015281517f8ff49347da9034aab52b79ac6b2ba8cf17d221516834af5e5fa04bef1df4d7cd929181900390910190a1612684565b6008805460a060020a60ff02191660a060020a1790556040517f52e578ad17dc8fe0ff456fdf1f81516f7d29eb85fff301475a3a29d0e84bb31a90600090a15b60008481526004602052604090206001015485018590106126b75760008481526004602052604090206001015494909401935b5b60019093019261256a565b6000600d819055600e556006859055600f805460ff191660011790555b5b5b5050505050565b600054600160a060020a0316151561270757612705600061288c565b505b600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060408051805160018054600160a060020a031916606060020a9283029290920491909117908190557fe8a5282d000000000000000000000000000000000000000000000000000000008252600482018590529151600160a060020a03909216925063e8a5282d91602480830192600092919082900301818387803b156100005760325a03f115610000575050505b5b50565b33600160a060020a038116600081815260036020908152604080832086905585835260048252918290208054600160a060020a031916606060020a958602959095049490941784553460019094018490556006805485019055815192835282019290925281517fa4a46f45c9996c78320ae470714f930acba653b022fddec1735c1400209780e4929181900390910190a15b50565b600060006128ad731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed612adb565b11156128e1575060008054600160a060020a031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed1790556001610b2d565b600061290073c03a2615d5efaf5f49f60b7bb6583eaec212fdf1612adb565b1115612934575060008054600160a060020a03191673c03a2615d5efaf5f49f60b7bb6583eaec212fdf11790556001610b2d565b60006129537351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa612adb565b1115612987575060008054600160a060020a0319167351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa1790556001610b2d565b5060005b919050565b6040805160208101909152600090819052828180805b8351811015612abb57603060f860020a02848281518110156100005790602001015160f860020a900460f860020a02600160f860020a03191610158015612a1b5750603960f860020a02848281518110156100005790602001015160f860020a900460f860020a02600160f860020a03191611155b15612a76578115612a3e57851515612a3657612abb56612a3e565b600019909501945b5b600a830292506030848281518110156100005790602001015160f860020a900460f860020a0260f860020a90040383019250612ab1565b838181518110156100005790602001015160f860020a900460f860020a02600160f860020a031916602e60f860020a021415612ab157600191505b5b5b6001016129a6565b6000861115612acd5785600a0a830292505b8294505b5050505092915050565b803b5b919050565b55524c5d205b276a736f6e2868747470733a2f2f6170692e72616e646f6d2e6f72672f6a736f6e2d7270632f312f696e766f6b65292e726573756c742e72616e646f6d2e646174612e30272c20275c6e7b226a736f6e727063223a22322e30222c226d6574686f64223a2267656e65726174655369676e6564496e746567657273222c22706172616d73223a7b226170694b6579223a247b5b646563727970745d20424746564667456d785a5449706731752b4f61616b6e394d3032524e7a7455347a675532336737384a77396a55446a56366e4676356c564f50676e3877513461335744314d304776433157577657664a6973556b7a4f6c6d536e505a4f58544a737873554b7a38304466515a6c506d485a365345354e7734544b7677465066524b4b566e72336c6b34624177752f69695533494271585a64526664335239553d7d2c226e223a312c226d696e223a312c226d6178223a3130303030247b5b6964656e746974795d20227d227d2c226964223a31247b5b6964656e746974795d20227d227d275d

 

View All
Block Age transaction Difficulty 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.