Sponsored Link:   SHPING - $3.4M RAISED IN PRESALE - ON TRACK TO BE LARGEST ICO IN AUSTRALIA - JOIN NOW
  Latest 25 txns from a total Of 23094 transactions View All

TxHash Age From To Value [TxFee]
0xc35865fb9361be918cc3a2a2b571e414df9238940f553e95826d0d574559b9761 day 4 hrs ago0x21cdbe59c11b3909e0a9bbc2f4f42697a9a3dc82  IN   0x49fddeae0b521dab8d0c4b77e7161094f971320d1.5 Ether0.000504
0x66763e76675bbd3364bb069a968352d83793b76af8382586053e54f3758ad6f71 day 6 hrs agoOraclize  IN   0x49fddeae0b521dab8d0c4b77e7161094f971320d0 Ether0.00192746
0x2080be537f9745640bea1c54f1910e277728ffa05a58c5af16ab9e3ba351ec421 day 6 hrs ago0xf051ff24e4d65e159d1fb1950bc548f74fc5080f  IN   0x49fddeae0b521dab8d0c4b77e7161094f971320d0.221 Ether0.00296636
0xbee183831ac548706c467abf4e2b7cb35910e5b9af7f3f94b8093081a2ed42cb2 days 20 hrs agoOraclize  IN   0x49fddeae0b521dab8d0c4b77e7161094f971320d0 Ether0.0018773
0x454b10d46a065278452df5d017468526a2149b1af214352effe0c4f6fe1e05be2 days 20 hrs ago0x5cf920f0b2b485c0cec52b4a2596b0b3d54dbb74  IN   0x49fddeae0b521dab8d0c4b77e7161094f971320d0.222 Ether0.00148318
0xafa507d7b1800672a0db4e8a8360ccc94f787b511a3410b543bcc2225ca846ce2 days 22 hrs agoOraclize  IN   0x49fddeae0b521dab8d0c4b77e7161094f971320d0 Ether0.00187994
0x776c548e3faf246ff26842f810d3f573a33b27b4a9301357b9343d5051aa68c72 days 22 hrs ago0x5cf920f0b2b485c0cec52b4a2596b0b3d54dbb74  IN   0x49fddeae0b521dab8d0c4b77e7161094f971320d0.221 Ether0.000593272
0x96c6b65e3f0937f7940c174aa39b51ab08f3e890a3150d272745fb8ac1faa3516 days 2 hrs agoOraclize  IN   0x49fddeae0b521dab8d0c4b77e7161094f971320d0 Ether0.00212732
0xfd5eb0c5f12ab406aefc10644e93b871b63cc0f0cdd0579a290c4f9b202778e06 days 2 hrs ago0x34855ef0b9d89bc6664d520b85aa13db27e95e0b  IN   0x49fddeae0b521dab8d0c4b77e7161094f971320d0.47 Ether0.006081038
0xaf9e5a594e0563acb9d70e0d90b61571bd37360be938b494364919d9ae21e1656 days 2 hrs agoOraclize  IN   0x49fddeae0b521dab8d0c4b77e7161094f971320d0 Ether0.00192618
0x8e7ef51e0493218dcbf4e3273becb687504772503084a8b38191371ba75d25756 days 2 hrs ago0x34855ef0b9d89bc6664d520b85aa13db27e95e0b  IN   0x49fddeae0b521dab8d0c4b77e7161094f971320d0.48 Ether0.006081038
0x516f0887f569aa223311ab55da454061227032476fc78d0a6ac3a5ea21dc9f407 days 5 hrs agoOraclize  IN   0x49fddeae0b521dab8d0c4b77e7161094f971320d0 Ether0.005878753
0xa426975a71ccd9ac363467f9c527bf5e5e5270dd568b39a45ae10db66f9d6ccb7 days 6 hrs ago0x34855ef0b9d89bc6664d520b85aa13db27e95e0b  IN   0x49fddeae0b521dab8d0c4b77e7161094f971320d0.5 Ether0.006081038
0x507a869a07187040b1d433f570433cea8ee71f8f4943ac7c7e04530cbd5a54058 days 5 hrs agoOraclize  IN   0x49fddeae0b521dab8d0c4b77e7161094f971320d0 Ether0.00188122
0x41d0b3695f469afdce8decabd705a7e4552ea94a6dc36ab2bcd1907f418ff2c48 days 5 hrs ago0x34855ef0b9d89bc6664d520b85aa13db27e95e0b  IN   0x49fddeae0b521dab8d0c4b77e7161094f971320d0.493 Ether0.006081038
0xf1fe71939b1f886428c3b95e3d32df40190dbeebb5e659b97df9523eaa41e3b38 days 5 hrs agoOraclize  IN   0x49fddeae0b521dab8d0c4b77e7161094f971320d0 Ether0.00188122
0xb902137c90e95e4c31f6269be4b62dce6ebe554a786435a56fb59125d82d26238 days 5 hrs ago0x2e223fb6abe2344eebc6376e48e0ff4169358fbc  IN   0x49fddeae0b521dab8d0c4b77e7161094f971320d0.221 Ether0.000444954
0xef762122f6706519ea38eebb2579a580b337541c65bcd0b9236ee02174db99109 days 2 hrs agoOraclize  IN   0x49fddeae0b521dab8d0c4b77e7161094f971320d0 Ether0.00192746
0x8c0f9ae4e80e731ad24440376a369d679cc183eea72460f854520ee404afb27d9 days 2 hrs ago0x376fddf9cb7ff55e17e28d6d8b9fd5dd72f0e118  IN   0x49fddeae0b521dab8d0c4b77e7161094f971320d0.25 Ether0.000593272
0xe3da9d06702072433675f49249726ef4d746d667cbdaa408cdcca32a479da72b9 days 10 hrs agoOraclize  IN   0x49fddeae0b521dab8d0c4b77e7161094f971320d0 Ether0.0021286
0xaf86c466cc8452688d9cbb83e060161d8fb26795a7f1db7475a215a41afdecaa9 days 10 hrs ago0x2955ee647f3b06b1c961fcf4e0a61df00ecd5b5b  IN   0x49fddeae0b521dab8d0c4b77e7161094f971320d1 Ether0.000444954
0x04dff669c78587aa08ad214515e1a7a83d07fbc93a1cc0d20627930ada099fde9 days 10 hrs agoOraclize  IN   0x49fddeae0b521dab8d0c4b77e7161094f971320d0 Ether0.0021286
0x34d1dccceb9615f996fbd64ce935950034101d8b5cb11d5ad74a2ff6f2fe2dff9 days 10 hrs ago0x2955ee647f3b06b1c961fcf4e0a61df00ecd5b5b  IN   0x49fddeae0b521dab8d0c4b77e7161094f971320d1 Ether0.000296636
0xe944bc421c431aefce12d53def157160d59bacf2aaa632b98b7d444bda7c385a9 days 10 hrs agoOraclize  IN   0x49fddeae0b521dab8d0c4b77e7161094f971320d0 Ether0.0021286
0x2d36a1783c67379b93fcc62f1bb6afa205144e122cd381f939994f653a5b19a29 days 10 hrs ago0x2955ee647f3b06b1c961fcf4e0a61df00ecd5b5b  IN   0x49fddeae0b521dab8d0c4b77e7161094f971320d0.28 Ether0.000148318
[ 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
0x66763e76675bbd3364bb069a968352d83793b76af8382586053e54f3758ad6f751484241 day 6 hrs ago0x49fddeae0b521dab8d0c4b77e7161094f971320d0xf051ff24e4d65e159d1fb1950bc548f74fc5080f0.284369664 Ether
0x2080be537f9745640bea1c54f1910e277728ffa05a58c5af16ab9e3ba351ec4251484021 day 6 hrs ago0x49fddeae0b521dab8d0c4b77e7161094f971320d0x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.003592 Ether
0xbee183831ac548706c467abf4e2b7cb35910e5b9af7f3f94b8093081a2ed42cb51391772 days 20 hrs ago0x49fddeae0b521dab8d0c4b77e7161094f971320d0x5cf920f0b2b485c0cec52b4a2596b0b3d54dbb740.285677664 Ether
0x454b10d46a065278452df5d017468526a2149b1af214352effe0c4f6fe1e05be51391292 days 20 hrs ago0x49fddeae0b521dab8d0c4b77e7161094f971320d0x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.003592 Ether
0xafa507d7b1800672a0db4e8a8360ccc94f787b511a3410b543bcc2225ca846ce51386652 days 22 hrs ago0x49fddeae0b521dab8d0c4b77e7161094f971320d0x5cf920f0b2b485c0cec52b4a2596b0b3d54dbb740.284369664 Ether
0x776c548e3faf246ff26842f810d3f573a33b27b4a9301357b9343d5051aa68c751386442 days 22 hrs ago0x49fddeae0b521dab8d0c4b77e7161094f971320d0x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.003592 Ether
0x96c6b65e3f0937f7940c174aa39b51ab08f3e890a3150d272745fb8ac1faa35151202816 days 2 hrs ago0x49fddeae0b521dab8d0c4b77e7161094f971320d0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.004197672 Ether
0x96c6b65e3f0937f7940c174aa39b51ab08f3e890a3150d272745fb8ac1faa35151202816 days 2 hrs ago0x49fddeae0b521dab8d0c4b77e7161094f971320d0x34855ef0b9d89bc6664d520b85aa13db27e95e0b1 wei
0xfd5eb0c5f12ab406aefc10644e93b871b63cc0f0cdd0579a290c4f9b202778e051202786 days 2 hrs ago0x49fddeae0b521dab8d0c4b77e7161094f971320d0x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.003592 Ether
0xaf9e5a594e0563acb9d70e0d90b61571bd37360be938b494364919d9ae21e16551202736 days 2 hrs ago0x49fddeae0b521dab8d0c4b77e7161094f971320d0x34855ef0b9d89bc6664d520b85aa13db27e95e0b0.623141664 Ether
0x8e7ef51e0493218dcbf4e3273becb687504772503084a8b38191371ba75d257551202696 days 2 hrs ago0x49fddeae0b521dab8d0c4b77e7161094f971320d0x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.003592 Ether
0x516f0887f569aa223311ab55da454061227032476fc78d0a6ac3a5ea21dc9f4051134287 days 5 hrs ago0x49fddeae0b521dab8d0c4b77e7161094f971320d0x34855ef0b9d89bc6664d520b85aa13db27e95e0b0.649301664 Ether
0xa426975a71ccd9ac363467f9c527bf5e5e5270dd568b39a45ae10db66f9d6ccb51133727 days 6 hrs ago0x49fddeae0b521dab8d0c4b77e7161094f971320d0x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.003592 Ether
0x507a869a07187040b1d433f570433cea8ee71f8f4943ac7c7e04530cbd5a540551075368 days 5 hrs ago0x49fddeae0b521dab8d0c4b77e7161094f971320d0x34855ef0b9d89bc6664d520b85aa13db27e95e0b0.640145664 Ether
0x41d0b3695f469afdce8decabd705a7e4552ea94a6dc36ab2bcd1907f418ff2c451075258 days 5 hrs ago0x49fddeae0b521dab8d0c4b77e7161094f971320d0x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.003592 Ether
0xf1fe71939b1f886428c3b95e3d32df40190dbeebb5e659b97df9523eaa41e3b351074768 days 5 hrs ago0x49fddeae0b521dab8d0c4b77e7161094f971320d0x2e223fb6abe2344eebc6376e48e0ff4169358fbc0.284369664 Ether
0xb902137c90e95e4c31f6269be4b62dce6ebe554a786435a56fb59125d82d262351074748 days 5 hrs ago0x49fddeae0b521dab8d0c4b77e7161094f971320d0x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.003592 Ether
0xef762122f6706519ea38eebb2579a580b337541c65bcd0b9236ee02174db991051024039 days 2 hrs ago0x49fddeae0b521dab8d0c4b77e7161094f971320d0x376fddf9cb7ff55e17e28d6d8b9fd5dd72f0e1180.322301664 Ether
0x8c0f9ae4e80e731ad24440376a369d679cc183eea72460f854520ee404afb27d51024009 days 2 hrs ago0x49fddeae0b521dab8d0c4b77e7161094f971320d0x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.003592 Ether
0xe3da9d06702072433675f49249726ef4d746d667cbdaa408cdcca32a479da72b51004079 days 10 hrs ago0x49fddeae0b521dab8d0c4b77e7161094f971320d0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.008967672 Ether
0xe3da9d06702072433675f49249726ef4d746d667cbdaa408cdcca32a479da72b51004079 days 10 hrs ago0x49fddeae0b521dab8d0c4b77e7161094f971320d0x2955ee647f3b06b1c961fcf4e0a61df00ecd5b5b1 wei
0xaf86c466cc8452688d9cbb83e060161d8fb26795a7f1db7475a215a41afdecaa51004039 days 10 hrs ago0x49fddeae0b521dab8d0c4b77e7161094f971320d0x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.003592 Ether
0x04dff669c78587aa08ad214515e1a7a83d07fbc93a1cc0d20627930ada099fde51003939 days 10 hrs ago0x49fddeae0b521dab8d0c4b77e7161094f971320d0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.008967672 Ether
0x04dff669c78587aa08ad214515e1a7a83d07fbc93a1cc0d20627930ada099fde51003939 days 10 hrs ago0x49fddeae0b521dab8d0c4b77e7161094f971320d0x2955ee647f3b06b1c961fcf4e0a61df00ecd5b5b1 wei
0x34d1dccceb9615f996fbd64ce935950034101d8b5cb11d5ad74a2ff6f2fe2dff51003909 days 10 hrs ago0x49fddeae0b521dab8d0c4b77e7161094f971320d0x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.003592 Ether
[ Download CSV Export  ] 
Contract Name: Dice
Compiler Version: 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 = 7500; //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] BMmkEKUccgE4/k+IKb650CLwQ/ACeowJ6a0erQDDqXn1XoTiKRXkw0T3ddPc5l6yUJ8/lEUd3DVG7nwvC/N9jY5NGgeNU4Xvi6HpWjqrevinSkadL3RL0v2w9fr87hd/sURn77W7W8WPoxVH+K8E74+0XHf5vak=},\"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
60606040526108fc600255600060055560006006556000600d556000600e553462000000575b6200005e7f1100000000000000000000000000000000000000000000000000000000000000640100000000620024376200009882021704565b600780546c0100000000000000000000000033810204600160a060020a031991821681179092556008805490911690911790555b6200033f565b600054600160a060020a03161515620000c757620000c560006401000000006200288c620001fe82021704565b505b600060009054906101000a9004600160a060020a0316600160a060020a03166338cc4831600060405160200152604051817c0100000000000000000000000000000000000000000000000000000000028152600401809050602060405180830381600087803b15620000005760325a03f1156200000057505060408051805160018054600160a060020a0319166c010000000000000000000000009283029290920491909117908190557f688dcfd70000000000000000000000000000000000000000000000000000000082527fff00000000000000000000000000000000000000000000000000000000000000851660048301529151600160a060020a03909216925063688dcfd791602480830192600092919082900301818387803b15620000005760325a03f11562000000575050505b5b50565b6000806200022e731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed64010000000062002adb6200033782021704565b111562000264575060008054600160a060020a031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed179055600162000332565b60006200029373c03a2615d5efaf5f49f60b7bb6583eaec212fdf164010000000062002adb6200033782021704565b1115620002c9575060008054600160a060020a03191673c03a2615d5efaf5f49f60b7bb6583eaec212fdf1179055600162000332565b6000620002f87351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa64010000000062002adb6200033782021704565b11156200032e575060008054600160a060020a0319167351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa179055600162000332565b5060005b919050565b803b5b919050565b612c6c806200034e6000396000f3606060405236156101d75760e060020a6000350463058aace181146101e8578063061e494f146101f75780630d1fce421461022f57806311610c251461024e578063116c6eab1461025857806312253a6c1461027a578063132ae5e9146102895780631514ea54146102a8578063187a62d5146102ca5780631efb17ee146102dc578063232523e8146102ee57806327dc297e146102fd57806338bbfa50146103535780633f683b6a146103e65780633feb5f2b1461040757806340a49a96146104415780634671e65e146104605780634e69d560146104725780635125796a146104c057806351404cbe146104d2578063518496b2146104e4578063550ed1f0146105145780636128a4f31461053357806366aee0fc146105525780636be80de71461057157806371d0ed0514610593578063724ae9d0146105b557806382a5285d146105d457806385eac05f146105f35780638da5cb5b14610605578063a4beffa71461062e578063c4bc5da514610638578063c902c3ae14610647578063cafb22021461067f578063d21d79501461069e578063d7cee31e146106b0578063da0bba7b146106d9578063df06f906146106eb578063f4993bbd1461070a578063f8b2cb4f14610719578063fb099c841461073b575b6101e65b6101e3610745565b5b565b005b34610000576101e6610a08565b005b3461000057610207600435610a39565b60408051600160a060020a039094168452602084019290925282820152519081900360600190f35b346100005761023c610aa3565b60408051918252519081900360200190f35b6101e6610745565b005b346100005761023c600435610af0565b60408051918252519081900360200190f35b34610000576101e6610b32565b005b346100005761023c610b90565b60408051918252519081900360200190f35b346100005761023c600435610b96565b60408051918252519081900360200190f35b34610000576101e6600435610bd8565b005b34610000576101e6600435610ca5565b005b34610000576101e6610d3b565b005b346100005760408051602060046024803582810135601f81018590048502860185019096528585526101e69583359593946044949392909201918190840183828082843750949650610db795505050505050565b005b346100005760408051602060046024803582810135601f81018590048502860185019096528585526101e6958335959394604494939290920191819084018382808284375050604080516020601f89358b01803591820183900483028401830190945280835297999881019791965091820194509250829150840183828082843750949650610de695505050505050565b005b34610000576103f361101e565b604080519115158252519081900360200190f35b346100005761041760043561102e565b60408051600160a060020a0390941684526020840192909252151582820152519081900360600190f35b346100005761023c61105c565b60408051918252519081900360200190f35b34610000576101e66004356110c9565b005b346100005761047f61118e565b604080519889526020890197909752878701959095526060870193909352608086019190915260a085015260c084015260e083015251908190036101000190f35b34610000576101e66004356111f1565b005b34610000576101e6600435611236565b005b34610000576104f161128d565b60408051600160a060020a03909316835260208301919091528051918290030190f35b346100005761023c6112a2565b60408051918252519081900360200190f35b346100005761023c6113ac565b60408051918252519081900360200190f35b346100005761023c6113b2565b60408051918252519081900360200190f35b346100005761023c6004356113b8565b60408051918252519081900360200190f35b346100005761023c6004356113ca565b60408051918252519081900360200190f35b346100005761023c6113eb565b60408051918252519081900360200190f35b346100005761023c61143f565b60408051918252519081900360200190f35b34610000576101e6600435611530565b005b34610000576106126115c6565b60408051600160a060020a039092168252519081900360200190f35b6101e66115d5565b005b34610000576101e6611664565b005b34610000576102076004356116bc565b60408051600160a060020a039094168452602084019290925282820152519081900360600190f35b346100005761023c6116e7565b60408051918252519081900360200190f35b34610000576101e66004356116ed565b005b3461000057610612611774565b60408051600160a060020a039092168252519081900360200190f35b34610000576101e6600435611783565b005b346100005761023c6117ac565b60408051918252519081900360200190f35b34610000576101e66117b3565b005b346100005761023c60043561195b565b60408051918252519081900360200190f35b6101e66119dc565b005b600060006000600860149054906101000a900460ff161561076557610000565b600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060408051805160025460006020938401819052845160e260020a630bbceb330281526202ab989092016024830152600482018590526003604483015260ea60020a621554930260648301529351600160a060020a039092169450632ef3accc9360848083019493928390030190829087803b156100005760325a03f1156100005750506040515193505034831061085957610000565b8234039150612710610869610aa3565b60640281156100005704611d4c6109068402041115801561089257506702c68af0bb1400008210155b156109fc5760408051600160a060020a03331681526020810184905281517fa39417f926ed806b475d2cd74083819551616e7fdb3f5bb7abf8e893eae244b4929181900390910190a1610942604060405190810160405280600681526020017f6e657374656400000000000000000000000000000000000000000000000000008152602001506101c0604051908101604052806101898152602001612ae361018991396002546202ab9801611aa5565b6040805160608101825233815260208082018681526000838501818152868252600b9093529390932091518254600160a060020a031916606060020a9182029190910417825591516001808301919091559151600290910155600c80549182018082559293509182818380158290116109e0576000838152602090206109e09181019083015b808211156109dc57600081556001016109c8565b5090565b5b505050916000526020600020900160005b5082905550610a01565b610000565b5b5b505050565b600160a060020a0333166000908152600360205260409020541515610a2c57610000565b6101e333611d81565b5b5b565b6000600060006000600c80549050851015610a9a57600c85815481101561000057906000526020600020900160005b50546000818152600b6020526040902080546001820154600290920154600160a060020a039091169650909450925090505b5b509193909250565b6000600d546006541080610abc5750600654600d548101105b80610ace5750600e54600d5460065401105b15610adf57506000610aec56610aec565b50600e54600d5460065401035b5b90565b600654600d54600160a060020a03831660009081526003602090815260408083205483526004909152812060010154909291028115610000570490505b919050565b60075433600160a060020a03908116911614610b4d57610000565b6008805460a060020a60ff02191660a060020a1790556040517f3bb54b4ced112fe0d4fa7efd42b29a0a9036fde6e206de4290c4ff02d2dc2c5c90600090a15b5b565b60055481565b600654600e54600160a060020a03831660009081526003602090815260408083205483526004909152812060010154909291028115610000570490505b919050565b600160a060020a0333166000908152600360205260409020541515610bfc57610000565b600954600160a060020a03161515610c1357610000565b60085460a060020a900460ff161515610c2b57610000565b33600160a060020a031660008181526003602090815260408083205483526004825291829020600201805460ff191660f860020a8681020417905581519283528315159083015280517fea22ee15de9c385abeff072b23d6e0de5ebda8c59098f5585f45e82b9faa57629281900390910190a15b5b5b5b50565b60075433600160a060020a03908116911614610cc057610000565b600160a060020a0381161515610cd557610000565b60088054600160a060020a031916606060020a83810204179081905560408051600160a060020a039283168152918316602083015280517fb750ac854b12114073b8c76dcfe5fb889b30db5d3d60e07abc8ae66c349d7a689281900390910190a15b5b50565b600754600090819033600160a060020a03908116911614610d5b57610000565b505060055460015b818111610db157600160005260046020527fabd6e7cb50984ff9c2f3e18a2660c3353dadf4e3291deeb275dae2cd1e44fe0554610da890600160a060020a0316611d81565b5b600101610d63565b5b5b5050565b610db182826000604051805910610dcb5750595b8181526020808302820101604052905b50610de6565b5b5050565b6000610df0611fad565b600160a060020a031633600160a060020a0316141515610e0f57610000565b6000848152600b60205260409020548490600160a060020a03161515610e3457610000565b6000858152600b60205260408120600201548691901115610e5457610000565b85856000610e61826120c6565b90506001811080610e73575061271081115b8015610e8e57506000838152600b6020526040902060020154155b15610eca576000838152600b602052604090206201869f60028201558054600190910154610ec591600160a060020a0316906120db565b611010565b88612710610ed6610aa3565b6064028115610000576000838152600b602052604090206001015491900490611d4c90610906020411158015610f2657506000818152600b60205260409020600101546702c68af0bb1400009010155b15610fda57610f34896120c6565b60008b8152600b60209081526040918290206002810184905582516060810184528154600160a060020a0316815260019091015491810191909152908101829052909750610f82908861228f565b60008a8152600b602090815260409182902082516060810184528154600160a060020a031681526001820154928101929092526002015491810191909152610fca908861234c565b600f805460ff191690555b61100c565b6000818152600b602052604090206201869f60028201558054600190910154610fd591600160a060020a0316906120db565b5b5b505b5050505b505b505b50505050565b60085460a060020a900460ff1681565b600460205260009081526040902080546001820154600290920154600160a060020a03909116919060ff1683565b60006001805b60055481116110c05760008281526004602052604090205461108c90600160a060020a031661195b565b6000828152600460205260409020546110ad90600160a060020a031661195b565b10156110b7578091505b5b600101611062565b8192505b505090565b60085460009060a060020a900460ff1615156110e457610000565b60075433600160a060020a039081169116146110ff57610000565b5060015b600554811161112e576000818152600460205260409020600201805460ff191690555b600101611103565b60408051808201825283815242602090910181905260098054600160a060020a031916606060020a80870204179055600a55517f6c0eb56f121418f16eaebbe01cb2694897b8578b3b1c549e634a1b7753ed2d8b90600090a15b5b5b5050565b60006000600060006000600060006000600060006111aa610aa3565b91506111b46113eb565b600e54600d54600c54949c50611d4c9b5060be9a50606499506702c68af0bb14000098500395509350909150889050825b50509091929394959697565b60075433600160a060020a0390811691161461120c57610000565b600160f860020a03198116151561122257610000565b610c9f60f860020a8217612437565b5b5b50565b60075433600160a060020a0390811691161461125157610000565b60085460a060020a900460ff16151561126957610000565b61127281611d81565b60098054600160a060020a03191690556000600a555b5b5b50565b600954600a54600160a060020a039091169082565b60008054604080516020908101849052815160e060020a6338cc4831028152915184938493600160a060020a03909116926338cc48319260048084019382900301818787803b156100005760325a03f11561000057505060408051805160025460006020938401819052845160e260020a630bbceb330281526202ab989092016024830152600482018590526003604483015260ea60020a621554930260648301529351600160a060020a039092169450632ef3accc9360848083019493928390030190829087803b156100005760325a03f1156100005750506040515192506301607a609050611d4c611394610aa3565b6064020281156100005704905081810192505b505090565b600e5481565b600d5481565b60036020526000908152604090205481565b600c81815481101561000057906000526020600020900160005b5054905081565b60006000600a60055414156114315761140261105c565b60008181526004602052604090205490915061142690600160a060020a031661195b565b91506109dc566109dc565b600091506109dc565b5b5090565b60008054604080516020908101849052815160e060020a6338cc483102815291518493600160a060020a0316926338cc483192600480830193919282900301818787803b156100005760325a03f11561000057505060408051805160025460006020938401819052845160e260020a630bbceb330281526202ab989092016024830152600482018590526003604483015260ea60020a621554930260648301529351600160a060020a039092169450632ef3accc9360848083019493928390030190829087803b156100005760325a03f115610000575050604051516702c68af0bb140000810193509150505b5090565b60075433600160a060020a0390811691161461154b57610000565b600160a060020a038116151561156057610000565b60078054600160a060020a031916606060020a83810204179081905560408051600160a060020a039283168152918316602083015280517f4f67fe223bca69f22bf24552638f3c95bfb9e9763c4a33a3aa67a46484d81c2b9281900390910190a15b5b50565b600754600160a060020a031681565b60085460a060020a900460ff16156115ec57610000565b3415156115f857610000565b600160a060020a033316600090815260036020526040902054151561161c57610000565b61162461254e565b600160a060020a0333166000908152600360209081526040808320548352600490915290206001018054349081019091556006805490910190555b5b5b5b565b60075433600160a060020a0390811691161461167f57610000565b6008805460a060020a60ff02191690556040517fadf8f79dd508a8e1881e3cca67a5af02a21f971925c3a6a6cb8fc165d07e346390600090a15b5b565b600b60205260009081526040902080546001820154600290920154600160a060020a03909116919083565b60065481565b60075433600160a060020a0390811691161461170857610000565b806202ab98816202ab9801101561171e57610000565b6161a881101561172d57610000565b6002829055604080518381526020810184905281517fb5e4ece1f96cc168fddcead7ee209f969a93607238c585767ea80fad5fe884b2929181900390910190a15b5b505b50565b600854600160a060020a031681565b60075433600160a060020a0390811691161461179e57610000565b610c9f816126e9565b5b5b50565b600c545b90565b6007546000908190819033600160a060020a039081169116146117d557610000565b600954600160a060020a031615156117ec57610000565b60085460a060020a900460ff16151561180457610000565b426203f48060096001015401111561181b57610000565b5050600160a060020a0330163160015b600554811161187c5760008181526004602052604090206002015460ff16151560011415611873576000818152600460205260409020600201805460ff191690556001909201915b5b60010161182b565b600554606490600a020483106109fc57600954604051600160a060020a039091169083156108fc029084906000818181858888f1935050505015156118ff5760095460408051600160a060020a039092168252517f0fd1ed783bf9505e3fc2545a18e022b8bd048d240d98a3c959646ccebd569b399181900360200190a1611947565b60095460408051600160a060020a0390921682526020820184905280517fe0376e740df28d6cbdef46880b37136bc75e027766e3295d4af8a44c557ae7329281900390910190a15b610a01565b610000565b5b5b5b5b5b505050565b600160a060020a03811660009081526003602090815260408083205483526004909152812060010154818061198f85610af0565b915061199a85610b96565b90508182840110806119ad575082828401105b806119b9575080828401105b156119cb57600093506119d3566119d3565b808284010393505b5b505050919050565b60085460009060a060020a900460ff16156119f657610000565b341515611a0257610000565b600160a060020a03331660009081526003602052604090205415611a2557610000565b611a2d6113eb565b3411611a3857610000565b611a4061254e565b600a6005541415611a7757611a5361105c565b600081815260046020526040902054909150611a7790600160a060020a0316611d81565b5b6005805460010190819055611a8c906127f7565b5b600a6005541115610c9f57610000565b5b5b5b5b5b50565b600080548190600160a060020a03161515611ac657611ac4600061288c565b505b600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f1156100005750505060405180519060200150600160006101000a815481600160a060020a030219169083606060020a908102040217905550600160009054906101000a9004600160a060020a0316600160a060020a0316632ef3accc86856000604051602001526040518360e060020a02815260040180806020018381526020018281038252848181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f168015611bf65780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b156100005760325a03f11561000057505060405151915050670de0b6b3a76400003a840201811115611c3f5760009150611d78565b600160009054906101000a9004600160a060020a0316600160a060020a031663c51be90f8260008888886000604051602001526040518660e060020a0281526004018085815260200180602001806020018481526020018381038352868181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f168015611cee5780820380516001836020036101000a031916815260200191505b508381038252858181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f168015611d475780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b156100005761235a5a03f11561000057505060405151935050505b5b509392505050565b6000600060006000611d9161254e565b600160a060020a0385166000908152600360205260409020549350611db58561195b565b6000858152600460205260409020600101546006549194509010611f54576000848152600460209081526040808320600181018054600680549190910390558154600160a060020a0319168255849055600201805460ff19169055600160a060020a038816835260039091528120556005546127106032850204938490039392508414611ee157506005805460009081526004602081815260408084208054600160a060020a039081168652600384528286208a90558986529390925280842082548154606060020a91909516810204600160a060020a031994851617815560018084015482820155600280850154928101805460f860020a60ff90951685029490940460ff199485161790559654865291852080549094168455908301939093559201805490911690555b60058054600019019055611ef585846120db565b600854611f0b90600160a060020a0316836120db565b60408051600160a060020a03871681526020810185905281517f3026a12843449d7e7377f8932a40bdb5d1b1125efbfbe147132016f8beac0f34929181900390910190a1611f94565b6008805460a060020a60ff02191660a060020a1790556040517f52e578ad17dc8fe0ff456fdf1f81516f7d29eb85fff301475a3a29d0e84bb31a90600090a15b5b600a600554111561101657610000565b5b5050505050565b60008054600160a060020a03161515611fcc57611fca600061288c565b505b600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060408051805160018054600160a060020a031916606060020a9283029290920491909117908190556000602092830181905283517fc281d19e0000000000000000000000000000000000000000000000000000000081529351600160a060020a03909216945063c281d19e936004808201949392918390030190829087803b156100005760325a03f115610000575050604051519150505b5b90565b60006120d3826000612990565b90505b919050565b801515612110576040517f4763e3feef50167ae1957a20ba2b75b5f4093062392e81d5e351b709b1d8261f90600090a1610db1565b8030600160a060020a0316311015612150576040517f504b0ae89b95779262e99243870eb936180a8c33b444f17f01807c40a20c7aa790600090a1610db1565b600254604051600160a060020a038416919083906000818181858888f1935050505015156122445760408051600160a060020a03841681526020810183905281517f949201d78c50a6b453f7068ed19a5c7d74aaa07c12cadfd3855357a0b0f47405929181900390910190a1600854600160a060020a0383811691161461224457600854600254604051600160a060020a039092169183906000818181858888f1935050505015156122445760085460408051600160a060020a0390921682526020820183905280517f949201d78c50a6b453f7068ed19a5c7d74aaa07c12cadfd3855357a0b0f474059281900390910190a15b5b5b60408051600160a060020a03841681526020810183905281517fc7e416c5685d8971558840f05c5e63e02575b29997d8da6b9ba44dc10da6a370929181900390910190a15b5050565b600081611d4c600182031015611018576020840151611d4c90612652020491507fa5acb022726d980b249ddc212f4992ad87f28c093550232fcc48bd8af803f2d5846000015184846040518084600160a060020a03168152602001838152602001828152602001935050505060405180910390a1835161230f90836120db565b600e5482810110806123285750836020015182600e5401105b1561233257610000565b6020840151600e805491840390910190555b5b5b50505050565b60008082611d4c60001982011061101657845160408051600160a060020a0390921682526020820186905280517ff6db2bace4ac8277384553ad9603d045220a91fb2448ab6130d7a6f044f9a8cf9281900390910190a184516123b09060016120db565b600d546020860151810110806123cd57506020850151600d548101105b806123dc575084602001516001145b156123e657610000565b6020850151600d5481016000199081019450612710916126b6910102600d8054929091049190910190819055600854908403925061101690600160a060020a0316836120db565b5b5b5b5050505050565b600054600160a060020a0316151561245557612453600061288c565b505b600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060408051805160018054600160a060020a031916606060020a9283029290920491909117908190557f688dcfd7000000000000000000000000000000000000000000000000000000008252600160f860020a0319851660048301529151600160a060020a03909216925063688dcfd791602480830192600092919082900301818387803b156100005760325a03f115610000575050505b5b50565b600f54600090819081908190819060ff16151561101657600193505b60055484116126c357600084815260046020526040902054600160a060020a0316925061259683610af0565b91506125a183610b96565b600085815260046020526040902060010154909150828101108015906125db57506000848152600460205260409020600101548201819010155b156126445760008481526004602090815260409182902060010180548486039081019091558251600160a060020a03871681529182015281517f8ff49347da9034aab52b79ac6b2ba8cf17d221516834af5e5fa04bef1df4d7cd929181900390910190a1612684565b6008805460a060020a60ff02191660a060020a1790556040517f52e578ad17dc8fe0ff456fdf1f81516f7d29eb85fff301475a3a29d0e84bb31a90600090a15b60008481526004602052604090206001015485018590106126b75760008481526004602052604090206001015494909401935b5b60019093019261256a565b6000600d819055600e556006859055600f805460ff191660011790555b5b5b5050505050565b600054600160a060020a0316151561270757612705600061288c565b505b600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060408051805160018054600160a060020a031916606060020a9283029290920491909117908190557fe8a5282d000000000000000000000000000000000000000000000000000000008252600482018590529151600160a060020a03909216925063e8a5282d91602480830192600092919082900301818387803b156100005760325a03f115610000575050505b5b50565b33600160a060020a038116600081815260036020908152604080832086905585835260048252918290208054600160a060020a031916606060020a958602959095049490941784553460019094018490556006805485019055815192835282019290925281517fa4a46f45c9996c78320ae470714f930acba653b022fddec1735c1400209780e4929181900390910190a15b50565b600060006128ad731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed612adb565b11156128e1575060008054600160a060020a031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed1790556001610b2d565b600061290073c03a2615d5efaf5f49f60b7bb6583eaec212fdf1612adb565b1115612934575060008054600160a060020a03191673c03a2615d5efaf5f49f60b7bb6583eaec212fdf11790556001610b2d565b60006129537351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa612adb565b1115612987575060008054600160a060020a0319167351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa1790556001610b2d565b5060005b919050565b6040805160208101909152600090819052828180805b8351811015612abb57603060f860020a02848281518110156100005790602001015160f860020a900460f860020a02600160f860020a03191610158015612a1b5750603960f860020a02848281518110156100005790602001015160f860020a900460f860020a02600160f860020a03191611155b15612a76578115612a3e57851515612a3657612abb56612a3e565b600019909501945b5b600a830292506030848281518110156100005790602001015160f860020a900460f860020a0260f860020a90040383019250612ab1565b838181518110156100005790602001015160f860020a900460f860020a02600160f860020a031916602e60f860020a021415612ab157600191505b5b5b6001016129a6565b6000861115612acd5785600a0a830292505b8294505b5050505092915050565b803b5b919050565b55524c5d205b276a736f6e2868747470733a2f2f6170692e72616e646f6d2e6f72672f6a736f6e2d7270632f312f696e766f6b65292e726573756c742e72616e646f6d2e646174612e30272c20275c6e7b226a736f6e727063223a22322e30222c226d6574686f64223a2267656e65726174655369676e6564496e746567657273222c22706172616d73223a7b226170694b6579223a247b5b646563727970745d20424d6d6b454b5563636745342f6b2b494b62363530434c77512f4143656f774a366130657251444471586e31586f54694b52586b7730543364645063356c3679554a382f6c45556433445647376e7776432f4e396a59354e4767654e5534587669364870576a71726576696e536b61644c33524c30763277396672383768642f7355526e37375737573857506f7856482b4b384537342b305848663576616b3d7d2c226e223a312c226d696e223a312c226d6178223a3130303030247b5b6964656e746974795d20227d227d2c226964223a31247b5b6964656e746974795d20227d227d275d

 

View All
Block Age txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "downvote" button for any spammy posts, and the "upvote" for interesting conversations.