Sponsored Link:   ARNA Genomics - FIRST BLOCKCHAIN BIOTECH ECOSYSTEM. Join ICO Now!
Contract Overview
ETH Balance: 344.274904186488891781 Ether
ETH USD Value: $126,978.91 (@ $368.83/ETH)
No Of Transactions: 27446 txns
  Latest 25 txns from a total Of 27446 transactions View All

TxHash Age From To Value [TxFee]
0x631de0e41fefceeb9a48b71a1a83d3c84c35f89e918a5230dcd00bda2708749e16 hrs 31 mins agoOraclize  IN   0xdd98b423dc61a756e1070de151b14854255059540 Ether0.00192618
0x1cf4fabbabfa5b76ab477d44dcfb8e9963eecc70f28d607ecbcf36e28b60007816 hrs 32 mins ago0x3f8860b846635417a5bd35b5e01d105d677cc119  IN   0xdd98b423dc61a756e1070de151b14854255059540.2212 Ether0.00296636
0x44e99a807280b8e4e2bf9998b718ac43578d48b243a1f974a2eae7c2ab2f2eaa16 hrs 34 mins agoOraclize  IN   0xdd98b423dc61a756e1070de151b14854255059540 Ether0.00188122
0x850f4603f81fb0465d35fa2dc7947fb928d9e0d81b7faf4f43bb885babbe051616 hrs 34 mins ago0x3f8860b846635417a5bd35b5e01d105d677cc119  IN   0xdd98b423dc61a756e1070de151b14854255059540.2305 Ether0.00296636
0x4601570dd2706778fff2411184f1acb9d788295987c557b03a8ceee9b661562016 hrs 36 mins agoOraclize  IN   0xdd98b423dc61a756e1070de151b14854255059540 Ether0.0021286
0x94cc7d2d684a155794901a5b1a9d43682c262b405cfeba48bcb22b854f347ff416 hrs 36 mins ago0x3f8860b846635417a5bd35b5e01d105d677cc119  IN   0xdd98b423dc61a756e1070de151b14854255059540.221 Ether0.00296636
0x3061bb59dc0af20a3f8964372c942975713513697f0a06d05aeb661eb5214ceb16 hrs 50 mins agoOraclize  IN   0xdd98b423dc61a756e1070de151b14854255059540 Ether0.0021286
0xf017458dd89e474a92ddac5732d326290fb99d1fda6459aab1bb5903e0dbd6c716 hrs 51 mins ago0x6cb426d5a7d455f1610ec8bcc7b5fb4dd81968e4  IN   0xdd98b423dc61a756e1070de151b14854255059540.25 Ether0.00148318
0x910ecfae99bc40da38c33590383966121ce75bd5f7be26ce850b42c86d38241f17 hrs 6 mins agoOraclize  IN   0xdd98b423dc61a756e1070de151b14854255059540 Ether0.00192746
0xf5cfa6c88c8b672df7c060d5a53b568ead18346fbf0480c5fd8921a61ad91d5617 hrs 6 mins ago0x6cb426d5a7d455f1610ec8bcc7b5fb4dd81968e4  IN   0xdd98b423dc61a756e1070de151b14854255059540.23 Ether0.00148318
0x6c975bd394fcb9618768dd5b98dc093c3767808bd5c3115d9a6a33425c0149ef17 hrs 8 mins agoOraclize  IN   0xdd98b423dc61a756e1070de151b14854255059540 Ether0.00192618
0x2464cf30ac821cf8b3be658a592f01114fe8a62eb33bcdd4cd65f00711bf291c17 hrs 9 mins agoOraclize  IN   0xdd98b423dc61a756e1070de151b14854255059540 Ether0.00192746
0x0087f9454247e9230df4ffabd61383c80407898df80427ebe968fd9b3cdff00d17 hrs 9 mins ago0x3f8860b846635417a5bd35b5e01d105d677cc119  IN   0xdd98b423dc61a756e1070de151b14854255059540.2212 Ether0.002373088
0xf709f7417534a88fa361b5008bce56ad61503f6c53e10e4e8705c90bd1581c0117 hrs 9 mins ago0x6cb426d5a7d455f1610ec8bcc7b5fb4dd81968e4  IN   0xdd98b423dc61a756e1070de151b14854255059540.25 Ether0.00148318
0x45c326ad7625601c7ae4b54e3352fd918b28de174550cb535ae5e48f3a36158217 hrs 13 mins agoOraclize  IN   0xdd98b423dc61a756e1070de151b14854255059540 Ether0.0021286
0xb04c180cdfc0041d2b15181b65e44f29e7cd935fb0a63368af9a588bde29a6ec17 hrs 13 mins agoOraclize  IN   0xdd98b423dc61a756e1070de151b14854255059540 Ether0.0021286
0x9cd870efebb3e10fe125f8902b746c6db32801a727021c48e5efd45601bfd53d17 hrs 16 mins ago0x3f8860b846635417a5bd35b5e01d105d677cc119  IN   0xdd98b423dc61a756e1070de151b14854255059540.221 Ether0.001880486842
0x1d5ce11970242711912ed9224ba70afa9f2e49d7071db15f711bb8959584095517 hrs 16 mins ago0x6cb426d5a7d455f1610ec8bcc7b5fb4dd81968e4  IN   0xdd98b423dc61a756e1070de151b14854255059540.25 Ether0.00148318
0xf387e3e50e8919b35611b638343985aa040720851722717e43afbc0e1be1d33817 hrs 19 mins agoOraclize  IN   0xdd98b423dc61a756e1070de151b14854255059540 Ether0.00192618
0x9f3612c6567cf3bade44384a80e5b3d6be4af9689bfe5746a1fdd9ba10b59eb417 hrs 19 mins ago0x3f8860b846635417a5bd35b5e01d105d677cc119  IN   0xdd98b423dc61a756e1070de151b14854255059540.221 Ether0.0000444954
0xd63a4d8b1f0571f50fd1e3c3dd3988ab2f843376f73fad6b0ed20183d72b218a17 hrs 23 mins agoOraclize  IN   0xdd98b423dc61a756e1070de151b14854255059540 Ether0.00187866
0xa72f68dbafafe366eaad3044bef4977cb86f4cd9e05e1cdbe3164292d7dafac617 hrs 24 mins ago0x3f8860b846635417a5bd35b5e01d105d677cc119  IN   0xdd98b423dc61a756e1070de151b14854255059541.05 Ether0.001557339
0x7155f5d779cbcfcfde9cd0b9c79829d71e6d6548b71988fbaf31bd10b3a1f86917 hrs 27 mins agoOraclize  IN   0xdd98b423dc61a756e1070de151b14854255059540 Ether0.0021286
0x2e4b4833a2155995354b33751f72dfd0ffa616fe4dca7f971593c322b4c46e7017 hrs 28 mins ago0x3f8860b846635417a5bd35b5e01d105d677cc119  IN   0xdd98b423dc61a756e1070de151b14854255059540.5112 Ether0.001557339
0xf0bee6d70a38cac13216f8824fadc7578fb1d3811efacf0f62db5a1bc9d6285017 hrs 30 mins agoOraclize  IN   0xdd98b423dc61a756e1070de151b14854255059540 Ether0.0021286
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
  Latest 25 Internal Txns, Click here to View More View All
ParentTxHash Block Age From To Value
0x631de0e41fefceeb9a48b71a1a83d3c84c35f89e918a5230dcd00bda2708749e459060116 hrs 31 mins ago0xdd98b423dc61a756e1070de151b14854255059540x3f8860b846635417a5bd35b5e01d105d677cc1190.426710755361332694 Ether
0x1cf4fabbabfa5b76ab477d44dcfb8e9963eecc70f28d607ecbcf36e28b600078459059816 hrs 32 mins ago0xdd98b423dc61a756e1070de151b14854255059540x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.00371235710431565 Ether
0x44e99a807280b8e4e2bf9998b718ac43578d48b243a1f974a2eae7c2ab2f2eaa459059316 hrs 34 mins ago0xdd98b423dc61a756e1070de151b14854255059540x3f8860b846635417a5bd35b5e01d105d677cc1190.444957355361332694 Ether
0x850f4603f81fb0465d35fa2dc7947fb928d9e0d81b7faf4f43bb885babbe0516459059116 hrs 34 mins ago0xdd98b423dc61a756e1070de151b14854255059540x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.00371235710431565 Ether
0x4601570dd2706778fff2411184f1acb9d788295987c557b03a8ceee9b6615620459058616 hrs 36 mins ago0xdd98b423dc61a756e1070de151b14854255059540x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.00195558878606116 Ether
0x4601570dd2706778fff2411184f1acb9d788295987c557b03a8ceee9b6615620459058616 hrs 36 mins ago0xdd98b423dc61a756e1070de151b14854255059540x3f8860b846635417a5bd35b5e01d105d677cc1191 wei
0x94cc7d2d684a155794901a5b1a9d43682c262b405cfeba48bcb22b854f347ff4459058316 hrs 36 mins ago0xdd98b423dc61a756e1070de151b14854255059540x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.00371235710431565 Ether
0x3061bb59dc0af20a3f8964372c942975713513697f0a06d05aeb661eb5214ceb459053216 hrs 50 mins ago0xdd98b423dc61a756e1070de151b14854255059540x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.00221658878606116 Ether
0x3061bb59dc0af20a3f8964372c942975713513697f0a06d05aeb661eb5214ceb459053216 hrs 50 mins ago0xdd98b423dc61a756e1070de151b14854255059540x6cb426d5a7d455f1610ec8bcc7b5fb4dd81968e41 wei
0xf017458dd89e474a92ddac5732d326290fb99d1fda6459aab1bb5903e0dbd6c7459052916 hrs 51 mins ago0xdd98b423dc61a756e1070de151b14854255059540x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.00371235710431565 Ether
0x910ecfae99bc40da38c33590383966121ce75bd5f7be26ce850b42c86d38241f459045517 hrs 6 mins ago0xdd98b423dc61a756e1070de151b14854255059540x6cb426d5a7d455f1610ec8bcc7b5fb4dd81968e40.443976355361332694 Ether
0xf5cfa6c88c8b672df7c060d5a53b568ead18346fbf0480c5fd8921a61ad91d56459045017 hrs 6 mins ago0xdd98b423dc61a756e1070de151b14854255059540x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.00371235710431565 Ether
0x6c975bd394fcb9618768dd5b98dc093c3767808bd5c3115d9a6a33425c0149ef459044517 hrs 8 mins ago0xdd98b423dc61a756e1070de151b14854255059540x3f8860b846635417a5bd35b5e01d105d677cc1190.426710755361332694 Ether
0x2464cf30ac821cf8b3be658a592f01114fe8a62eb33bcdd4cd65f00711bf291c459044417 hrs 9 mins ago0xdd98b423dc61a756e1070de151b14854255059540x6cb426d5a7d455f1610ec8bcc7b5fb4dd81968e40.483216355361332694 Ether
0x0087f9454247e9230df4ffabd61383c80407898df80427ebe968fd9b3cdff00d459044317 hrs 9 mins ago0xdd98b423dc61a756e1070de151b14854255059540x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.00371235710431565 Ether
0xf709f7417534a88fa361b5008bce56ad61503f6c53e10e4e8705c90bd1581c01459044117 hrs 9 mins ago0xdd98b423dc61a756e1070de151b14854255059540x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.00371235710431565 Ether
0x45c326ad7625601c7ae4b54e3352fd918b28de174550cb535ae5e48f3a361582459041617 hrs 13 mins ago0xdd98b423dc61a756e1070de151b14854255059540x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.00221658878606116 Ether
0x45c326ad7625601c7ae4b54e3352fd918b28de174550cb535ae5e48f3a361582459041617 hrs 13 mins ago0xdd98b423dc61a756e1070de151b14854255059540x6cb426d5a7d455f1610ec8bcc7b5fb4dd81968e41 wei
0xb04c180cdfc0041d2b15181b65e44f29e7cd935fb0a63368af9a588bde29a6ec459041617 hrs 13 mins ago0xdd98b423dc61a756e1070de151b14854255059540x51ffc1b089392a5bb65bf24eaf04d07d0e6f88b50.00195558878606116 Ether
0xb04c180cdfc0041d2b15181b65e44f29e7cd935fb0a63368af9a588bde29a6ec459041617 hrs 13 mins ago0xdd98b423dc61a756e1070de151b14854255059540x3f8860b846635417a5bd35b5e01d105d677cc1191 wei
0x9cd870efebb3e10fe125f8902b746c6db32801a727021c48e5efd45601bfd53d459041017 hrs 16 mins ago0xdd98b423dc61a756e1070de151b14854255059540x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.00371235710431565 Ether
0x1d5ce11970242711912ed9224ba70afa9f2e49d7071db15f711bb89595840955459041017 hrs 16 mins ago0xdd98b423dc61a756e1070de151b14854255059540x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.00371235710431565 Ether
0xf387e3e50e8919b35611b638343985aa040720851722717e43afbc0e1be1d338459040417 hrs 19 mins ago0xdd98b423dc61a756e1070de151b14854255059540x3f8860b846635417a5bd35b5e01d105d677cc1190.426318355361332694 Ether
0x9f3612c6567cf3bade44384a80e5b3d6be4af9689bfe5746a1fdd9ba10b59eb4459040217 hrs 19 mins ago0xdd98b423dc61a756e1070de151b14854255059540x3dbdc81a6edc94c720b0b88fb65dbd7e395fdcf60.00371235710431565 Ether
0xd63a4d8b1f0571f50fd1e3c3dd3988ab2f843376f73fad6b0ed20183d72b218a459038417 hrs 23 mins ago0xdd98b423dc61a756e1070de151b14854255059540x3f8860b846635417a5bd35b5e01d105d677cc1192.052816355361332694 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 = 5000; //probability of winning (10000 = 100%)
    uint constant edge = 190; //edge percentage (10000 = 100%)
    uint constant maxWin = 100; //max win (before edge is taken) as percentage of bankroll (10000 = 100%)
    uint constant minBet = 200 finney;
    uint constant maxInvestors = 10; //maximum number of investors
    uint constant houseEdge = 90; //edge percentage (10000 = 100%)
    uint constant divestFee = 50; //divest fee percentage (10000 = 100%)
    uint constant emergencyWithdrawalRatio = 10; //ratio percentage (100 = 100%)

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

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

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

    struct WithdrawalProposal {
        address toAddress;
        uint atTime;
    }

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

    uint public invested = 0;

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

    WithdrawalProposal public proposedWithdrawal;

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

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

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

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

    //SECTION I: MODIFIERS AND HELPER FUNCTIONS

    //MODIFIERS

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    //CONSTANT HELPER FUNCTIONS

    function getBankroll()
        constant
        returns(uint) {

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

    function getMinInvestment()
        constant
        returns(uint) {

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

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

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

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

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

    function numBets()
        constant
        returns(uint) {

        return betsKeys.length;
    }

    function getMinBetAmount()
        constant
        returns(uint) {

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

    function getMaxBetAmount()
        constant
        returns(uint) {

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

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

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

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

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

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

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

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

    function searchSmallestInvestor()
        constant
        returns(uint) {

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

        return investorID;
    }

    function changeOraclizeProofType(byte _proofType)
        onlyOwner {

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

    function changeOraclizeConfig(bytes32 _config)
        onlyOwner {

        oraclize_setConfig(_config);
    }

    // PRIVATE HELPERS FUNCTION

    function safeSend(address addr, uint value)
        private {

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

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

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

        LOG_SuccessfulSend(addr,value);
    }

    function addInvestorAtID(uint id)
        private {

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

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

    function profitDistribution()
        private
        onlyIfProfitNotDistributed {

        uint copyInvested;

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

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

        delete investorsProfit;
        delete investorsLosses;
        invested = copyInvested;

        profitDistributed = true;
    }

    // SECTION II: BET & BET PROCESSING

    function()
        payable {

        bet();
    }

    function bet()
        payable
        onlyIfNotStopped {

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

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

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

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

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

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

        investorsLosses += winAmount - thisBet.amountBet;
    }

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

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

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

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

    //SECTION III: INVEST & DIVEST

    function increaseInvestment()
        payable
        onlyIfNotStopped
        onlyMoreThanZero
        onlyInvestors  {

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

    function newInvestor()
        payable
        onlyIfNotStopped
        onlyMoreThanZero
        onlyNotInvestors
        onlyMoreThanMinInvestment
        investorsInvariant {

        profitDistribution();

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

        numInvestors++;
        addInvestorAtID(numInvestors);
    }

    function divest()
        onlyInvestors {

        divest(msg.sender);
    }


    function divest(address currentInvestor)
        private
        investorsInvariant {

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

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

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

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

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

    function forceDivestOfAllInvestors()
        onlyOwner {

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

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

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

    //SECTION IV: CONTRACT MANAGEMENT

    function stopContract()
        onlyOwner {

        isStopped = true;
        LOG_ContractStopped();
    }

    function resumeContract()
        onlyOwner {

        isStopped = false;
        LOG_ContractResumed();
    }

    function changeHouseAddress(address newHouse)
        onlyOwner {

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

    function changeOwnerAddress(address newOwner)
        onlyOwner {

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

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

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

    //SECTION V: EMERGENCY WITHDRAWAL

    function voteEmergencyWithdrawal(bool vote)
        onlyInvestors
        onlyAfterProposed
        onlyIfStopped {

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

    function proposeEmergencyWithdrawal(address withdrawalAddress)
        onlyIfStopped
        onlyOwner {

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

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

    function executeEmergencyWithdrawal()
        onlyOwner
        onlyAfterProposed
        onlyIfStopped
        onlyIfEmergencyTimeOutHasPassed {

        uint numOfVotesInFavour;
        uint amountToWithdraw = this.balance;

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

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

}

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

  Contract Creation Code Switch To Opcodes View
60606040526108fc600255600060055560006006556000600d556000600e553462000000575b6200005e7f1100000000000000000000000000000000000000000000000000000000000000640100000000620024376200009882021704565b600780546c0100000000000000000000000033810204600160a060020a031991821681179092556008805490911690911790555b6200033f565b600054600160a060020a03161515620000c757620000c560006401000000006200288c620001fe82021704565b505b600060009054906101000a9004600160a060020a0316600160a060020a03166338cc4831600060405160200152604051817c0100000000000000000000000000000000000000000000000000000000028152600401809050602060405180830381600087803b15620000005760325a03f1156200000057505060408051805160018054600160a060020a0319166c010000000000000000000000009283029290920491909117908190557f688dcfd70000000000000000000000000000000000000000000000000000000082527fff00000000000000000000000000000000000000000000000000000000000000851660048301529151600160a060020a03909216925063688dcfd791602480830192600092919082900301818387803b15620000005760325a03f11562000000575050505b5b50565b6000806200022e731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed64010000000062002adb6200033782021704565b111562000264575060008054600160a060020a031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed179055600162000332565b60006200029373c03a2615d5efaf5f49f60b7bb6583eaec212fdf164010000000062002adb6200033782021704565b1115620002c9575060008054600160a060020a03191673c03a2615d5efaf5f49f60b7bb6583eaec212fdf1179055600162000332565b6000620002f87351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa64010000000062002adb6200033782021704565b11156200032e575060008054600160a060020a0319167351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa179055600162000332565b5060005b919050565b803b5b919050565b612c6c806200034e6000396000f3606060405236156101d75760e060020a6000350463058aace181146101e8578063061e494f146101f75780630d1fce421461022f57806311610c251461024e578063116c6eab1461025857806312253a6c1461027a578063132ae5e9146102895780631514ea54146102a8578063187a62d5146102ca5780631efb17ee146102dc578063232523e8146102ee57806327dc297e146102fd57806338bbfa50146103535780633f683b6a146103e65780633feb5f2b1461040757806340a49a96146104415780634671e65e146104605780634e69d560146104725780635125796a146104c057806351404cbe146104d2578063518496b2146104e4578063550ed1f0146105145780636128a4f31461053357806366aee0fc146105525780636be80de71461057157806371d0ed0514610593578063724ae9d0146105b557806382a5285d146105d457806385eac05f146105f35780638da5cb5b14610605578063a4beffa71461062e578063c4bc5da514610638578063c902c3ae14610647578063cafb22021461067f578063d21d79501461069e578063d7cee31e146106b0578063da0bba7b146106d9578063df06f906146106eb578063f4993bbd1461070a578063f8b2cb4f14610719578063fb099c841461073b575b6101e65b6101e3610745565b5b565b005b34610000576101e6610a08565b005b3461000057610207600435610a39565b60408051600160a060020a039094168452602084019290925282820152519081900360600190f35b346100005761023c610aa3565b60408051918252519081900360200190f35b6101e6610745565b005b346100005761023c600435610af0565b60408051918252519081900360200190f35b34610000576101e6610b32565b005b346100005761023c610b90565b60408051918252519081900360200190f35b346100005761023c600435610b96565b60408051918252519081900360200190f35b34610000576101e6600435610bd8565b005b34610000576101e6600435610ca5565b005b34610000576101e6610d3b565b005b346100005760408051602060046024803582810135601f81018590048502860185019096528585526101e69583359593946044949392909201918190840183828082843750949650610db795505050505050565b005b346100005760408051602060046024803582810135601f81018590048502860185019096528585526101e6958335959394604494939290920191819084018382808284375050604080516020601f89358b01803591820183900483028401830190945280835297999881019791965091820194509250829150840183828082843750949650610de695505050505050565b005b34610000576103f361101e565b604080519115158252519081900360200190f35b346100005761041760043561102e565b60408051600160a060020a0390941684526020840192909252151582820152519081900360600190f35b346100005761023c61105c565b60408051918252519081900360200190f35b34610000576101e66004356110c9565b005b346100005761047f61118e565b604080519889526020890197909752878701959095526060870193909352608086019190915260a085015260c084015260e083015251908190036101000190f35b34610000576101e66004356111f1565b005b34610000576101e6600435611236565b005b34610000576104f161128d565b60408051600160a060020a03909316835260208301919091528051918290030190f35b346100005761023c6112a2565b60408051918252519081900360200190f35b346100005761023c6113ac565b60408051918252519081900360200190f35b346100005761023c6113b2565b60408051918252519081900360200190f35b346100005761023c6004356113b8565b60408051918252519081900360200190f35b346100005761023c6004356113ca565b60408051918252519081900360200190f35b346100005761023c6113eb565b60408051918252519081900360200190f35b346100005761023c61143f565b60408051918252519081900360200190f35b34610000576101e6600435611530565b005b34610000576106126115c6565b60408051600160a060020a039092168252519081900360200190f35b6101e66115d5565b005b34610000576101e6611664565b005b34610000576102076004356116bc565b60408051600160a060020a039094168452602084019290925282820152519081900360600190f35b346100005761023c6116e7565b60408051918252519081900360200190f35b34610000576101e66004356116ed565b005b3461000057610612611774565b60408051600160a060020a039092168252519081900360200190f35b34610000576101e6600435611783565b005b346100005761023c6117ac565b60408051918252519081900360200190f35b34610000576101e66117b3565b005b346100005761023c60043561195b565b60408051918252519081900360200190f35b6101e66119dc565b005b600060006000600860149054906101000a900460ff161561076557610000565b600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060408051805160025460006020938401819052845160e260020a630bbceb330281526202ab989092016024830152600482018590526003604483015260ea60020a621554930260648301529351600160a060020a039092169450632ef3accc9360848083019493928390030190829087803b156100005760325a03f1156100005750506040515193505034831061085957610000565b8234039150612710610869610aa3565b606402811561000057046113886112ca8402041115801561089257506702c68af0bb1400008210155b156109fc5760408051600160a060020a03331681526020810184905281517fa39417f926ed806b475d2cd74083819551616e7fdb3f5bb7abf8e893eae244b4929181900390910190a1610942604060405190810160405280600681526020017f6e657374656400000000000000000000000000000000000000000000000000008152602001506101c0604051908101604052806101898152602001612ae361018991396002546202ab9801611aa5565b6040805160608101825233815260208082018681526000838501818152868252600b9093529390932091518254600160a060020a031916606060020a9182029190910417825591516001808301919091559151600290910155600c80549182018082559293509182818380158290116109e0576000838152602090206109e09181019083015b808211156109dc57600081556001016109c8565b5090565b5b505050916000526020600020900160005b5082905550610a01565b610000565b5b5b505050565b600160a060020a0333166000908152600360205260409020541515610a2c57610000565b6101e333611d81565b5b5b565b6000600060006000600c80549050851015610a9a57600c85815481101561000057906000526020600020900160005b50546000818152600b6020526040902080546001820154600290920154600160a060020a039091169650909450925090505b5b509193909250565b6000600d546006541080610abc5750600654600d548101105b80610ace5750600e54600d5460065401105b15610adf57506000610aec56610aec565b50600e54600d5460065401035b5b90565b600654600d54600160a060020a03831660009081526003602090815260408083205483526004909152812060010154909291028115610000570490505b919050565b60075433600160a060020a03908116911614610b4d57610000565b6008805460a060020a60ff02191660a060020a1790556040517f3bb54b4ced112fe0d4fa7efd42b29a0a9036fde6e206de4290c4ff02d2dc2c5c90600090a15b5b565b60055481565b600654600e54600160a060020a03831660009081526003602090815260408083205483526004909152812060010154909291028115610000570490505b919050565b600160a060020a0333166000908152600360205260409020541515610bfc57610000565b600954600160a060020a03161515610c1357610000565b60085460a060020a900460ff161515610c2b57610000565b33600160a060020a031660008181526003602090815260408083205483526004825291829020600201805460ff191660f860020a8681020417905581519283528315159083015280517fea22ee15de9c385abeff072b23d6e0de5ebda8c59098f5585f45e82b9faa57629281900390910190a15b5b5b5b50565b60075433600160a060020a03908116911614610cc057610000565b600160a060020a0381161515610cd557610000565b60088054600160a060020a031916606060020a83810204179081905560408051600160a060020a039283168152918316602083015280517fb750ac854b12114073b8c76dcfe5fb889b30db5d3d60e07abc8ae66c349d7a689281900390910190a15b5b50565b600754600090819033600160a060020a03908116911614610d5b57610000565b505060055460015b818111610db157600160005260046020527fabd6e7cb50984ff9c2f3e18a2660c3353dadf4e3291deeb275dae2cd1e44fe0554610da890600160a060020a0316611d81565b5b600101610d63565b5b5b5050565b610db182826000604051805910610dcb5750595b8181526020808302820101604052905b50610de6565b5b5050565b6000610df0611fad565b600160a060020a031633600160a060020a0316141515610e0f57610000565b6000848152600b60205260409020548490600160a060020a03161515610e3457610000565b6000858152600b60205260408120600201548691901115610e5457610000565b85856000610e61826120c6565b90506001811080610e73575061271081115b8015610e8e57506000838152600b6020526040902060020154155b15610eca576000838152600b602052604090206201869f60028201558054600190910154610ec591600160a060020a0316906120db565b611010565b88612710610ed6610aa3565b6064028115610000576000838152600b602052604090206001015491900490611388906112ca020411158015610f2657506000818152600b60205260409020600101546702c68af0bb1400009010155b15610fda57610f34896120c6565b60008b8152600b60209081526040918290206002810184905582516060810184528154600160a060020a0316815260019091015491810191909152908101829052909750610f82908861228f565b60008a8152600b602090815260409182902082516060810184528154600160a060020a031681526001820154928101929092526002015491810191909152610fca908861234c565b600f805460ff191690555b61100c565b6000818152600b602052604090206201869f60028201558054600190910154610fd591600160a060020a0316906120db565b5b5b505b5050505b505b505b50505050565b60085460a060020a900460ff1681565b600460205260009081526040902080546001820154600290920154600160a060020a03909116919060ff1683565b60006001805b60055481116110c05760008281526004602052604090205461108c90600160a060020a031661195b565b6000828152600460205260409020546110ad90600160a060020a031661195b565b10156110b7578091505b5b600101611062565b8192505b505090565b60085460009060a060020a900460ff1615156110e457610000565b60075433600160a060020a039081169116146110ff57610000565b5060015b600554811161112e576000818152600460205260409020600201805460ff191690555b600101611103565b60408051808201825283815242602090910181905260098054600160a060020a031916606060020a80870204179055600a55517f6c0eb56f121418f16eaebbe01cb2694897b8578b3b1c549e634a1b7753ed2d8b90600090a15b5b5b5050565b60006000600060006000600060006000600060006111aa610aa3565b91506111b46113eb565b600e54600d54600c54949c506113889b5060be9a50606499506702c68af0bb14000098500395509350909150889050825b50509091929394959697565b60075433600160a060020a0390811691161461120c57610000565b600160f860020a03198116151561122257610000565b610c9f60f860020a8217612437565b5b5b50565b60075433600160a060020a0390811691161461125157610000565b60085460a060020a900460ff16151561126957610000565b61127281611d81565b60098054600160a060020a03191690556000600a555b5b5b50565b600954600a54600160a060020a039091169082565b60008054604080516020908101849052815160e060020a6338cc4831028152915184938493600160a060020a03909116926338cc48319260048084019382900301818787803b156100005760325a03f11561000057505060408051805160025460006020938401819052845160e260020a630bbceb330281526202ab989092016024830152600482018590526003604483015260ea60020a621554930260648301529351600160a060020a039092169450632ef3accc9360848083019493928390030190829087803b156100005760325a03f1156100005750506040515192506302ddf2a09050611388611394610aa3565b6064020281156100005704905081810192505b505090565b600e5481565b600d5481565b60036020526000908152604090205481565b600c81815481101561000057906000526020600020900160005b5054905081565b60006000600a60055414156114315761140261105c565b60008181526004602052604090205490915061142690600160a060020a031661195b565b91506109dc566109dc565b600091506109dc565b5b5090565b60008054604080516020908101849052815160e060020a6338cc483102815291518493600160a060020a0316926338cc483192600480830193919282900301818787803b156100005760325a03f11561000057505060408051805160025460006020938401819052845160e260020a630bbceb330281526202ab989092016024830152600482018590526003604483015260ea60020a621554930260648301529351600160a060020a039092169450632ef3accc9360848083019493928390030190829087803b156100005760325a03f115610000575050604051516702c68af0bb140000810193509150505b5090565b60075433600160a060020a0390811691161461154b57610000565b600160a060020a038116151561156057610000565b60078054600160a060020a031916606060020a83810204179081905560408051600160a060020a039283168152918316602083015280517f4f67fe223bca69f22bf24552638f3c95bfb9e9763c4a33a3aa67a46484d81c2b9281900390910190a15b5b50565b600754600160a060020a031681565b60085460a060020a900460ff16156115ec57610000565b3415156115f857610000565b600160a060020a033316600090815260036020526040902054151561161c57610000565b61162461254e565b600160a060020a0333166000908152600360209081526040808320548352600490915290206001018054349081019091556006805490910190555b5b5b5b565b60075433600160a060020a0390811691161461167f57610000565b6008805460a060020a60ff02191690556040517fadf8f79dd508a8e1881e3cca67a5af02a21f971925c3a6a6cb8fc165d07e346390600090a15b5b565b600b60205260009081526040902080546001820154600290920154600160a060020a03909116919083565b60065481565b60075433600160a060020a0390811691161461170857610000565b806202ab98816202ab9801101561171e57610000565b6161a881101561172d57610000565b6002829055604080518381526020810184905281517fb5e4ece1f96cc168fddcead7ee209f969a93607238c585767ea80fad5fe884b2929181900390910190a15b5b505b50565b600854600160a060020a031681565b60075433600160a060020a0390811691161461179e57610000565b610c9f816126e9565b5b5b50565b600c545b90565b6007546000908190819033600160a060020a039081169116146117d557610000565b600954600160a060020a031615156117ec57610000565b60085460a060020a900460ff16151561180457610000565b426203f48060096001015401111561181b57610000565b5050600160a060020a0330163160015b600554811161187c5760008181526004602052604090206002015460ff16151560011415611873576000818152600460205260409020600201805460ff191690556001909201915b5b60010161182b565b600554606490600a020483106109fc57600954604051600160a060020a039091169083156108fc029084906000818181858888f1935050505015156118ff5760095460408051600160a060020a039092168252517f0fd1ed783bf9505e3fc2545a18e022b8bd048d240d98a3c959646ccebd569b399181900360200190a1611947565b60095460408051600160a060020a0390921682526020820184905280517fe0376e740df28d6cbdef46880b37136bc75e027766e3295d4af8a44c557ae7329281900390910190a15b610a01565b610000565b5b5b5b5b5b505050565b600160a060020a03811660009081526003602090815260408083205483526004909152812060010154818061198f85610af0565b915061199a85610b96565b90508182840110806119ad575082828401105b806119b9575080828401105b156119cb57600093506119d3566119d3565b808284010393505b5b505050919050565b60085460009060a060020a900460ff16156119f657610000565b341515611a0257610000565b600160a060020a03331660009081526003602052604090205415611a2557610000565b611a2d6113eb565b3411611a3857610000565b611a4061254e565b600a6005541415611a7757611a5361105c565b600081815260046020526040902054909150611a7790600160a060020a0316611d81565b5b6005805460010190819055611a8c906127f7565b5b600a6005541115610c9f57610000565b5b5b5b5b5b50565b600080548190600160a060020a03161515611ac657611ac4600061288c565b505b600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f1156100005750505060405180519060200150600160006101000a815481600160a060020a030219169083606060020a908102040217905550600160009054906101000a9004600160a060020a0316600160a060020a0316632ef3accc86856000604051602001526040518360e060020a02815260040180806020018381526020018281038252848181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f168015611bf65780820380516001836020036101000a031916815260200191505b509350505050602060405180830381600087803b156100005760325a03f11561000057505060405151915050670de0b6b3a76400003a840201811115611c3f5760009150611d78565b600160009054906101000a9004600160a060020a0316600160a060020a031663c51be90f8260008888886000604051602001526040518660e060020a0281526004018085815260200180602001806020018481526020018381038352868181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f168015611cee5780820380516001836020036101000a031916815260200191505b508381038252858181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f168015611d475780820380516001836020036101000a031916815260200191505b5096505050505050506020604051808303818588803b156100005761235a5a03f11561000057505060405151935050505b5b509392505050565b6000600060006000611d9161254e565b600160a060020a0385166000908152600360205260409020549350611db58561195b565b6000858152600460205260409020600101546006549194509010611f54576000848152600460209081526040808320600181018054600680549190910390558154600160a060020a0319168255849055600201805460ff19169055600160a060020a038816835260039091528120556005546127106032850204938490039392508414611ee157506005805460009081526004602081815260408084208054600160a060020a039081168652600384528286208a90558986529390925280842082548154606060020a91909516810204600160a060020a031994851617815560018084015482820155600280850154928101805460f860020a60ff90951685029490940460ff199485161790559654865291852080549094168455908301939093559201805490911690555b60058054600019019055611ef585846120db565b600854611f0b90600160a060020a0316836120db565b60408051600160a060020a03871681526020810185905281517f3026a12843449d7e7377f8932a40bdb5d1b1125efbfbe147132016f8beac0f34929181900390910190a1611f94565b6008805460a060020a60ff02191660a060020a1790556040517f52e578ad17dc8fe0ff456fdf1f81516f7d29eb85fff301475a3a29d0e84bb31a90600090a15b5b600a600554111561101657610000565b5b5050505050565b60008054600160a060020a03161515611fcc57611fca600061288c565b505b600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060408051805160018054600160a060020a031916606060020a9283029290920491909117908190556000602092830181905283517fc281d19e0000000000000000000000000000000000000000000000000000000081529351600160a060020a03909216945063c281d19e936004808201949392918390030190829087803b156100005760325a03f115610000575050604051519150505b5b90565b60006120d3826000612990565b90505b919050565b801515612110576040517f4763e3feef50167ae1957a20ba2b75b5f4093062392e81d5e351b709b1d8261f90600090a1610db1565b8030600160a060020a0316311015612150576040517f504b0ae89b95779262e99243870eb936180a8c33b444f17f01807c40a20c7aa790600090a1610db1565b600254604051600160a060020a038416919083906000818181858888f1935050505015156122445760408051600160a060020a03841681526020810183905281517f949201d78c50a6b453f7068ed19a5c7d74aaa07c12cadfd3855357a0b0f47405929181900390910190a1600854600160a060020a0383811691161461224457600854600254604051600160a060020a039092169183906000818181858888f1935050505015156122445760085460408051600160a060020a0390921682526020820183905280517f949201d78c50a6b453f7068ed19a5c7d74aaa07c12cadfd3855357a0b0f474059281900390910190a15b5b5b60408051600160a060020a03841681526020810183905281517fc7e416c5685d8971558840f05c5e63e02575b29997d8da6b9ba44dc10da6a370929181900390910190a15b5050565b60008161138860018203101561101857602084015161138890612652020491507fa5acb022726d980b249ddc212f4992ad87f28c093550232fcc48bd8af803f2d5846000015184846040518084600160a060020a03168152602001838152602001828152602001935050505060405180910390a1835161230f90836120db565b600e5482810110806123285750836020015182600e5401105b1561233257610000565b6020840151600e805491840390910190555b5b5b50505050565b6000808261138860001982011061101657845160408051600160a060020a0390921682526020820186905280517ff6db2bace4ac8277384553ad9603d045220a91fb2448ab6130d7a6f044f9a8cf9281900390910190a184516123b09060016120db565b600d546020860151810110806123cd57506020850151600d548101105b806123dc575084602001516001145b156123e657610000565b6020850151600d5481016000199081019450612710916126b6910102600d8054929091049190910190819055600854908403925061101690600160a060020a0316836120db565b5b5b5b5050505050565b600054600160a060020a0316151561245557612453600061288c565b505b600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060408051805160018054600160a060020a031916606060020a9283029290920491909117908190557f688dcfd7000000000000000000000000000000000000000000000000000000008252600160f860020a0319851660048301529151600160a060020a03909216925063688dcfd791602480830192600092919082900301818387803b156100005760325a03f115610000575050505b5b50565b600f54600090819081908190819060ff16151561101657600193505b60055484116126c357600084815260046020526040902054600160a060020a0316925061259683610af0565b91506125a183610b96565b600085815260046020526040902060010154909150828101108015906125db57506000848152600460205260409020600101548201819010155b156126445760008481526004602090815260409182902060010180548486039081019091558251600160a060020a03871681529182015281517f8ff49347da9034aab52b79ac6b2ba8cf17d221516834af5e5fa04bef1df4d7cd929181900390910190a1612684565b6008805460a060020a60ff02191660a060020a1790556040517f52e578ad17dc8fe0ff456fdf1f81516f7d29eb85fff301475a3a29d0e84bb31a90600090a15b60008481526004602052604090206001015485018590106126b75760008481526004602052604090206001015494909401935b5b60019093019261256a565b6000600d819055600e556006859055600f805460ff191660011790555b5b5b5050505050565b600054600160a060020a0316151561270757612705600061288c565b505b600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316000604051602001526040518160e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060408051805160018054600160a060020a031916606060020a9283029290920491909117908190557fe8a5282d000000000000000000000000000000000000000000000000000000008252600482018590529151600160a060020a03909216925063e8a5282d91602480830192600092919082900301818387803b156100005760325a03f115610000575050505b5b50565b33600160a060020a038116600081815260036020908152604080832086905585835260048252918290208054600160a060020a031916606060020a958602959095049490941784553460019094018490556006805485019055815192835282019290925281517fa4a46f45c9996c78320ae470714f930acba653b022fddec1735c1400209780e4929181900390910190a15b50565b600060006128ad731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed612adb565b11156128e1575060008054600160a060020a031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed1790556001610b2d565b600061290073c03a2615d5efaf5f49f60b7bb6583eaec212fdf1612adb565b1115612934575060008054600160a060020a03191673c03a2615d5efaf5f49f60b7bb6583eaec212fdf11790556001610b2d565b60006129537351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa612adb565b1115612987575060008054600160a060020a0319167351efaf4c8b3c9afbd5ab9f4bbc82784ab6ef8faa1790556001610b2d565b5060005b919050565b6040805160208101909152600090819052828180805b8351811015612abb57603060f860020a02848281518110156100005790602001015160f860020a900460f860020a02600160f860020a03191610158015612a1b5750603960f860020a02848281518110156100005790602001015160f860020a900460f860020a02600160f860020a03191611155b15612a76578115612a3e57851515612a3657612abb56612a3e565b600019909501945b5b600a830292506030848281518110156100005790602001015160f860020a900460f860020a0260f860020a90040383019250612ab1565b838181518110156100005790602001015160f860020a900460f860020a02600160f860020a031916602e60f860020a021415612ab157600191505b5b5b6001016129a6565b6000861115612acd5785600a0a830292505b8294505b5050505092915050565b803b5b919050565b55524c5d205b276a736f6e2868747470733a2f2f6170692e72616e646f6d2e6f72672f6a736f6e2d7270632f312f696e766f6b65292e726573756c742e72616e646f6d2e646174612e30272c20275c6e7b226a736f6e727063223a22322e30222c226d6574686f64223a2267656e65726174655369676e6564496e746567657273222c22706172616d73223a7b226170694b6579223a247b5b646563727970745d20424746564667456d785a5449706731752b4f61616b6e394d3032524e7a7455347a675532336737384a77396a55446a56366e4676356c564f50676e3877513461335744314d304776433157577657664a6973556b7a4f6c6d536e505a4f58544a737873554b7a38304466515a6c506d485a365345354e7734544b7677465066524b4b566e72336c6b34624177752f69695533494271585a64526664335239553d7d2c226e223a312c226d696e223a312c226d6178223a3130303030247b5b6964656e746974795d20227d227d2c226964223a31247b5b6964656e746974795d20227d227d275d
View All
Block Age 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.