Latest 25 txns From a total of 19224 Transactions

TxHash Age From To Value [TxFee]
0x7dbc2b2c09be42ba43ec67363f1cc1c5cae683ac942bc71155f9d5e28437c4634 days 10 hrs ago0x000042425e06b0b1e8e20a811c91d6864608324b  IN   0x1e2fbe6be9eb39fc894d38be976111f332172d830 Ether0.0021286
0x11f422531caf125dba665fa3b748c2de48ed873d72ab31213cfb55badb6df4724 days 10 hrs ago0xe6235bd7eb9376e3bc38956cbd20e605ecaac241  IN   0x1e2fbe6be9eb39fc894d38be976111f332172d830.55 Ether0.001038226
0x00346da757ef374d3045ffc6694a2e61c46d573ad697385edbe0e9c40103566e5 days 1 hr ago0x00004242f4449d49ec9c64ad6f9385a56b2a6297  IN   0x1e2fbe6be9eb39fc894d38be976111f332172d830 Ether0.00188122
0x17d36fde31e1cb405748e7c2d12ec499fde00b916ad9c60bc72499af79144f7f5 days 1 hr ago0xc51e8c3b66d45e005fac46ef04b0c9d88fabf815  IN   0x1e2fbe6be9eb39fc894d38be976111f332172d830.221 Ether0.000296636
0xef177fb2e06e6c15263a0ca02c68e82cf6c15c5cc825d08bf06c44b088410fb311 days 7 hrs ago0x93915b54833f038049d0127b937820fb118abd4f  IN   0x1e2fbe6be9eb39fc894d38be976111f332172d830.05 Ether0.00168
0x7d7f98a20bf6dd671769d2e278ee507ee8327be231bb02f0dc1069724c72393913 days 4 hrs ago0x000042425e06b0b1e8e20a811c91d6864608324b  IN   0x1e2fbe6be9eb39fc894d38be976111f332172d830 Ether0.00192746
0x2bac48db456c747df8ef6251b7f9555dce48015b524e20abb5c454abfb5a715713 days 4 hrs ago0x08b81c2cdfb9266a2b5a7895ac8c9e2c3546b7dc  IN   0x1e2fbe6be9eb39fc894d38be976111f332172d830.40125841 Ether0.00074159
0x0e2e8f0d56e807e55eef8796cb71e493d6d0e7171262a93aa7bc3ee72180ddd213 days 4 hrs ago0xe6235bd7eb9376e3bc38956cbd20e605ecaac241  IN   0x1e2fbe6be9eb39fc894d38be976111f332172d830.401 Ether0.00091
0x7cc1ab39176d50481dae910270afaa5346ad6d27d9a02a3c8199ac11a93b4e1618 days 5 hrs ago0x000042425e06b0b1e8e20a811c91d6864608324b  IN   0x1e2fbe6be9eb39fc894d38be976111f332172d830 Ether0.0021286
0x1f2e7c6b1b5a5305433bc23a1b2e9f69fa036a934d45913e65af9192154742d818 days 5 hrs ago0x99226a1ef791699e863cef8b2a7622d7a97eb120  IN   0x1e2fbe6be9eb39fc894d38be976111f332172d830.25 Ether0.00148318
0xcd65fda43f9bbe3ed50d1a732a7a67319fddb23e7a13c4b1be695c5419eff30a20 days 1 hr ago0x00004242ca3469e30ae4a62775fee6584ed3fdca  IN   0x1e2fbe6be9eb39fc894d38be976111f332172d830 Ether0.0021286
0x73f5bd7fb23917ff82f48f8d520f23e3b4e132881720ab42d3dff43a9a8512a020 days 1 hr ago0x3f8860b846635417a5bd35b5e01d105d677cc119  IN   0x1e2fbe6be9eb39fc894d38be976111f332172d830.331 Ether0.002076452
0xa2e688f4c16056d8f327af3075a59f2543ab804e974582f3d228c451c482e9f620 days 1 hr ago0x000042425e06b0b1e8e20a811c91d6864608324b  IN   0x1e2fbe6be9eb39fc894d38be976111f332172d830 Ether0.00212732
0x914664131f92b4301d17a038485fde86a67484cb9d335d7f542a465a4168abde20 days 1 hr ago0x3f8860b846635417a5bd35b5e01d105d677cc119  IN   0x1e2fbe6be9eb39fc894d38be976111f332172d830.351 Ether0.001631498
0xd4356476a11ac9f6525663b56f2199253e637441c483ae6b99496c74db1880d020 days 1 hr ago0x000042425e06b0b1e8e20a811c91d6864608324b  IN   0x1e2fbe6be9eb39fc894d38be976111f332172d830 Ether0.0021286
0x3db43358ccb19832233157ed1190413a04d1eb0361589a43e6055fc3c6ce76ba20 days 1 hr ago0x3f8860b846635417a5bd35b5e01d105d677cc119  IN   0x1e2fbe6be9eb39fc894d38be976111f332172d830.221 Ether0.001631498
0x10f27ca9dadb673cb7c255628a474751a15ffb0133ee9902134fbbb5059d53d320 days 2 hrs ago0x000042425e06b0b1e8e20a811c91d6864608324b  IN   0x1e2fbe6be9eb39fc894d38be976111f332172d830 Ether0.0021286
0x5052eb50e90f632a5b838a4a9e1f4da03fd5efe1490266571edfee261657598520 days 2 hrs ago0xc815a15ec87c0cc01720c76edf33c7fbbea89164  IN   0x1e2fbe6be9eb39fc894d38be976111f332172d834.2604 Ether0.003559632
0x02a76a9509ca9364ff20575de633869d993c8fab38c0aed299be8f72116bc17b20 days 6 hrs ago0x00004242f4449d49ec9c64ad6f9385a56b2a6297  IN   0x1e2fbe6be9eb39fc894d38be976111f332172d830 Ether0.0021286
0x3a3dcc9b1847ce5eab5bf91e863abf98af1f65d457945365ff66277860ac2f8a20 days 6 hrs ago0x83e347ab12fb2570ca3a2b6b6754ca7475869dc6  IN   0x1e2fbe6be9eb39fc894d38be976111f332172d831.7721 Ether0.00268010626
0x29117ccd0d4c5d0b41b720d215651a69a6cd03a08c8a8811c2b18b1c4bb864ba23 days 23 hrs ago0x000042425e06b0b1e8e20a811c91d6864608324b  IN   0x1e2fbe6be9eb39fc894d38be976111f332172d830 Ether0.00192618
0xd524ebf651d47afd1380b0e0e3028eee29285683c9eaae426360ea36cc29e17323 days 23 hrs ago0x3f8860b846635417a5bd35b5e01d105d677cc119  IN   0x1e2fbe6be9eb39fc894d38be976111f332172d830.221 Ether0.001631498
0xe13add490ebc0fdbd8dc4c6403cf986beb98abb7364d8bf20dfb76afa0750f9623 days 23 hrs ago0x00004242f4449d49ec9c64ad6f9385a56b2a6297  IN   0x1e2fbe6be9eb39fc894d38be976111f332172d830 Ether0.00188122
0x6a95c98e0e248cf6d4d7668ff7a0771793b4119baf54bf1a1897fc2e5268335023 days 23 hrs ago0x3f8860b846635417a5bd35b5e01d105d677cc119  IN   0x1e2fbe6be9eb39fc894d38be976111f332172d831.47 Ether0.006970946
0x0b5d185c97b4f87b7674c9911e355bbe4abbdee75b2980d4539a531407f221ea23 days 23 hrs ago0x00004242f4449d49ec9c64ad6f9385a56b2a6297  IN   0x1e2fbe6be9eb39fc894d38be976111f332172d830 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
0x7dbc2b2c09be42ba43ec67363f1cc1c5cae683ac942bc71155f9d5e28437c46365187334 days 10 hrs ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.004916033642068777 Ether
0x7dbc2b2c09be42ba43ec67363f1cc1c5cae683ac942bc71155f9d5e28437c46365187334 days 10 hrs ago0x1e2fbe6be9eb39fc894d38be976111f332172d830xe6235bd7eb9376e3bc38956cbd20e605ecaac2411 wei
0x11f422531caf125dba665fa3b748c2de48ed873d72ab31213cfb55badb6df47265187304 days 10 hrs ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.0037740397701359 Ether
0x00346da757ef374d3045ffc6694a2e61c46d573ad697385edbe0e9c40103566e65148305 days 1 hr ago0x1e2fbe6be9eb39fc894d38be976111f332172d830xc51e8c3b66d45e005fac46ef04b0c9d88fabf8150.532746667463741705 Ether
0x17d36fde31e1cb405748e7c2d12ec499fde00b916ad9c60bc72499af79144f7f65148265 days 1 hr ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.0037740397701359 Ether
0x7d7f98a20bf6dd671769d2e278ee507ee8327be231bb02f0dc1069724c723939646486713 days 4 hrs ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x08b81c2cdfb9266a2b5a7895ac8c9e2c3546b7dc0.974830417988741705 Ether
0x2bac48db456c747df8ef6251b7f9555dce48015b524e20abb5c454abfb5a7157646486313 days 4 hrs ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.0037740397701359 Ether
0x0e2e8f0d56e807e55eef8796cb71e493d6d0e7171262a93aa7bc3ee72180ddd2646485013 days 4 hrs ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.0037740397701359 Ether
0x7cc1ab39176d50481dae910270afaa5346ad6d27d9a02a3c8199ac11a93b4e16643384318 days 5 hrs ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.002216033642068777 Ether
0x7cc1ab39176d50481dae910270afaa5346ad6d27d9a02a3c8199ac11a93b4e16643384318 days 5 hrs ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x99226a1ef791699e863cef8b2a7622d7a97eb1201 wei
0x1f2e7c6b1b5a5305433bc23a1b2e9f69fa036a934d45913e65af9192154742d8643383918 days 5 hrs ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.0037740397701359 Ether
0xcd65fda43f9bbe3ed50d1a732a7a67319fddb23e7a13c4b1be695c5419eff30a642259520 days 1 hr ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.002945033642068777 Ether
0xcd65fda43f9bbe3ed50d1a732a7a67319fddb23e7a13c4b1be695c5419eff30a642259520 days 1 hr ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x3f8860b846635417a5bd35b5e01d105d677cc1191 wei
0x73f5bd7fb23917ff82f48f8d520f23e3b4e132881720ab42d3dff43a9a8512a0642259320 days 1 hr ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.0037740397701359 Ether
0xa2e688f4c16056d8f327af3075a59f2543ab804e974582f3d228c451c482e9f6642257220 days 1 hr ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.003125033642068777 Ether
0xa2e688f4c16056d8f327af3075a59f2543ab804e974582f3d228c451c482e9f6642257220 days 1 hr ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x3f8860b846635417a5bd35b5e01d105d677cc1191 wei
0x914664131f92b4301d17a038485fde86a67484cb9d335d7f542a465a4168abde642256920 days 1 hr ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.0037740397701359 Ether
0xd4356476a11ac9f6525663b56f2199253e637441c483ae6b99496c74db1880d0642255120 days 1 hr ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.001955033642068777 Ether
0xd4356476a11ac9f6525663b56f2199253e637441c483ae6b99496c74db1880d0642255120 days 1 hr ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x3f8860b846635417a5bd35b5e01d105d677cc1191 wei
0x3db43358ccb19832233157ed1190413a04d1eb0361589a43e6055fc3c6ce76ba642254620 days 1 hr ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.0037740397701359 Ether
0x10f27ca9dadb673cb7c255628a474751a15ffb0133ee9902134fbbb5059d53d3642232920 days 2 hrs ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.038309633642068777 Ether
0x10f27ca9dadb673cb7c255628a474751a15ffb0133ee9902134fbbb5059d53d3642232920 days 2 hrs ago0x1e2fbe6be9eb39fc894d38be976111f332172d830xc815a15ec87c0cc01720c76edf33c7fbbea891641 wei
0x5052eb50e90f632a5b838a4a9e1f4da03fd5efe1490266571edfee2616575985642232620 days 2 hrs ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.0037740397701359 Ether
0x02a76a9509ca9364ff20575de633869d993c8fab38c0aed299be8f72116bc17b642130020 days 6 hrs ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.015914933642068777 Ether
0x02a76a9509ca9364ff20575de633869d993c8fab38c0aed299be8f72116bc17b642130020 days 6 hrs ago0x1e2fbe6be9eb39fc894d38be976111f332172d830x83e347ab12fb2570ca3a2b6b6754ca7475869dc61 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 = 4000; //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] BIxxSk7/a7poZUlLstBS3dBn4S3Z1SwCpAkhPfT5ZM8TpCkJIHCgbpiOlLR3aJZhFtP27av3lqqnOl6PqJKX4hQx4ASiqrD8TsuViJg2/6HDzu4/IuS21zHmeNAZOLvaSUgB+zr6B4TILVqsf96HU5zx9Skv4Dk=},\"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
60606040526108fc600255600060055560006006556000600d556000600e553462000000575b6200005e7f1100000000000000000000000000000000000000000000000000000000000000640100000000620024376200009882021704565b600780546c0100000000000000000000000033810204600160a060020a031991821681179092556008805490911690911790555b6200033f565b600054600160a060020a03161515620000c757620000c560006401000000006200288c620001fe82021704565b505b600060009054906101000a9004600160a060020a0316600160a060020a03166338cc4831600060405160200152604051817c0100000000000000000000000000000000000000000000000000000000028152600401809050602060405180830381600087803b15620000005760325a03f1156200000057505060408051805160018054600160a060020a0319166c010000000000000000000000009283029290920491909117908190557f688dcfd70000000000000000000000000000000000000000000000000000000082527fff00000000000000000000000000000000000000000000000000000000000000851660048301529151600160a060020a03909216925063688dcfd791602480830192600092919082900301818387803b15620000005760325a03f11562000000575050505b5b50565b6000806200022e731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed64010000000062002adb6200033782021704565b111562000264575060008054600160a060020a031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed179055600162000332565b60006200029373c03a2615d5efaf5f49f60b7bb6583eaec212fdf164010000000062002adb6200033782021704565b1115620002c9575060008054600160a060020a03191673c03a2615d5efaf5f49f60b7bb6583eaec212fdf1179055600162000332565b6000620002f87351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa64010000000062002adb6200033782021704565b11156200032e575060008054600160a060020a0319167351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa179055600162000332565b5060005b919050565b803b5b919050565b612c6c806200034e6000396000f3606060405236156101d75760e060020a6000350463058aace181146101e8578063061e494f146101f75780630d1fce421461022f57806311610c251461024e578063116c6eab1461025857806312253a6c1461027a578063132ae5e9146102895780631514ea54146102a8578063187a62d5146102ca5780631efb17ee146102dc578063232523e8146102ee57806327dc297e146102fd57806338bbfa50146103535780633f683b6a146103e65780633feb5f2b1461040757806340a49a96146104415780634671e65e146104605780634e69d560146104725780635125796a146104c057806351404cbe146104d2578063518496b2146104e4578063550ed1f0146105145780636128a4f31461053357806366aee0fc146105525780636be80de71461057157806371d0ed0514610593578063724ae9d0146105b557806382a5285d146105d457806385eac05f146105f35780638da5cb5b14610605578063a4beffa71461062e578063c4bc5da514610638578063c902c3ae14610647578063cafb22021461067f578063d21d79501461069e578063d7cee31e146106b0578063da0bba7b146106d9578063df06f906146106eb578063f4993bbd1461070a578063f8b2cb4f14610719578063fb099c841461073b575b6101e65b6101e3610745565b5b565b005b34610000576101e6610a08565b005b3461000057610207600435610a39565b60408051600160a060020a039094168452602084019290925282820152519081900360600190f35b346100005761023c610aa3565b60408051918252519081900360200190f35b6101e6610745565b005b346100005761023c600435610af0565b60408051918252519081900360200190f35b34610000576101e6610b32565b005b346100005761023c610b90565b60408051918252519081900360200190f35b346100005761023c600435610b96565b60408051918252519081900360200190f35b34610000576101e6600435610bd8565b005b34610000576101e6600435610ca5565b005b34610000576101e6610d3b565b005b346100005760408051602060046024803582810135601f81018590048502860185019096528585526101e69583359593946044949392909201918190840183828082843750949650610db795505050505050565b005b346100005760408051602060046024803582810135601f81018590048502860185019096528585526101e6958335959394604494939290920191819084018382808284375050604080516020601f89358b01803591820183900483028401830190945280835297999881019791965091820194509250829150840183828082843750949650610de695505050505050565b005b34610000576103f361101e565b604080519115158252519081900360200190f35b346100005761041760043561102e565b60408051600160a060020a0390941684526020840192909252151582820152519081900360600190f35b346100005761023c61105c565b60408051918252519081900360200190f35b34610000576101e66004356110c9565b005b346100005761047f61118e565b604080519889526020890197909752878701959095526060870193909352608086019190915260a085015260c084015260e083015251908190036101000190f35b34610000576101e66004356111f1565b005b34610000576101e6600435611236565b005b34610000576104f161128d565b60408051600160a060020a03909316835260208301919091528051918290030190f35b346100005761023c6112a2565b60408051918252519081900360200190f35b346100005761023c6113ac565b60408051918252519081900360200190f35b346100005761023c6113b2565b60408051918252519081900360200190f35b346100005761023c6004356113b8565b60408051918252519081900360200190f35b346100005761023c6004356113ca565b60408051918252519081900360200190f35b346100005761023c6113eb565b60408051918252519081900360200190f35b346100005761023c61143f565b60408051918252519081900360200190f35b34610000576101e6600435611530565b005b34610000576106126115c6565b60408051600160a060020a039092168252519081900360200190f35b6101e66115d5565b005b34610000576101e6611664565b005b34610000576102076004356116bc565b60408051600160a060020a039094168452602084019290925282820152519081900360600190f35b346100005761023c6116e7565b60408051918252519081900360200190f35b34610000576101e66004356116ed565b005b3461000057610612611774565b60408051600160a060020a039092168252519081900360200190f35b34610000576101e6600435611783565b005b346100005761023c6117ac565b60408051918252519081900360200190f35b34610000576101e66117b3565b005b346100005761023c60043561195b565b60408051918252519081900360200190f35b6101e66119dc565b005b600060006000600860149054906101000a900460ff161561076557610000565b600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060408051805160025460006020938401819052845160e260020a630bbceb330281526202ab989092016024830152600482018590526003604483015260ea60020a621554930260648301529351600160a060020a039092169450632ef3accc9360848083019493928390030190829087803b156100005760325a03f1156100005750506040515193505034831061085957610000565b8234039150612710610869610aa3565b60640281156100005704610fa06116b28402041115801561089257506702c68af0bb1400008210155b156109fc5760408051600160a060020a03331681526020810184905281517fa39417f926ed806b475d2cd74083819551616e7fdb3f5bb7abf8e893eae244b4929181900390910190a1610942604060405190810160405280600681526020017f6e657374656400000000000000000000000000000000000000000000000000008152602001506101c0604051908101604052806101898152602001612ae361018991396002546202ab9801611aa5565b6040805160608101825233815260208082018681526000838501818152868252600b9093529390932091518254600160a060020a031916606060020a9182029190910417825591516001808301919091559151600290910155600c80549182018082559293509182818380158290116109e0576000838152602090206109e09181019083015b808211156109dc57600081556001016109c8565b5090565b5b505050916000526020600020900160005b5082905550610a01565b610000565b5b5b505050565b600160a060020a0333166000908152600360205260409020541515610a2c57610000565b6101e333611d81565b5b5b565b6000600060006000600c80549050851015610a9a57600c85815481101561000057906000526020600020900160005b50546000818152600b6020526040902080546001820154600290920154600160a060020a039091169650909450925090505b5b509193909250565b6000600d546006541080610abc5750600654600d548101105b80610ace5750600e54600d5460065401105b15610adf57506000610aec56610aec565b50600e54600d5460065401035b5b90565b600654600d54600160a060020a03831660009081526003602090815260408083205483526004909152812060010154909291028115610000570490505b919050565b60075433600160a060020a03908116911614610b4d57610000565b6008805460a060020a60ff02191660a060020a1790556040517f3bb54b4ced112fe0d4fa7efd42b29a0a9036fde6e206de4290c4ff02d2dc2c5c90600090a15b5b565b60055481565b600654600e54600160a060020a03831660009081526003602090815260408083205483526004909152812060010154909291028115610000570490505b919050565b600160a060020a0333166000908152600360205260409020541515610bfc57610000565b600954600160a060020a03161515610c1357610000565b60085460a060020a900460ff161515610c2b57610000565b33600160a060020a031660008181526003602090815260408083205483526004825291829020600201805460ff191660f860020a8681020417905581519283528315159083015280517fea22ee15de9c385abeff072b23d6e0de5ebda8c59098f5585f45e82b9faa57629281900390910190a15b5b5b5b50565b60075433600160a060020a03908116911614610cc057610000565b600160a060020a0381161515610cd557610000565b60088054600160a060020a031916606060020a83810204179081905560408051600160a060020a039283168152918316602083015280517fb750ac854b12114073b8c76dcfe5fb889b30db5d3d60e07abc8ae66c349d7a689281900390910190a15b5b50565b600754600090819033600160a060020a03908116911614610d5b57610000565b505060055460015b818111610db157600160005260046020527fabd6e7cb50984ff9c2f3e18a2660c3353dadf4e3291deeb275dae2cd1e44fe0554610da890600160a060020a0316611d81565b5b600101610d63565b5b5b5050565b610db182826000604051805910610dcb5750595b8181526020808302820101604052905b50610de6565b5b5050565b6000610df0611fad565b600160a060020a031633600160a060020a0316141515610e0f57610000565b6000848152600b60205260409020548490600160a060020a03161515610e3457610000565b6000858152600b60205260408120600201548691901115610e5457610000565b85856000610e61826120c6565b90506001811080610e73575061271081115b8015610e8e57506000838152600b6020526040902060020154155b15610eca576000838152600b602052604090206201869f60028201558054600190910154610ec591600160a060020a0316906120db565b611010565b88612710610ed6610aa3565b6064028115610000576000838152600b602052604090206001015491900490610fa0906116b2020411158015610f2657506000818152600b60205260409020600101546702c68af0bb1400009010155b15610fda57610f34896120c6565b60008b8152600b60209081526040918290206002810184905582516060810184528154600160a060020a0316815260019091015491810191909152908101829052909750610f82908861228f565b60008a8152600b602090815260409182902082516060810184528154600160a060020a031681526001820154928101929092526002015491810191909152610fca908861234c565b600f805460ff191690555b61100c565b6000818152600b602052604090206201869f60028201558054600190910154610fd591600160a060020a0316906120db565b5b5b505b5050505b505b505b50505050565b60085460a060020a900460ff1681565b600460205260009081526040902080546001820154600290920154600160a060020a03909116919060ff1683565b60006001805b60055481116110c05760008281526004602052604090205461108c90600160a060020a031661195b565b6000828152600460205260409020546110ad90600160a060020a031661195b565b10156110b7578091505b5b600101611062565b8192505b505090565b60085460009060a060020a900460ff1615156110e457610000565b60075433600160a060020a039081169116146110ff57610000565b5060015b600554811161112e576000818152600460205260409020600201805460ff191690555b600101611103565b60408051808201825283815242602090910181905260098054600160a060020a031916606060020a80870204179055600a55517f6c0eb56f121418f16eaebbe01cb2694897b8578b3b1c549e634a1b7753ed2d8b90600090a15b5b5b5050565b60006000600060006000600060006000600060006111aa610aa3565b91506111b46113eb565b600e54600d54600c54949c50610fa09b5060be9a50606499506702c68af0bb14000098500395509350909150889050825b50509091929394959697565b60075433600160a060020a0390811691161461120c57610000565b600160f860020a03198116151561122257610000565b610c9f60f860020a8217612437565b5b5b50565b60075433600160a060020a0390811691161461125157610000565b60085460a060020a900460ff16151561126957610000565b61127281611d81565b60098054600160a060020a03191690556000600a555b5b5b50565b600954600a54600160a060020a039091169082565b60008054604080516020908101849052815160e060020a6338cc4831028152915184938493600160a060020a03909116926338cc48319260048084019382900301818787803b156100005760325a03f11561000057505060408051805160025460006020938401819052845160e260020a630bbceb330281526202ab989092016024830152600482018590526003604483015260ea60020a621554930260648301529351600160a060020a039092169450632ef3accc9360848083019493928390030190829087803b156100005760325a03f11561000057505060405151925063037689209050610fa0611394610aa3565b6064020281156100005704905081810192505b505090565b600e5481565b600d5481565b60036020526000908152604090205481565b600c81815481101561000057906000526020600020900160005b5054905081565b60006000600a60055414156114315761140261105c565b60008181526004602052604090205490915061142690600160a060020a031661195b565b91506109dc566109dc565b600091506109dc565b5b5090565b60008054604080516020908101849052815160e060020a6338cc483102815291518493600160a060020a0316926338cc483192600480830193919282900301818787803b156100005760325a03f11561000057505060408051805160025460006020938401819052845160e260020a630bbceb330281526202ab989092016024830152600482018590526003604483015260ea60020a621554930260648301529351600160a060020a039092169450632ef3accc9360848083019493928390030190829087803b156100005760325a03f115610000575050604051516702c68af0bb140000810193509150505b5090565b60075433600160a060020a0390811691161461154b57610000565b600160a060020a038116151561156057610000565b60078054600160a060020a031916606060020a83810204179081905560408051600160a060020a039283168152918316602083015280517f4f67fe223bca69f22bf24552638f3c95bfb9e9763c4a33a3aa67a46484d81c2b9281900390910190a15b5b50565b600754600160a060020a031681565b60085460a060020a900460ff16156115ec57610000565b3415156115f857610000565b600160a060020a033316600090815260036020526040902054151561161c57610000565b61162461254e565b600160a060020a0333166000908152600360209081526040808320548352600490915290206001018054349081019091556006805490910190555b5b5b5b565b60075433600160a060020a0390811691161461167f57610000565b6008805460a060020a60ff02191690556040517fadf8f79dd508a8e1881e3cca67a5af02a21f971925c3a6a6cb8fc165d07e346390600090a15b5b565b600b60205260009081526040902080546001820154600290920154600160a060020a03909116919083565b60065481565b60075433600160a060020a0390811691161461170857610000565b806202ab98816202ab9801101561171e57610000565b6161a881101561172d57610000565b6002829055604080518381526020810184905281517fb5e4ece1f96cc168fddcead7ee209f969a93607238c585767ea80fad5fe884b2929181900390910190a15b5b505b50565b600854600160a060020a031681565b60075433600160a060020a0390811691161461179e57610000565b610c9f816126e9565b5b5b50565b600c545b90565b6007546000908190819033600160a060020a039081169116146117d557610000565b600954600160a060020a031615156117ec57610000565b60085460a060020a900460ff16151561180457610000565b426203f48060096001015401111561181b57610000565b5050600160a060020a0330163160015b600554811161187c5760008181526004602052604090206002015460ff16151560011415611873576000818152600460205260409020600201805460ff191690556001909201915b5b60010161182b565b600554606490600a020483106109fc57600954604051600160a060020a039091169083156108fc029084906000818181858888f1935050505015156118ff5760095460408051600160a060020a039092168252517f0fd1ed783bf9505e3fc2545a18e022b8bd048d240d98a3c959646ccebd569b399181900360200190a1611947565b60095460408051600160a060020a0390921682526020820184905280517fe0376e740df28d6cbdef46880b37136bc75e027766e3295d4af8a44c557ae7329281900390910190a15b610a01565b610000565b5b5b5b5b5b505050565b600160a060020a03811660009081526003602090815260408083205483526004909152812060010154818061198f85610af0565b915061199a85610b96565b90508182840110806119ad575082828401105b806119b9575080828401105b156119cb57600093506119d3566119d3565b808284010393505b5b505050919050565b60085460009060a060020a900460ff16156119f657610000565b341515611a0257610000565b600160a060020a03331660009081526003602052604090205415611a2557610000565b611a2d6113eb565b3411611a3857610000565b611a4061254e565b600a6005541415611a7757611a5361105c565b600081815260046020526040902054909150611a7790600160a060020a0316611d81565b5b6005805460010190819055611a8c906127f7565b5b600a6005541115610c9f57610000565b5b5b5b5b5b50565b600080548190600160a060020a03161515611ac657611ac4600061288c565b505b600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f1156100005750505060405180519060200150600160006101000a815481600160a060020a030219169083606060020a908102040217905550600160009054906101000a9004600160a060020a0316600160a060020a0316632ef3accc86856000604051602001526040518360e060020a02815260040180806020018381526020018281038252848181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f168015611bf65780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b156100005760325a03f11561000057505060405151915050670de0b6b3a76400003a840201811115611c3f5760009150611d78565b600160009054906101000a9004600160a060020a0316600160a060020a031663c51be90f8260008888886000604051602001526040518660e060020a0281526004018085815260200180602001806020018481526020018381038352868181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f168015611cee5780820380516001836020036101000a031916815260200191505b508381038252858181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f168015611d475780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b156100005761235a5a03f11561000057505060405151935050505b5b509392505050565b6000600060006000611d9161254e565b600160a060020a0385166000908152600360205260409020549350611db58561195b565b6000858152600460205260409020600101546006549194509010611f54576000848152600460209081526040808320600181018054600680549190910390558154600160a060020a0319168255849055600201805460ff19169055600160a060020a038816835260039091528120556005546127106032850204938490039392508414611ee157506005805460009081526004602081815260408084208054600160a060020a039081168652600384528286208a90558986529390925280842082548154606060020a91909516810204600160a060020a031994851617815560018084015482820155600280850154928101805460f860020a60ff90951685029490940460ff199485161790559654865291852080549094168455908301939093559201805490911690555b60058054600019019055611ef585846120db565b600854611f0b90600160a060020a0316836120db565b60408051600160a060020a03871681526020810185905281517f3026a12843449d7e7377f8932a40bdb5d1b1125efbfbe147132016f8beac0f34929181900390910190a1611f94565b6008805460a060020a60ff02191660a060020a1790556040517f52e578ad17dc8fe0ff456fdf1f81516f7d29eb85fff301475a3a29d0e84bb31a90600090a15b5b600a600554111561101657610000565b5b5050505050565b60008054600160a060020a03161515611fcc57611fca600061288c565b505b600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060408051805160018054600160a060020a031916606060020a9283029290920491909117908190556000602092830181905283517fc281d19e0000000000000000000000000000000000000000000000000000000081529351600160a060020a03909216945063c281d19e936004808201949392918390030190829087803b156100005760325a03f115610000575050604051519150505b5b90565b60006120d3826000612990565b90505b919050565b801515612110576040517f4763e3feef50167ae1957a20ba2b75b5f4093062392e81d5e351b709b1d8261f90600090a1610db1565b8030600160a060020a0316311015612150576040517f504b0ae89b95779262e99243870eb936180a8c33b444f17f01807c40a20c7aa790600090a1610db1565b600254604051600160a060020a038416919083906000818181858888f1935050505015156122445760408051600160a060020a03841681526020810183905281517f949201d78c50a6b453f7068ed19a5c7d74aaa07c12cadfd3855357a0b0f47405929181900390910190a1600854600160a060020a0383811691161461224457600854600254604051600160a060020a039092169183906000818181858888f1935050505015156122445760085460408051600160a060020a0390921682526020820183905280517f949201d78c50a6b453f7068ed19a5c7d74aaa07c12cadfd3855357a0b0f474059281900390910190a15b5b5b60408051600160a060020a03841681526020810183905281517fc7e416c5685d8971558840f05c5e63e02575b29997d8da6b9ba44dc10da6a370929181900390910190a15b5050565b600081610fa0600182031015611018576020840151610fa090612652020491507fa5acb022726d980b249ddc212f4992ad87f28c093550232fcc48bd8af803f2d5846000015184846040518084600160a060020a03168152602001838152602001828152602001935050505060405180910390a1835161230f90836120db565b600e5482810110806123285750836020015182600e5401105b1561233257610000565b6020840151600e805491840390910190555b5b5b50505050565b60008082610fa060001982011061101657845160408051600160a060020a0390921682526020820186905280517ff6db2bace4ac8277384553ad9603d045220a91fb2448ab6130d7a6f044f9a8cf9281900390910190a184516123b09060016120db565b600d546020860151810110806123cd57506020850151600d548101105b806123dc575084602001516001145b156123e657610000565b6020850151600d5481016000199081019450612710916126b6910102600d8054929091049190910190819055600854908403925061101690600160a060020a0316836120db565b5b5b5b5050505050565b600054600160a060020a0316151561245557612453600061288c565b505b600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060408051805160018054600160a060020a031916606060020a9283029290920491909117908190557f688dcfd7000000000000000000000000000000000000000000000000000000008252600160f860020a0319851660048301529151600160a060020a03909216925063688dcfd791602480830192600092919082900301818387803b156100005760325a03f115610000575050505b5b50565b600f54600090819081908190819060ff16151561101657600193505b60055484116126c357600084815260046020526040902054600160a060020a0316925061259683610af0565b91506125a183610b96565b600085815260046020526040902060010154909150828101108015906125db57506000848152600460205260409020600101548201819010155b156126445760008481526004602090815260409182902060010180548486039081019091558251600160a060020a03871681529182015281517f8ff49347da9034aab52b79ac6b2ba8cf17d221516834af5e5fa04bef1df4d7cd929181900390910190a1612684565b6008805460a060020a60ff02191660a060020a1790556040517f52e578ad17dc8fe0ff456fdf1f81516f7d29eb85fff301475a3a29d0e84bb31a90600090a15b60008481526004602052604090206001015485018590106126b75760008481526004602052604090206001015494909401935b5b60019093019261256a565b6000600d819055600e556006859055600f805460ff191660011790555b5b5b5050505050565b600054600160a060020a0316151561270757612705600061288c565b505b600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060408051805160018054600160a060020a031916606060020a9283029290920491909117908190557fe8a5282d000000000000000000000000000000000000000000000000000000008252600482018590529151600160a060020a03909216925063e8a5282d91602480830192600092919082900301818387803b156100005760325a03f115610000575050505b5b50565b33600160a060020a038116600081815260036020908152604080832086905585835260048252918290208054600160a060020a031916606060020a958602959095049490941784553460019094018490556006805485019055815192835282019290925281517fa4a46f45c9996c78320ae470714f930acba653b022fddec1735c1400209780e4929181900390910190a15b50565b600060006128ad731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed612adb565b11156128e1575060008054600160a060020a031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed1790556001610b2d565b600061290073c03a2615d5efaf5f49f60b7bb6583eaec212fdf1612adb565b1115612934575060008054600160a060020a03191673c03a2615d5efaf5f49f60b7bb6583eaec212fdf11790556001610b2d565b60006129537351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa612adb565b1115612987575060008054600160a060020a0319167351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa1790556001610b2d565b5060005b919050565b6040805160208101909152600090819052828180805b8351811015612abb57603060f860020a02848281518110156100005790602001015160f860020a900460f860020a02600160f860020a03191610158015612a1b5750603960f860020a02848281518110156100005790602001015160f860020a900460f860020a02600160f860020a03191611155b15612a76578115612a3e57851515612a3657612abb56612a3e565b600019909501945b5b600a830292506030848281518110156100005790602001015160f860020a900460f860020a0260f860020a90040383019250612ab1565b838181518110156100005790602001015160f860020a900460f860020a02600160f860020a031916602e60f860020a021415612ab157600191505b5b5b6001016129a6565b6000861115612acd5785600a0a830292505b8294505b5050505092915050565b803b5b919050565b55524c5d205b276a736f6e2868747470733a2f2f6170692e72616e646f6d2e6f72672f6a736f6e2d7270632f312f696e766f6b65292e726573756c742e72616e646f6d2e646174612e30272c20275c6e7b226a736f6e727063223a22322e30222c226d6574686f64223a2267656e65726174655369676e6564496e746567657273222c22706172616d73223a7b226170694b6579223a247b5b646563727970745d2042497878536b372f6137706f5a556c4c737442533364426e3453335a3153774370416b68506654355a4d385470436b4a494843676270694f6c4c5233614a5a6846745032376176336c71716e4f6c3650714a4b5834685178344153697172443854737556694a67322f3648447a75342f49755332317a486d654e415a4f4c7661535567422b7a7236423454494c5671736639364855357a7839536b7634446b3d7d2c226e223a312c226d696e223a312c226d6178223a3130303030247b5b6964656e746974795d20227d227d2c226964223a31247b5b6964656e746974795d20227d227d275d

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.