Sponsored Link:   COVESTING - EU-based digital asset exchange. Aggregated liquidity. Algorithmic & Copy-trading features. 24/7 support. Get access!
 Latest 25 txns from a total Of 20768 transactions
View All

TxHash Age From To Value [TxFee]
0xf2c26d08370ed829786192f596d754ecccb2a0d2fc4c5d0f76a3f73d87f3d1b79 days 10 hrs ago0xfeaf597b1d8333e6b3d48dcf54cce89170df5a4c  IN   0x7da90089a73edd14c75b0c827cb54f4248d47ecc0.222 Ether0.00126
0x259d231dcc94a5a1de062de62475d3a20ee84c2c3a2676ab1e7d59c006192eb89 days 10 hrs ago0xfeaf597b1d8333e6b3d48dcf54cce89170df5a4c  IN   0x7da90089a73edd14c75b0c827cb54f4248d47ecc0.222 Ether0.0009
0x675fd6ab6258aa537d3f70d66783fb76275070c36e166cf80c9a01e8fda9ea2811 days 14 hrs ago0x20a31d4a09c235b9d7874fc109e71e90d67fd0cf  IN   0x7da90089a73edd14c75b0c827cb54f4248d47ecc0 Ether0.00072
0xedff501c449feb89f17032abb4c74591c21de4a668c35695f981b7f25f489a9911 days 21 hrs ago0xd540b55e0010684b2cacc819ab82a616b938dc70  IN   0x7da90089a73edd14c75b0c827cb54f4248d47ecc0.34 Ether0.00216
0xc38db671b3c9c648f3f6898d8474cb16cdff000f37222a1aabdb1526156c368d14 days 17 hrs ago0x3f8860b846635417a5bd35b5e01d105d677cc119  IN   0x7da90089a73edd14c75b0c827cb54f4248d47ecc0.221 Ether0.00378
0xce63025551c51229fda16ca80e11176014122df1864255f9890f9b2266a266f915 days 6 hrs ago0xb4af7381a0c391fb75b776a04f0afcf91d09db34  IN   0x7da90089a73edd14c75b0c827cb54f4248d47ecc0.23 Ether0.00072
0x2cdf96778a40a639ca5d5f647ee4f0634bb83d162591f46d54f5d2144a54e7f617 days 18 hrs ago0x83da070858f10cef26f25fbf8eb14a94c9fcb4bf  IN   0x7da90089a73edd14c75b0c827cb54f4248d47ecc0.23 Ether0.38000135
0x12978fd74790cccb348166746cc01d5a294040ffc92b293a8e1773fa56428baa51 days 1 hr agoOraclize  IN   0x7da90089a73edd14c75b0c827cb54f4248d47ecc0 Ether0.0021286
0xc9ca222af322deb7149ee3fa91ce55b7a6d58c1e1decc06b562767427476dd5b51 days 2 hrs agoOraclize  IN   0x7da90089a73edd14c75b0c827cb54f4248d47ecc0 Ether0.003546
0x7b1051918bc8978ab99a99e41041d2210e4dd759a196161684b183d60399032851 days 2 hrs agoOraclize  IN   0x7da90089a73edd14c75b0c827cb54f4248d47ecc0 Ether0.00192746
0xf114a8a7b982c71aca930756f098dba11a4491e9e30b38407fb1d4f90f85d1ec51 days 2 hrs ago0xff190c5f451b218456db6272952236b6c29f7033  IN   0x7da90089a73edd14c75b0c827cb54f4248d47ecc0.3 Ether0.000593272
0x4feeb7d449914c37839a85b983cbbb17b07e24d98824b4be8e41646ce195e9d251 days 2 hrs ago0xff190c5f451b218456db6272952236b6c29f7033  IN   0x7da90089a73edd14c75b0c827cb54f4248d47ecc0.3 Ether0.000593272
0x40472068a27f2b0ba709c1e9a4209b6781974d4ee0dd1b95e042efa866d9939651 days 2 hrs agoOraclize  IN   0x7da90089a73edd14c75b0c827cb54f4248d47ecc0 Ether0.00192618
0x0d2860681a377e230353e6399832bc178f27cd2d727e036a8ed4cc0ef138077551 days 2 hrs ago0xff190c5f451b218456db6272952236b6c29f7033  IN   0x7da90089a73edd14c75b0c827cb54f4248d47ecc0.3 Ether0.000593272
0xbd1d0d5dbfab09a1c1cc74da9c88adf8f4b6b925a526e922da3c43381a3a63ce51 days 2 hrs agoOraclize  IN   0x7da90089a73edd14c75b0c827cb54f4248d47ecc0 Ether0.00192746
0xe43457ea62b9335c27cd85ee3ee0897a7f305b08558bc8397581f268f25598e851 days 2 hrs ago0xff190c5f451b218456db6272952236b6c29f7033  IN   0x7da90089a73edd14c75b0c827cb54f4248d47ecc0.3 Ether0.000593272
0x3de84de9b320a3fa23ee2842f5d1cd7aea99ec348cefd0346f000608b8d3df7651 days 2 hrs agoOraclize  IN   0x7da90089a73edd14c75b0c827cb54f4248d47ecc0 Ether0.00192746
0xaf3a95659dbdd41b3e321b7ee73a53ee4c0e770e9458c5e5f2ed750ec78aa68251 days 2 hrs ago0xff190c5f451b218456db6272952236b6c29f7033  IN   0x7da90089a73edd14c75b0c827cb54f4248d47ecc0.3 Ether0.000593272
0xd3dcce30b9c9b42cdf2b987d828af1c4c082e7d85e19eb0b427e9d3d960c121051 days 21 hrs agoOraclize  IN   0x7da90089a73edd14c75b0c827cb54f4248d47ecc0 Ether0.0019249
0x04f2f6dafe103a490d36db00ea38c352f96d82080d29904a190595dc2dd1784251 days 21 hrs ago0xff190c5f451b218456db6272952236b6c29f7033  IN   0x7da90089a73edd14c75b0c827cb54f4248d47ecc0.221 Ether0.000593272
0xcc68ea5521a50e8af0e83c0aa20db0a14e567133f55a0460de6caf071c552e4451 days 22 hrs agoOraclize  IN   0x7da90089a73edd14c75b0c827cb54f4248d47ecc0 Ether0.00192618
0xdffa146d223132050f7239ff06e2516beeabdb100a398be97f4dadcb6d4202a751 days 22 hrs ago0xff190c5f451b218456db6272952236b6c29f7033  IN   0x7da90089a73edd14c75b0c827cb54f4248d47ecc0.221 Ether0.000593272
0x58c195e8e259a5553655805e910236e64e7f0421530eb6f25e521bb4bea2caa151 days 22 hrs agoOraclize  IN   0x7da90089a73edd14c75b0c827cb54f4248d47ecc0 Ether0.00192746
0x5950c4e204bda8560212109ddf2dd0426e3ffbf8f4fff8a1d0f59edc0448cae451 days 22 hrs ago0xff190c5f451b218456db6272952236b6c29f7033  IN   0x7da90089a73edd14c75b0c827cb54f4248d47ecc0.221 Ether0.000444954
0x433cbb650c5fcfe53981c2dac0b4eaf17e174b2996442e295d53e5fe8d239f3c52 days 1 hr agoOraclize  IN   0x7da90089a73edd14c75b0c827cb54f4248d47ecc0 Ether0.00192746
[ 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
0x12978fd74790cccb348166746cc01d5a294040ffc92b293a8e1773fa56428baa555452151 days 1 hr ago0x7da90089a73edd14c75b0c827cb54f4248d47ecc0x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.002666885771389133 Ether
0x12978fd74790cccb348166746cc01d5a294040ffc92b293a8e1773fa56428baa555452151 days 1 hr ago0x7da90089a73edd14c75b0c827cb54f4248d47ecc0xff190c5f451b218456db6272952236b6c29f70331 wei
0x7b1051918bc8978ab99a99e41041d2210e4dd759a196161684b183d603990328555445951 days 2 hrs ago0x7da90089a73edd14c75b0c827cb54f4248d47ecc0xff190c5f451b218456db6272952236b6c29f70330.322989498979350528 Ether
0xf114a8a7b982c71aca930756f098dba11a4491e9e30b38407fb1d4f90f85d1ec555445751 days 2 hrs ago0x7da90089a73edd14c75b0c827cb54f4248d47ecc0x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.0036793587345408 Ether
0x4feeb7d449914c37839a85b983cbbb17b07e24d98824b4be8e41646ce195e9d2555441851 days 2 hrs ago0x7da90089a73edd14c75b0c827cb54f4248d47ecc0x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.0036793587345408 Ether
0x40472068a27f2b0ba709c1e9a4209b6781974d4ee0dd1b95e042efa866d99396555440551 days 2 hrs ago0x7da90089a73edd14c75b0c827cb54f4248d47ecc0xff190c5f451b218456db6272952236b6c29f70330.322989498979350528 Ether
0x0d2860681a377e230353e6399832bc178f27cd2d727e036a8ed4cc0ef1380775555440151 days 2 hrs ago0x7da90089a73edd14c75b0c827cb54f4248d47ecc0x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.0036793587345408 Ether
0xbd1d0d5dbfab09a1c1cc74da9c88adf8f4b6b925a526e922da3c43381a3a63ce555438951 days 2 hrs ago0x7da90089a73edd14c75b0c827cb54f4248d47ecc0xff190c5f451b218456db6272952236b6c29f70330.322989498979350528 Ether
0xe43457ea62b9335c27cd85ee3ee0897a7f305b08558bc8397581f268f25598e8555436251 days 2 hrs ago0x7da90089a73edd14c75b0c827cb54f4248d47ecc0x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.0036793587345408 Ether
0x3de84de9b320a3fa23ee2842f5d1cd7aea99ec348cefd0346f000608b8d3df76555432551 days 2 hrs ago0x7da90089a73edd14c75b0c827cb54f4248d47ecc0xff190c5f451b218456db6272952236b6c29f70330.322989498979350528 Ether
0xaf3a95659dbdd41b3e321b7ee73a53ee4c0e770e9458c5e5f2ed750ec78aa682555432251 days 2 hrs ago0x7da90089a73edd14c75b0c827cb54f4248d47ecc0x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.0036793587345408 Ether
0xd3dcce30b9c9b42cdf2b987d828af1c4c082e7d85e19eb0b427e9d3d960c1210554975751 days 21 hrs ago0x7da90089a73edd14c75b0c827cb54f4248d47ecc0xff190c5f451b218456db6272952236b6c29f70330.236879498979350528 Ether
0x04f2f6dafe103a490d36db00ea38c352f96d82080d29904a190595dc2dd17842554975451 days 21 hrs ago0x7da90089a73edd14c75b0c827cb54f4248d47ecc0x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.0036793587345408 Ether
0xcc68ea5521a50e8af0e83c0aa20db0a14e567133f55a0460de6caf071c552e44554971551 days 22 hrs ago0x7da90089a73edd14c75b0c827cb54f4248d47ecc0xff190c5f451b218456db6272952236b6c29f70330.236879498979350528 Ether
0xdffa146d223132050f7239ff06e2516beeabdb100a398be97f4dadcb6d4202a7554971251 days 22 hrs ago0x7da90089a73edd14c75b0c827cb54f4248d47ecc0x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.0036793587345408 Ether
0x58c195e8e259a5553655805e910236e64e7f0421530eb6f25e521bb4bea2caa1554966551 days 22 hrs ago0x7da90089a73edd14c75b0c827cb54f4248d47ecc0xff190c5f451b218456db6272952236b6c29f70330.236879498979350528 Ether
0x5950c4e204bda8560212109ddf2dd0426e3ffbf8f4fff8a1d0f59edc0448cae4554966251 days 22 hrs ago0x7da90089a73edd14c75b0c827cb54f4248d47ecc0x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.0036793587345408 Ether
0x433cbb650c5fcfe53981c2dac0b4eaf17e174b2996442e295d53e5fe8d239f3c554897352 days 1 hr ago0x7da90089a73edd14c75b0c827cb54f4248d47ecc0xff190c5f451b218456db6272952236b6c29f70330.236879498979350528 Ether
0x0d81a7c985e2a878d5573a6f031f415a9e2b571e0b16bf8d6f56e4c0469cba8d554896952 days 1 hr ago0x7da90089a73edd14c75b0c827cb54f4248d47ecc0x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.0036793587345408 Ether
0x3a7b1a4acbe22ce90e86062d4a19390298a9b4de07c968c510d543dff242403f554874252 days 2 hrs ago0x7da90089a73edd14c75b0c827cb54f4248d47ecc0xff190c5f451b218456db6272952236b6c29f70330.236879498979350528 Ether
0x655158bdcf942863bde0e621b9e59fc593fdf5bf5269979af479046bd2c92a61554873452 days 2 hrs ago0x7da90089a73edd14c75b0c827cb54f4248d47ecc0x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.0036793587345408 Ether
0x9580b106a70a7af4e5503dacadaa39f50d3f59107339e90875016f1313f63a85554872752 days 2 hrs ago0x7da90089a73edd14c75b0c827cb54f4248d47ecc0xff190c5f451b218456db6272952236b6c29f70330.236879498979350528 Ether
0x19ce1fb59c9a038aeddd2926d43488228ae8dc87a3ce5d9c006f70f769c7da56554872452 days 2 hrs ago0x7da90089a73edd14c75b0c827cb54f4248d47ecc0x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.0036793587345408 Ether
0xcd4259817a4e401e7eb89acb2436a8baad15fba7b0908298914e808cb8e5f35d554863952 days 2 hrs ago0x7da90089a73edd14c75b0c827cb54f4248d47ecc0xff190c5f451b218456db6272952236b6c29f70330.236879498979350528 Ether
0x86eae4028426b3785fc422d5c0e0bee690e8141a5aff7be9fa2cb2009a3b5655554863552 days 2 hrs ago0x7da90089a73edd14c75b0c827cb54f4248d47ecc0x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.0036793587345408 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 = 9000; //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] BIYkzb1GQzRZFNsTzF7fh+n8VmT8GEyW3mHYlrU8It5O6/bam6/LVVxqkury8YZDJPjm0mWQeqQGebGAVSFrFw16/VHJ65QMFBfIHN2frhav/d10ARqECjoOvse5v4/DIT3LQUHPEx0Z/5UdtqYTQydW/pbC5BM=},\"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
60606040526108fc600255600060055560006006556000600d556000600e553462000000575b6200005e7f1100000000000000000000000000000000000000000000000000000000000000640100000000620024366200009882021704565b600780546c0100000000000000000000000033810204600160a060020a031991821681179092556008805490911690911790555b6200033f565b600054600160a060020a03161515620000c757620000c560006401000000006200288b620001fe82021704565b505b600060009054906101000a9004600160a060020a0316600160a060020a03166338cc4831600060405160200152604051817c0100000000000000000000000000000000000000000000000000000000028152600401809050602060405180830381600087803b15620000005760325a03f1156200000057505060408051805160018054600160a060020a0319166c010000000000000000000000009283029290920491909117908190557f688dcfd70000000000000000000000000000000000000000000000000000000082527fff00000000000000000000000000000000000000000000000000000000000000851660048301529151600160a060020a03909216925063688dcfd791602480830192600092919082900301818387803b15620000005760325a03f11562000000575050505b5b50565b6000806200022e731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed64010000000062002ada6200033782021704565b111562000264575060008054600160a060020a031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed179055600162000332565b60006200029373c03a2615d5efaf5f49f60b7bb6583eaec212fdf164010000000062002ada6200033782021704565b1115620002c9575060008054600160a060020a03191673c03a2615d5efaf5f49f60b7bb6583eaec212fdf1179055600162000332565b6000620002f87351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa64010000000062002ada6200033782021704565b11156200032e575060008054600160a060020a0319167351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa179055600162000332565b5060005b919050565b803b5b919050565b612c6b806200034e6000396000f3606060405236156101d75760e060020a6000350463058aace181146101e8578063061e494f146101f75780630d1fce421461022f57806311610c251461024e578063116c6eab1461025857806312253a6c1461027a578063132ae5e9146102895780631514ea54146102a8578063187a62d5146102ca5780631efb17ee146102dc578063232523e8146102ee57806327dc297e146102fd57806338bbfa50146103535780633f683b6a146103e65780633feb5f2b1461040757806340a49a96146104415780634671e65e146104605780634e69d560146104725780635125796a146104c057806351404cbe146104d2578063518496b2146104e4578063550ed1f0146105145780636128a4f31461053357806366aee0fc146105525780636be80de71461057157806371d0ed0514610593578063724ae9d0146105b557806382a5285d146105d457806385eac05f146105f35780638da5cb5b14610605578063a4beffa71461062e578063c4bc5da514610638578063c902c3ae14610647578063cafb22021461067f578063d21d79501461069e578063d7cee31e146106b0578063da0bba7b146106d9578063df06f906146106eb578063f4993bbd1461070a578063f8b2cb4f14610719578063fb099c841461073b575b6101e65b6101e3610745565b5b565b005b34610000576101e6610a08565b005b3461000057610207600435610a39565b60408051600160a060020a039094168452602084019290925282820152519081900360600190f35b346100005761023c610aa3565b60408051918252519081900360200190f35b6101e6610745565b005b346100005761023c600435610af0565b60408051918252519081900360200190f35b34610000576101e6610b32565b005b346100005761023c610b90565b60408051918252519081900360200190f35b346100005761023c600435610b96565b60408051918252519081900360200190f35b34610000576101e6600435610bd8565b005b34610000576101e6600435610ca5565b005b34610000576101e6610d3b565b005b346100005760408051602060046024803582810135601f81018590048502860185019096528585526101e69583359593946044949392909201918190840183828082843750949650610db795505050505050565b005b346100005760408051602060046024803582810135601f81018590048502860185019096528585526101e6958335959394604494939290920191819084018382808284375050604080516020601f89358b01803591820183900483028401830190945280835297999881019791965091820194509250829150840183828082843750949650610de695505050505050565b005b34610000576103f361101e565b604080519115158252519081900360200190f35b346100005761041760043561102e565b60408051600160a060020a0390941684526020840192909252151582820152519081900360600190f35b346100005761023c61105c565b60408051918252519081900360200190f35b34610000576101e66004356110c9565b005b346100005761047f61118e565b604080519889526020890197909752878701959095526060870193909352608086019190915260a085015260c084015260e083015251908190036101000190f35b34610000576101e66004356111f1565b005b34610000576101e6600435611236565b005b34610000576104f161128d565b60408051600160a060020a03909316835260208301919091528051918290030190f35b346100005761023c6112a2565b60408051918252519081900360200190f35b346100005761023c6113ab565b60408051918252519081900360200190f35b346100005761023c6113b1565b60408051918252519081900360200190f35b346100005761023c6004356113b7565b60408051918252519081900360200190f35b346100005761023c6004356113c9565b60408051918252519081900360200190f35b346100005761023c6113ea565b60408051918252519081900360200190f35b346100005761023c61143e565b60408051918252519081900360200190f35b34610000576101e660043561152f565b005b34610000576106126115c5565b60408051600160a060020a039092168252519081900360200190f35b6101e66115d4565b005b34610000576101e6611663565b005b34610000576102076004356116bb565b60408051600160a060020a039094168452602084019290925282820152519081900360600190f35b346100005761023c6116e6565b60408051918252519081900360200190f35b34610000576101e66004356116ec565b005b3461000057610612611773565b60408051600160a060020a039092168252519081900360200190f35b34610000576101e6600435611782565b005b346100005761023c6117ab565b60408051918252519081900360200190f35b34610000576101e66117b2565b005b346100005761023c60043561195a565b60408051918252519081900360200190f35b6101e66119db565b005b600060006000600860149054906101000a900460ff161561076557610000565b600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060408051805160025460006020938401819052845160e260020a630bbceb330281526202ab989092016024830152600482018590526003604483015260ea60020a621554930260648301529351600160a060020a039092169450632ef3accc9360848083019493928390030190829087803b156100005760325a03f1156100005750506040515193505034831061085957610000565b8234039150612710610869610aa3565b6064028115610000570461232861032a8402041115801561089257506702c68af0bb1400008210155b156109fc5760408051600160a060020a03331681526020810184905281517fa39417f926ed806b475d2cd74083819551616e7fdb3f5bb7abf8e893eae244b4929181900390910190a1610942604060405190810160405280600681526020017f6e657374656400000000000000000000000000000000000000000000000000008152602001506101c0604051908101604052806101898152602001612ae261018991396002546202ab9801611aa4565b6040805160608101825233815260208082018681526000838501818152868252600b9093529390932091518254600160a060020a031916606060020a9182029190910417825591516001808301919091559151600290910155600c80549182018082559293509182818380158290116109e0576000838152602090206109e09181019083015b808211156109dc57600081556001016109c8565b5090565b5b505050916000526020600020900160005b5082905550610a01565b610000565b5b5b505050565b600160a060020a0333166000908152600360205260409020541515610a2c57610000565b6101e333611d80565b5b5b565b6000600060006000600c80549050851015610a9a57600c85815481101561000057906000526020600020900160005b50546000818152600b6020526040902080546001820154600290920154600160a060020a039091169650909450925090505b5b509193909250565b6000600d546006541080610abc5750600654600d548101105b80610ace5750600e54600d5460065401105b15610adf57506000610aec56610aec565b50600e54600d5460065401035b5b90565b600654600d54600160a060020a03831660009081526003602090815260408083205483526004909152812060010154909291028115610000570490505b919050565b60075433600160a060020a03908116911614610b4d57610000565b6008805460a060020a60ff02191660a060020a1790556040517f3bb54b4ced112fe0d4fa7efd42b29a0a9036fde6e206de4290c4ff02d2dc2c5c90600090a15b5b565b60055481565b600654600e54600160a060020a03831660009081526003602090815260408083205483526004909152812060010154909291028115610000570490505b919050565b600160a060020a0333166000908152600360205260409020541515610bfc57610000565b600954600160a060020a03161515610c1357610000565b60085460a060020a900460ff161515610c2b57610000565b33600160a060020a031660008181526003602090815260408083205483526004825291829020600201805460ff191660f860020a8681020417905581519283528315159083015280517fea22ee15de9c385abeff072b23d6e0de5ebda8c59098f5585f45e82b9faa57629281900390910190a15b5b5b5b50565b60075433600160a060020a03908116911614610cc057610000565b600160a060020a0381161515610cd557610000565b60088054600160a060020a031916606060020a83810204179081905560408051600160a060020a039283168152918316602083015280517fb750ac854b12114073b8c76dcfe5fb889b30db5d3d60e07abc8ae66c349d7a689281900390910190a15b5b50565b600754600090819033600160a060020a03908116911614610d5b57610000565b505060055460015b818111610db157600160005260046020527fabd6e7cb50984ff9c2f3e18a2660c3353dadf4e3291deeb275dae2cd1e44fe0554610da890600160a060020a0316611d80565b5b600101610d63565b5b5b5050565b610db182826000604051805910610dcb5750595b8181526020808302820101604052905b50610de6565b5b5050565b6000610df0611fac565b600160a060020a031633600160a060020a0316141515610e0f57610000565b6000848152600b60205260409020548490600160a060020a03161515610e3457610000565b6000858152600b60205260408120600201548691901115610e5457610000565b85856000610e61826120c5565b90506001811080610e73575061271081115b8015610e8e57506000838152600b6020526040902060020154155b15610eca576000838152600b602052604090206201869f60028201558054600190910154610ec591600160a060020a0316906120da565b611010565b88612710610ed6610aa3565b6064028115610000576000838152600b6020526040902060010154919004906123289061032a020411158015610f2657506000818152600b60205260409020600101546702c68af0bb1400009010155b15610fda57610f34896120c5565b60008b8152600b60209081526040918290206002810184905582516060810184528154600160a060020a0316815260019091015491810191909152908101829052909750610f82908861228e565b60008a8152600b602090815260409182902082516060810184528154600160a060020a031681526001820154928101929092526002015491810191909152610fca908861234b565b600f805460ff191690555b61100c565b6000818152600b602052604090206201869f60028201558054600190910154610fd591600160a060020a0316906120da565b5b5b505b5050505b505b505b50505050565b60085460a060020a900460ff1681565b600460205260009081526040902080546001820154600290920154600160a060020a03909116919060ff1683565b60006001805b60055481116110c05760008281526004602052604090205461108c90600160a060020a031661195a565b6000828152600460205260409020546110ad90600160a060020a031661195a565b10156110b7578091505b5b600101611062565b8192505b505090565b60085460009060a060020a900460ff1615156110e457610000565b60075433600160a060020a039081169116146110ff57610000565b5060015b600554811161112e576000818152600460205260409020600201805460ff191690555b600101611103565b60408051808201825283815242602090910181905260098054600160a060020a031916606060020a80870204179055600a55517f6c0eb56f121418f16eaebbe01cb2694897b8578b3b1c549e634a1b7753ed2d8b90600090a15b5b5b5050565b60006000600060006000600060006000600060006111aa610aa3565b91506111b46113ea565b600e54600d54600c54949c506123289b5060be9a50606499506702c68af0bb14000098500395509350909150889050825b50509091929394959697565b60075433600160a060020a0390811691161461120c57610000565b600160f860020a03198116151561122257610000565b610c9f60f860020a8217612436565b5b5b50565b60075433600160a060020a0390811691161461125157610000565b60085460a060020a900460ff16151561126957610000565b61127281611d80565b60098054600160a060020a03191690556000600a555b5b5b50565b600954600a54600160a060020a039091169082565b60008054604080516020908101849052815160e060020a6338cc4831028152915184938493600160a060020a03909116926338cc48319260048084019382900301818787803b156100005760325a03f11561000057505060408051805160025460006020938401819052845160e260020a630bbceb330281526202ab989092016024830152600482018590526003604483015260ea60020a621554930260648301529351600160a060020a039092169450632ef3accc9360848083019493928390030190829087803b156100005760325a03f115610000575050604051519250627b98a09050612328611393610aa3565b6064020281156100005704905081810192505b505090565b600e5481565b600d5481565b60036020526000908152604090205481565b600c81815481101561000057906000526020600020900160005b5054905081565b60006000600a60055414156114305761140161105c565b60008181526004602052604090205490915061142590600160a060020a031661195a565b91506109dc566109dc565b600091506109dc565b5b5090565b60008054604080516020908101849052815160e060020a6338cc483102815291518493600160a060020a0316926338cc483192600480830193919282900301818787803b156100005760325a03f11561000057505060408051805160025460006020938401819052845160e260020a630bbceb330281526202ab989092016024830152600482018590526003604483015260ea60020a621554930260648301529351600160a060020a039092169450632ef3accc9360848083019493928390030190829087803b156100005760325a03f115610000575050604051516702c68af0bb140000810193509150505b5090565b60075433600160a060020a0390811691161461154a57610000565b600160a060020a038116151561155f57610000565b60078054600160a060020a031916606060020a83810204179081905560408051600160a060020a039283168152918316602083015280517f4f67fe223bca69f22bf24552638f3c95bfb9e9763c4a33a3aa67a46484d81c2b9281900390910190a15b5b50565b600754600160a060020a031681565b60085460a060020a900460ff16156115eb57610000565b3415156115f757610000565b600160a060020a033316600090815260036020526040902054151561161b57610000565b61162361254d565b600160a060020a0333166000908152600360209081526040808320548352600490915290206001018054349081019091556006805490910190555b5b5b5b565b60075433600160a060020a0390811691161461167e57610000565b6008805460a060020a60ff02191690556040517fadf8f79dd508a8e1881e3cca67a5af02a21f971925c3a6a6cb8fc165d07e346390600090a15b5b565b600b60205260009081526040902080546001820154600290920154600160a060020a03909116919083565b60065481565b60075433600160a060020a0390811691161461170757610000565b806202ab98816202ab9801101561171d57610000565b6161a881101561172c57610000565b6002829055604080518381526020810184905281517fb5e4ece1f96cc168fddcead7ee209f969a93607238c585767ea80fad5fe884b2929181900390910190a15b5b505b50565b600854600160a060020a031681565b60075433600160a060020a0390811691161461179d57610000565b610c9f816126e8565b5b5b50565b600c545b90565b6007546000908190819033600160a060020a039081169116146117d457610000565b600954600160a060020a031615156117eb57610000565b60085460a060020a900460ff16151561180357610000565b426203f48060096001015401111561181a57610000565b5050600160a060020a0330163160015b600554811161187b5760008181526004602052604090206002015460ff16151560011415611872576000818152600460205260409020600201805460ff191690556001909201915b5b60010161182a565b600554606490600a020483106109fc57600954604051600160a060020a039091169083156108fc029084906000818181858888f1935050505015156118fe5760095460408051600160a060020a039092168252517f0fd1ed783bf9505e3fc2545a18e022b8bd048d240d98a3c959646ccebd569b399181900360200190a1611946565b60095460408051600160a060020a0390921682526020820184905280517fe0376e740df28d6cbdef46880b37136bc75e027766e3295d4af8a44c557ae7329281900390910190a15b610a01565b610000565b5b5b5b5b5b505050565b600160a060020a03811660009081526003602090815260408083205483526004909152812060010154818061198e85610af0565b915061199985610b96565b90508182840110806119ac575082828401105b806119b8575080828401105b156119ca57600093506119d2566119d2565b808284010393505b5b505050919050565b60085460009060a060020a900460ff16156119f557610000565b341515611a0157610000565b600160a060020a03331660009081526003602052604090205415611a2457610000565b611a2c6113ea565b3411611a3757610000565b611a3f61254d565b600a6005541415611a7657611a5261105c565b600081815260046020526040902054909150611a7690600160a060020a0316611d80565b5b6005805460010190819055611a8b906127f6565b5b600a6005541115610c9f57610000565b5b5b5b5b5b50565b600080548190600160a060020a03161515611ac557611ac3600061288b565b505b600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f1156100005750505060405180519060200150600160006101000a815481600160a060020a030219169083606060020a908102040217905550600160009054906101000a9004600160a060020a0316600160a060020a0316632ef3accc86856000604051602001526040518360e060020a02815260040180806020018381526020018281038252848181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f168015611bf55780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b156100005760325a03f11561000057505060405151915050670de0b6b3a76400003a840201811115611c3e5760009150611d77565b600160009054906101000a9004600160a060020a0316600160a060020a031663c51be90f8260008888886000604051602001526040518660e060020a0281526004018085815260200180602001806020018481526020018381038352868181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f168015611ced5780820380516001836020036101000a031916815260200191505b508381038252858181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f168015611d465780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b156100005761235a5a03f11561000057505060405151935050505b5b509392505050565b6000600060006000611d9061254d565b600160a060020a0385166000908152600360205260409020549350611db48561195a565b6000858152600460205260409020600101546006549194509010611f53576000848152600460209081526040808320600181018054600680549190910390558154600160a060020a0319168255849055600201805460ff19169055600160a060020a038816835260039091528120556005546127106032850204938490039392508414611ee057506005805460009081526004602081815260408084208054600160a060020a039081168652600384528286208a90558986529390925280842082548154606060020a91909516810204600160a060020a031994851617815560018084015482820155600280850154928101805460f860020a60ff90951685029490940460ff199485161790559654865291852080549094168455908301939093559201805490911690555b60058054600019019055611ef485846120da565b600854611f0a90600160a060020a0316836120da565b60408051600160a060020a03871681526020810185905281517f3026a12843449d7e7377f8932a40bdb5d1b1125efbfbe147132016f8beac0f34929181900390910190a1611f93565b6008805460a060020a60ff02191660a060020a1790556040517f52e578ad17dc8fe0ff456fdf1f81516f7d29eb85fff301475a3a29d0e84bb31a90600090a15b5b600a600554111561101657610000565b5b5050505050565b60008054600160a060020a03161515611fcb57611fc9600061288b565b505b600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060408051805160018054600160a060020a031916606060020a9283029290920491909117908190556000602092830181905283517fc281d19e0000000000000000000000000000000000000000000000000000000081529351600160a060020a03909216945063c281d19e936004808201949392918390030190829087803b156100005760325a03f115610000575050604051519150505b5b90565b60006120d282600061298f565b90505b919050565b80151561210f576040517f4763e3feef50167ae1957a20ba2b75b5f4093062392e81d5e351b709b1d8261f90600090a1610db1565b8030600160a060020a031631101561214f576040517f504b0ae89b95779262e99243870eb936180a8c33b444f17f01807c40a20c7aa790600090a1610db1565b600254604051600160a060020a038416919083906000818181858888f1935050505015156122435760408051600160a060020a03841681526020810183905281517f949201d78c50a6b453f7068ed19a5c7d74aaa07c12cadfd3855357a0b0f47405929181900390910190a1600854600160a060020a0383811691161461224357600854600254604051600160a060020a039092169183906000818181858888f1935050505015156122435760085460408051600160a060020a0390921682526020820183905280517f949201d78c50a6b453f7068ed19a5c7d74aaa07c12cadfd3855357a0b0f474059281900390910190a15b5b5b60408051600160a060020a03841681526020810183905281517fc7e416c5685d8971558840f05c5e63e02575b29997d8da6b9ba44dc10da6a370929181900390910190a15b5050565b60008161232860018203101561101857602084015161232890612652020491507fa5acb022726d980b249ddc212f4992ad87f28c093550232fcc48bd8af803f2d5846000015184846040518084600160a060020a03168152602001838152602001828152602001935050505060405180910390a1835161230e90836120da565b600e5482810110806123275750836020015182600e5401105b1561233157610000565b6020840151600e805491840390910190555b5b5b50505050565b6000808261232860001982011061101657845160408051600160a060020a0390921682526020820186905280517ff6db2bace4ac8277384553ad9603d045220a91fb2448ab6130d7a6f044f9a8cf9281900390910190a184516123af9060016120da565b600d546020860151810110806123cc57506020850151600d548101105b806123db575084602001516001145b156123e557610000565b6020850151600d5481016000199081019450612710916126b6910102600d8054929091049190910190819055600854908403925061101690600160a060020a0316836120da565b5b5b5b5050505050565b600054600160a060020a0316151561245457612452600061288b565b505b600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060408051805160018054600160a060020a031916606060020a9283029290920491909117908190557f688dcfd7000000000000000000000000000000000000000000000000000000008252600160f860020a0319851660048301529151600160a060020a03909216925063688dcfd791602480830192600092919082900301818387803b156100005760325a03f115610000575050505b5b50565b600f54600090819081908190819060ff16151561101657600193505b60055484116126c257600084815260046020526040902054600160a060020a0316925061259583610af0565b91506125a083610b96565b600085815260046020526040902060010154909150828101108015906125da57506000848152600460205260409020600101548201819010155b156126435760008481526004602090815260409182902060010180548486039081019091558251600160a060020a03871681529182015281517f8ff49347da9034aab52b79ac6b2ba8cf17d221516834af5e5fa04bef1df4d7cd929181900390910190a1612683565b6008805460a060020a60ff02191660a060020a1790556040517f52e578ad17dc8fe0ff456fdf1f81516f7d29eb85fff301475a3a29d0e84bb31a90600090a15b60008481526004602052604090206001015485018590106126b65760008481526004602052604090206001015494909401935b5b600190930192612569565b6000600d819055600e556006859055600f805460ff191660011790555b5b5b5050505050565b600054600160a060020a0316151561270657612704600061288b565b505b600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060408051805160018054600160a060020a031916606060020a9283029290920491909117908190557fe8a5282d000000000000000000000000000000000000000000000000000000008252600482018590529151600160a060020a03909216925063e8a5282d91602480830192600092919082900301818387803b156100005760325a03f115610000575050505b5b50565b33600160a060020a038116600081815260036020908152604080832086905585835260048252918290208054600160a060020a031916606060020a958602959095049490941784553460019094018490556006805485019055815192835282019290925281517fa4a46f45c9996c78320ae470714f930acba653b022fddec1735c1400209780e4929181900390910190a15b50565b600060006128ac731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed612ada565b11156128e0575060008054600160a060020a031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed1790556001610b2d565b60006128ff73c03a2615d5efaf5f49f60b7bb6583eaec212fdf1612ada565b1115612933575060008054600160a060020a03191673c03a2615d5efaf5f49f60b7bb6583eaec212fdf11790556001610b2d565b60006129527351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa612ada565b1115612986575060008054600160a060020a0319167351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa1790556001610b2d565b5060005b919050565b6040805160208101909152600090819052828180805b8351811015612aba57603060f860020a02848281518110156100005790602001015160f860020a900460f860020a02600160f860020a03191610158015612a1a5750603960f860020a02848281518110156100005790602001015160f860020a900460f860020a02600160f860020a03191611155b15612a75578115612a3d57851515612a3557612aba56612a3d565b600019909501945b5b600a830292506030848281518110156100005790602001015160f860020a900460f860020a0260f860020a90040383019250612ab0565b838181518110156100005790602001015160f860020a900460f860020a02600160f860020a031916602e60f860020a021415612ab057600191505b5b5b6001016129a5565b6000861115612acc5785600a0a830292505b8294505b5050505092915050565b803b5b919050565b55524c5d205b276a736f6e2868747470733a2f2f6170692e72616e646f6d2e6f72672f6a736f6e2d7270632f312f696e766f6b65292e726573756c742e72616e646f6d2e646174612e30272c20275c6e7b226a736f6e727063223a22322e30222c226d6574686f64223a2267656e65726174655369676e6564496e746567657273222c22706172616d73223a7b226170694b6579223a247b5b646563727970745d204249596b7a623147517a525a464e73547a463766682b6e38566d543847457957336d48596c7255384974354f362f62616d362f4c565678716b75727938595a444a506a6d306d5751657151476562474156534672467731362f56484a3635514d46426649484e3266726861762f64313041527145436a6f4f7673653576342f444954334c515548504578305a2f35556474715954517964572f70624335424d3d7d2c226e223a312c226d696e223a312c226d6178223a3130303030247b5b6964656e746974795d20227d227d2c226964223a31247b5b6964656e746974795d20227d227d275d

 

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.