Contract Overview
ETH Balance: 0 Ether
ETH USD Value: $0
No Of Transactions: 2805 txns + 2992 internalTxns
  Latest 25 txns from a total Of 2805 transactions View All

TxHash Block Age From To Value [TxFee]
0x3a03a63152dbc61dd0979273f9f16469782b8e8231faa2226453a44ff6859bca284275999 days 13 hrs ago0xa1b5f95be71ffa2f86adefcaa0028c46fe825161  IN  0xd3c9836230d43e85c643607cec509138f2955da80 Ether0.00116375
0xba2bd70909c9557461aa92d5a2840ed93839b7a75cbb05dd8e72795394a947a92796046107 days 6 hrs ago0xa1b5f95be71ffa2f86adefcaa0028c46fe825161  IN  0xd3c9836230d43e85c643607cec509138f2955da80 Ether0.00191206
0xfe8abb96f2a9b5dea8e26370cb998cc9175c665ccae9446866d85b6258d1d3db2796030107 days 6 hrs ago0xa1b5f95be71ffa2f86adefcaa0028c46fe825161  IN  0xd3c9836230d43e85c643607cec509138f2955da80 Ether0.00179256
0x4e5ddeb768de3db547e12b4aedb60f5d93ae10d63041b45077bfde2e27c63c242796021107 days 6 hrs ago0xa1b5f95be71ffa2f86adefcaa0028c46fe825161  IN  0xd3c9836230d43e85c643607cec509138f2955da80 Ether0.00119464
0xd4073e2253b8fce6630d38636c82a5c02a3ea3165a8ba3f58c9465efd3535e062795992107 days 6 hrs ago0xa1b5f95be71ffa2f86adefcaa0028c46fe825161  IN  0xd3c9836230d43e85c643607cec509138f2955da80.01 Ether0.00551117
0xa641b69d1ee17bf1a9088ccd5f2fd2774d91432f0911c538dd6e53f96c0467e62795976107 days 6 hrs ago0xa1b5f95be71ffa2f86adefcaa0028c46fe825161  IN  0xd3c9836230d43e85c643607cec509138f2955da80 Ether0.00113561
0x54915839d2313012c5720d95838bd2804678ef9faa1ff1942de6bb675545c7a62795959107 days 6 hrs ago0xa1b5f95be71ffa2f86adefcaa0028c46fe825161  IN  0xd3c9836230d43e85c643607cec509138f2955da80 Ether0.00267361
0xa54caaefe0cfa0a6d869c89c2200ef7c8f5d431e3162e348af393dea2c8d1ff92795956107 days 6 hrs ago0xa1b5f95be71ffa2f86adefcaa0028c46fe825161  IN  0xd3c9836230d43e85c643607cec509138f2955da80 Ether0.00111319
0x4d5182543ee177be955d59711693e376a14ea16093ee4cffcc179725c440b0592795938107 days 7 hrs ago0xa1b5f95be71ffa2f86adefcaa0028c46fe825161  IN  0xd3c9836230d43e85c643607cec509138f2955da80 Ether0.00159338
0xe3d015e5c9d2e2236daf5149d04037482b984633a3c0372e049f08ce1542c8722795888107 days 7 hrs ago0xa1b5f95be71ffa2f86adefcaa0028c46fe825161  IN  0xd3c9836230d43e85c643607cec509138f2955da80 Ether0.00098773
0xe7a8019ab03b364961bf7b52c14861dd60e00b9a44942465f81bac0d394835a12795872107 days 7 hrs ago0xa1b5f95be71ffa2f86adefcaa0028c46fe825161  IN  0xd3c9836230d43e85c643607cec509138f2955da80 Ether0.01328773
0x8014ff1fac01b07985a34f65eb43c0a80ac2445902bf28ac1088bcbbf6d2d2f02795816107 days 7 hrs ago0xa1b5f95be71ffa2f86adefcaa0028c46fe825161  IN  0xd3c9836230d43e85c643607cec509138f2955da81 Ether0.00513541
0xd3d5a8d31156a1948600f568f2bbe7a64ae62d3ae404bfd2f560ae16681b95e12795791107 days 7 hrs ago0xa1b5f95be71ffa2f86adefcaa0028c46fe825161  IN  0xd3c9836230d43e85c643607cec509138f2955da80 Ether0.01369773
0x65f3dd75a8e3ec55c8149ea500fff10fae6068beaa566d01a541232aaa2109c12795779107 days 7 hrs ago0xa1b5f95be71ffa2f86adefcaa0028c46fe825161  IN  0xd3c9836230d43e85c643607cec509138f2955da80 Ether0.00098773
0x974025ef645c2173de97879059cf79e582f37103b7f0a20f6dd97456a74c2fdc2795746107 days 7 hrs ago0xa1b5f95be71ffa2f86adefcaa0028c46fe825161  IN  0xd3c9836230d43e85c643607cec509138f2955da80 Ether0.00098773
0x4f2536d56839b65ad49710e566b06db0c50a25f5f3b9d36bb65e23c06e6617c72795743107 days 7 hrs ago0xa1b5f95be71ffa2f86adefcaa0028c46fe825161  IN  0xd3c9836230d43e85c643607cec509138f2955da80 Ether0.13612
0xf2ff5cb50ee0295ee67a621771c49c1c1313ac3febbb35807b2141e7aa4eb5d82795735107 days 7 hrs ago0xa1b5f95be71ffa2f86adefcaa0028c46fe825161  IN  0xd3c9836230d43e85c643607cec509138f2955da80 Ether0.13612
0x5e868856e85e51615df807875ec92d7ea02748a424fbad9d3392975b551bf2f32795727107 days 7 hrs ago0xa1b5f95be71ffa2f86adefcaa0028c46fe825161  IN  0xd3c9836230d43e85c643607cec509138f2955da80 Ether0.013612
0xc659e171c977eb59f23dff3ddef373a7bd03b8debcbdaff76456a319d67c252d2795501107 days 8 hrs ago0xa1b5f95be71ffa2f86adefcaa0028c46fe825161  IN  0xd3c9836230d43e85c643607cec509138f2955da80 Ether0.00461426
0x60ebe8d430a8b21c4f7c26be1947340f05e9c3220310cbfc93bcd5c1d62e40642763867112 days 13 hrs agoOraclize  IN  0xd3c9836230d43e85c643607cec509138f2955da80 Ether0.00468
0x0831fa2a19cf4bd67db6207a033d7c1015bdc2d3f077b88e61454071f6f1a7d92763867112 days 13 hrs agoOraclize  IN  0xd3c9836230d43e85c643607cec509138f2955da80 Ether0.014304
0x8a4a03e20d00575f8de91c443d934b649b1708569929c555f3986e0842db22732661716129 days 12 hrs agoOraclize  IN  0xd3c9836230d43e85c643607cec509138f2955da80 Ether0.0020081
0xaf4a37dc255ce09178126edb6b0561da006113e592236067acaf56a5075f576c2661710129 days 12 hrs ago0x023029c16401999362cbce489121ef9c43032c1f  IN  0xd3c9836230d43e85c643607cec509138f2955da80.4 Ether0.00292664
0x0c571cae137690e5077d3c2be777904debdcd1dc78d3b665d6929019e2ba173b2661691129 days 12 hrs ago0x023029c16401999362cbce489121ef9c43032c1f  IN  0xd3c9836230d43e85c643607cec509138f2955da80.4 Ether0.00146955
0x8fab086f412da3102b272bb03ce47e31773cfb02936a11172ded1fb6fc940b142661640129 days 13 hrs agoOraclize  IN  0xd3c9836230d43e85c643607cec509138f2955da80 Ether0.00184848

[Download: CSV Export ]    
 Internal Transactions as a result of Contract Execution
  Latest 25 Internal Txns from a total of 2992 View All
ParentTxHash Block Age From To Value
0x3a03a63152dbc61dd0979273f9f16469782b8e8231faa2226453a44ff6859bca284275999 days 13 hrs ago0xd3c9836230d43e85c643607cec509138f2955da80xa1b5f95be71ffa2f86adefcaa0028c46fe82516152.302663958604610795 Ether
0x4d5182543ee177be955d59711693e376a14ea16093ee4cffcc179725c440b0592795938107 days 7 hrs ago0xd3c9836230d43e85c643607cec509138f2955da80xa1b5f95be71ffa2f86adefcaa0028c46fe8251610.99 Ether
0x4d5182543ee177be955d59711693e376a14ea16093ee4cffcc179725c440b0592795938107 days 7 hrs ago0xd3c9836230d43e85c643607cec509138f2955da80xa1b5f95be71ffa2f86adefcaa0028c46fe8251610.01 Ether
0x60ebe8d430a8b21c4f7c26be1947340f05e9c3220310cbfc93bcd5c1d62e40642763867112 days 13 hrs ago0xd3c9836230d43e85c643607cec509138f2955da80xff01c6d89f82f1908b7afb07b574a23fb02d107e0.310715294056074812 Ether
0x0831fa2a19cf4bd67db6207a033d7c1015bdc2d3f077b88e61454071f6f1a7d92763867112 days 13 hrs ago0xd3c9836230d43e85c643607cec509138f2955da80xa1b5f95be71ffa2f86adefcaa0028c46fe8251610.304902542056074812 Ether
0x8a4a03e20d00575f8de91c443d934b649b1708569929c555f3986e0842db22732661716129 days 12 hrs ago0xd3c9836230d43e85c643607cec509138f2955da80x023029c16401999362cbce489121ef9c43032c1f1 wei
0x8a4a03e20d00575f8de91c443d934b649b1708569929c555f3986e0842db22732661716129 days 12 hrs ago0xd3c9836230d43e85c643607cec509138f2955da80xa1b5f95be71ffa2f86adefcaa0028c46fe8251610.001965529595015576 Ether
0xaf4a37dc255ce09178126edb6b0561da006113e592236067acaf56a5075f576c2661710129 days 12 hrs ago0xd3c9836230d43e85c643607cec509138f2955da80x001a589dda0d6be37632925eaf1256986b2c6ad00.0068940809968847 Ether
0x8fab086f412da3102b272bb03ce47e31773cfb02936a11172ded1fb6fc940b142661640129 days 13 hrs ago0xd3c9836230d43e85c643607cec509138f2955da80x023029c16401999362cbce489121ef9c43032c1f0.383382542056074812 Ether
0xaf09a90ffc5171fd21bbdeb2b2d47474dcb83a20d7cce0d38f5bad92d6c98cf72661619129 days 13 hrs ago0xd3c9836230d43e85c643607cec509138f2955da80x001a589dda0d6be37632925eaf1256986b2c6ad00.0068940809968847 Ether
0x9002eaa1d7de2f45892514c62e11aa22d4987c82e73f55dd972abe79cd758aae2661384129 days 14 hrs ago0xd3c9836230d43e85c643607cec509138f2955da80x023029c16401999362cbce489121ef9c43032c1f0.317982542056074812 Ether
0x0adeb06fe508c6575c8dd73bd8e0a1ff901eb7e987a6eaeffb04e8f3988d4bab2661370129 days 14 hrs ago0xd3c9836230d43e85c643607cec509138f2955da80x001a589dda0d6be37632925eaf1256986b2c6ad00.0068940809968847 Ether
0xd0aef3c8aa3a83685cfa78b7d3255ec039ec61a0f5280f96e86d4a13f1f41e1b2661174129 days 14 hrs ago0xd3c9836230d43e85c643607cec509138f2955da80x023029c16401999362cbce489121ef9c43032c1f0.281358542056074812 Ether
0xaae71dda7594cc6e3bb79e9afaa0922912e74f5e849618491f2df13df46568052661157129 days 15 hrs ago0xd3c9836230d43e85c643607cec509138f2955da80x001a589dda0d6be37632925eaf1256986b2c6ad00.0068940809968847 Ether
0x8755e2abf36641ee9d30f74d9470177665db4abf0a88a553e2d7fb3ec624b9c12660150129 days 19 hrs ago0xd3c9836230d43e85c643607cec509138f2955da80xa25f05e1ac13dfc31b0ba86b14b0f5bc349002a01 wei
0x8755e2abf36641ee9d30f74d9470177665db4abf0a88a553e2d7fb3ec624b9c12660150129 days 19 hrs ago0xd3c9836230d43e85c643607cec509138f2955da80xa1b5f95be71ffa2f86adefcaa0028c46fe8251610.001615529595015576 Ether
0xe502c05887d11b9ba3c08dda9f29734c30888463b6604248e83955606e8ccca32660143129 days 19 hrs ago0xd3c9836230d43e85c643607cec509138f2955da80x001a589dda0d6be37632925eaf1256986b2c6ad00.0068940809968847 Ether
0x169758832e7c9ea610d1e83dfebb412222b78e282889f0954a46d9f41756af572660115129 days 19 hrs ago0xd3c9836230d43e85c643607cec509138f2955da80xa25f05e1ac13dfc31b0ba86b14b0f5bc349002a00.383382542056074812 Ether
0xb480e64fa3547752d610695b18c4830b4c47d198692716ea30cd0bdb3cb0d7fa2660102129 days 19 hrs ago0xd3c9836230d43e85c643607cec509138f2955da80x001a589dda0d6be37632925eaf1256986b2c6ad00.0068940809968847 Ether
0xb37c3ff15fefe188b65d8e0f91916581d9cf9f6d58ad76efd78333385b7c1a422660081129 days 19 hrs ago0xd3c9836230d43e85c643607cec509138f2955da80xa25f05e1ac13dfc31b0ba86b14b0f5bc349002a00.514182542056074812 Ether
0x7864ddb25f6dc7e7d10ad451eb5147b0518ef26010e9b911d69da4cc379a2dba2660066129 days 19 hrs ago0xd3c9836230d43e85c643607cec509138f2955da80x001a589dda0d6be37632925eaf1256986b2c6ad00.0068940809968847 Ether
0x24c1f0f2ca3905289a264cd1535a0f3daec2cb13315a46da737f33c6c8b2ca8c2660054129 days 19 hrs ago0xd3c9836230d43e85c643607cec509138f2955da80xa25f05e1ac13dfc31b0ba86b14b0f5bc349002a00.383382542056074812 Ether
0xcc00416828f4fa6ea507d4a2118d40f428d8881cc27953ffcf36be076c34bc152660046129 days 19 hrs ago0xd3c9836230d43e85c643607cec509138f2955da80x001a589dda0d6be37632925eaf1256986b2c6ad00.0068940809968847 Ether
0xbc15d8bc41d135b202b896450e4a0607784f451bc7c92316afd77e34010c87e72660043129 days 19 hrs ago0xd3c9836230d43e85c643607cec509138f2955da80xa25f05e1ac13dfc31b0ba86b14b0f5bc349002a00.514182542056074812 Ether
0x1da828059d1884d442ff14591b4bf0d4b1df2593cd106a10ccdc6e961b9c9e232660032129 days 19 hrs ago0xd3c9836230d43e85c643607cec509138f2955da80x001a589dda0d6be37632925eaf1256986b2c6ad00.0068940809968847 Ether
Contract Source Code Verified
Contract Name: Dice
Compiler Version: v0.3.5-2016-07-21-6610add
Optimization Enabled: Yes
Online Solidity Editor:  -NA-



  Contract Source Code   Find Similiar Contracts
// <ORACLIZE_API>
/*
Copyright (c) 2015-2016 Oraclize srl, Thomas Bertani



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.
*/

contract OraclizeI {
    address public cbAddress;
    function query(uint _timestamp, string _datasource, string _arg) returns (bytes32 _id);
    function query_withGasLimit(uint _timestamp, string _datasource, string _arg, uint _gaslimit) returns (bytes32 _id);
    function query2(uint _timestamp, string _datasource, string _arg1, string _arg2) returns (bytes32 _id);
    function query2_withGasLimit(uint _timestamp, string _datasource, string _arg1, string _arg2, uint _gaslimit) 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 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 {
        address oraclizeAddr = OAR.getAddress();
        if (oraclizeAddr == 0){
            oraclize_setNetwork(networkID_auto);
            oraclizeAddr = OAR.getAddress();
        }
        oraclize = OraclizeI(oraclizeAddr);
        _
    }
    modifier coupon(string code){
        oraclize = OraclizeI(OAR.getAddress());
        oraclize.useCoupon(code);
        _
    }

    function oraclize_setNetwork(uint8 networkID) internal returns(bool){
        if (getCodeSize(0x1d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed)>0){
            OAR = OraclizeAddrResolverI(0x1d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed);
            return true;
        }
        if (getCodeSize(0x9efbea6358bed926b293d2ce63a730d6d98d43dd)>0){
            OAR = OraclizeAddrResolverI(0x9efbea6358bed926b293d2ce63a730d6d98d43dd);
            return true;
        }
        if (getCodeSize(0x20e12a1f859b3feae5fb2a0a32c18f5a65555bbf)>0){
            OAR = OraclizeAddrResolverI(0x20e12a1f859b3feae5fb2a0a32c18f5a65555bbf);
            return true;
        }
        return false;
    }

    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 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;
    }


}
// </ORACLIZE_API>

contract Dice is usingOraclize {

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

    uint safeGas = 25000;
    uint constant ORACLIZE_GAS_LIMIT = 125000;
    uint constant INVALID_BET_MARKER = 99999;
    uint constant EMERGENCY_TIMEOUT = 7 days;

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

    struct Bet {
        address playerAddress;
        uint amountBetted;
        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 owner;
    address houseAddress;
    bool public isStopped;

    WithdrawalProposal public proposedWithdrawal;

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

    uint public amountWagered = 0;
    uint public investorsProfit = 0;
    uint public investorsLoses = 0;
    bool profitDistributed;

    event BetWon(address playerAddress, uint numberRolled, uint amountWon);
    event BetLost(address playerAddress, uint numberRolled);
    event EmergencyWithdrawalProposed();
    event EmergencyWithdrawalFailed(address withdrawalAddress);
    event EmergencyWithdrawalSucceeded(address withdrawalAddress, uint amountWithdrawn);
    event FailedSend(address receiver, uint amount);
    event ValueIsTooBig();

    function Dice(uint pwinInitial,
                  uint edgeInitial,
                  uint maxWinInitial,
                  uint minBetInitial,
                  uint maxInvestorsInitial,
                  uint houseEdgeInitial,
                  uint divestFeeInitial,
                  uint emergencyWithdrawalRatioInitial
                  ) {

        oraclize_setProof(proofType_TLSNotary | proofStorage_IPFS);

        pwin = pwinInitial;
        edge = edgeInitial;
        maxWin = maxWinInitial;
        minBet = minBetInitial;
        maxInvestors = maxInvestorsInitial;
        houseEdge = houseEdgeInitial;
        divestFee = divestFeeInitial;
        emergencyWithdrawalRatio = emergencyWithdrawalRatioInitial;
        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 onlyIfBetSizeIsStillCorrect(bytes32 myid) {
        Bet thisBet = bets[myid];
        if ((((thisBet.amountBetted * ((10000 - edge) - pwin)) / pwin ) <= (maxWin * getBankroll()) / 10000)) {
             _
        }
        else {
            bets[myid].numberRolled = INVALID_BET_MARKER;
            safeSend(thisBet.playerAddress, thisBet.amountBetted);
            return;
        }
    }

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

    modifier onlyIfInvestorBalanceIsPositive(address currentInvestor) {
        if (getBalance(currentInvestor) >= 0) {
            _
        }
    }

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

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

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

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

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

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

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

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


    //CONSTANT HELPER FUNCTIONS

    function getBankroll() constant returns(uint) {
        return invested + investorsProfit - investorsLoses;
    }

    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) {

        uint bankroll = getBankroll();

        uint minInvestment = getMinInvestment();

        return (bankroll, pwin, edge, maxWin, minBet, amountWagered, (investorsProfit - investorsLoses), 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].amountBetted, 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 getLosesShare(address currentInvestor) constant returns (uint) {
        return investors[investorIDs[currentInvestor]].amountInvested * (investorsLoses) / invested;
    }

    function getProfitShare(address currentInvestor) constant returns (uint) {
        return investors[investorIDs[currentInvestor]].amountInvested * (investorsProfit) / invested;
    }

    function getBalance(address currentInvestor) constant returns (uint) {
        return investors[investorIDs[currentInvestor]].amountInvested + getProfitShare(currentInvestor) - getLosesShare(currentInvestor);
    }

    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;
    }

    // PRIVATE HELPERS FUNCTION

    function safeSend(address addr, uint value) private {
        if (this.balance < value) {
            ValueIsTooBig();
            return;
        }

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

    function addInvestorAtID(uint id) private {
        investorIDs[msg.sender] = id;
        investors[id].investorAddress = msg.sender;
        investors[id].amountInvested = msg.value;
        invested += 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 losesOfInvestor = getLosesShare(currentInvestor);
            investors[i].amountInvested += profitOfInvestor - losesOfInvestor;
            copyInvested += investors[i].amountInvested;
        }

        delete investorsProfit;
        delete investorsLoses;
        invested = copyInvested;

        profitDistributed = true;
    }

    // SECTION II: BET & BET PROCESSING

    function() {
        bet();
    }

    function bet() onlyIfNotStopped onlyMoreThanZero {
        uint oraclizeFee = OraclizeI(OAR.getAddress()).getPrice("URL", ORACLIZE_GAS_LIMIT + safeGas);
        uint betValue = msg.value - oraclizeFee;
        if ((((betValue * ((10000 - edge) - pwin)) / pwin ) <= (maxWin * getBankroll()) / 10000) && (betValue >= minBet)) {
            // encrypted arg: '\n{"jsonrpc":2.0,"method":"generateSignedIntegers","params":{"apiKey":"YOUR_API_KEY","n":1,"min":1,"max":10000},"id":1}'
            bytes32 myid = oraclize_query("URL", "json(https://api.random.org/json-rpc/1/invoke).result.random.data.0","BIiDO0I4JWbwZ4Ayzj5AFZCBM/hIHA2fNCo0/BrnjpBDvIEKL0wyBX41ebLBomS0yDaNDUan4LjUlB1GGYIEs6bG6Qd7PpbHYwPgwfswhuhkfEfnDN/LYRdLCsSXRhVdZp70XZUfDh8xmh6gLrlnsMAXeOWWjpEONbSHNXAilji7eV/YJkoF9y4wtOwxW1yjyNc8Gf/VLKylslfYThjQB/v4T5SBwfVdogTTZbbxgtCPrD7venHVKn0Wb7tcu6eqs54Rx/fr7Lq889hCnbjgqrcGtUN7ZZ594ib61lxLobQ=", 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
        onlyIfNotProcessed(myid)
        onlyIfValidRoll(myid, result)
        onlyIfBetSizeIsStillCorrect(myid)  {

        Bet thisBet = bets[myid];
        uint numberRolled = parseInt(result);
        bets[myid].numberRolled = numberRolled;
        isWinningBet(thisBet, numberRolled);
        isLosingBet(thisBet, numberRolled);
        amountWagered += thisBet.amountBetted;
        delete profitDistributed;
    }

    function isWinningBet(Bet thisBet, uint numberRolled) private onlyWinningBets(numberRolled) {
        uint winAmount = (thisBet.amountBetted * (10000 - edge)) / pwin;
        BetWon(thisBet.playerAddress, numberRolled, winAmount);
        safeSend(thisBet.playerAddress, winAmount);
        investorsLoses += (winAmount - thisBet.amountBetted);
    }

    function isLosingBet(Bet thisBet, uint numberRolled) private onlyLosingBets(numberRolled) {
        BetLost(thisBet.playerAddress, numberRolled);
        safeSend(thisBet.playerAddress, 1);
        investorsProfit += (thisBet.amountBetted - 1)*(10000 - houseEdge)/10000;
        uint houseProfit = (thisBet.amountBetted - 1)*(houseEdge)/10000;
        safeSend(houseAddress, houseProfit);
    }

    //SECTION III: INVEST & DIVEST

    function increaseInvestment() onlyIfNotStopped onlyMoreThanZero onlyInvestors  {
        profitDistribution();
        investors[investorIDs[msg.sender]].amountInvested += msg.value;
        invested += msg.value;
    }

    function newInvestor()
        onlyIfNotStopped
        onlyMoreThanZero
        onlyNotInvestors
        onlyMoreThanMinInvestment {

        profitDistribution();

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

        numInvestors++;
        addInvestorAtID(numInvestors);
    }

    function divest() onlyInvestors rejectValue {
        divest(msg.sender);
    }


    function divest(address currentInvestor)
        private
        onlyIfInvestorBalanceIsPositive(currentInvestor) {

        profitDistribution();
        uint currentID = investorIDs[currentInvestor];
        uint amountToReturn = getBalance(currentInvestor);
        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);
    }

    function forceDivestOfAllInvestors() onlyOwner rejectValue {
        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
        rejectValue {

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

    //SECTION IV: CONTRACT MANAGEMENT

    function stopContract() onlyOwner rejectValue {
        isStopped = true;
    }

    function resumeContract() onlyOwner rejectValue {
        isStopped = false;
    }

    function changeHouseAddress(address newHouse) onlyOwner rejectValue {
        houseAddress = newHouse;
    }

    function changeOwnerAddress(address newOwner) onlyOwner rejectValue {
        owner = newOwner;
    }

    function changeGasLimitOfSafeSend(uint newGasLimit)
        onlyOwner
        onlyIfValidGas(newGasLimit)
        rejectValue {
        safeGas = newGasLimit;
    }

    //SECTION V: EMERGENCY WITHDRAWAL

    function voteEmergencyWithdrawal(bool vote)
        onlyInvestors
        onlyAfterProposed
        onlyIfStopped
        rejectValue {
        investors[investorIDs[msg.sender]].votedForEmergencyWithdrawal = vote;
    }

    function proposeEmergencyWithdrawal(address withdrawalAddress)
        onlyIfStopped
        onlyOwner
        rejectValue {

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

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

    function executeEmergencyWithdrawal()
        onlyOwner
        onlyAfterProposed
        onlyIfStopped
        onlyIfEmergencyTimeOutHasPassed
        rejectValue {

        uint numOfVotesInFavour;
        uint amountToWithdrawal = 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(this.balance)) {
                EmergencyWithdrawalFailed(proposedWithdrawal.toAddress);
            }
            else {
                EmergencyWithdrawalSucceeded(proposedWithdrawal.toAddress, amountToWithdrawal);
            }
        }
        else {
            throw;
        }
    }

}

  Contract ABI  
[{"constant":false,"inputs":[],"name":"divest","outputs":[],"type":"function"},{"constant":true,"inputs":[{"name":"id","type":"uint256"}],"name":"getBet","outputs":[{"name":"","type":"address"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"getBankroll","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[],"name":"bet","outputs":[],"type":"function"},{"constant":true,"inputs":[{"name":"currentInvestor","type":"address"}],"name":"getProfitShare","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[],"name":"stopContract","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"numInvestors","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"maxWin","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"emergencyWithdrawalRatio","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"vote","type":"bool"}],"name":"voteEmergencyWithdrawal","outputs":[],"type":"function"},{"constant":false,"inputs":[{"name":"newHouse","type":"address"}],"name":"changeHouseAddress","outputs":[],"type":"function"},{"constant":false,"inputs":[],"name":"forceDivestOfAllInvestors","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"investorsLoses","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"myid","type":"bytes32"},{"name":"result","type":"string"},{"name":"proof","type":"bytes"}],"name":"__callback","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"isStopped","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"investors","outputs":[{"name":"investorAddress","type":"address"},{"name":"amountInvested","type":"uint256"},{"name":"votedForEmergencyWithdrawal","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"searchSmallestInvestor","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"withdrawalAddress","type":"address"}],"name":"proposeEmergencyWithdrawal","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"divestFee","outputs":[{"name":"","type":"uint256"}],"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"},{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"currentInvestor","type":"address"}],"name":"forceDivestOfOneInvestor","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"proposedWithdrawal","outputs":[{"name":"toAddress","type":"address"},{"name":"atTime","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"getMaxBetAmount","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"investorsProfit","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"investorIDs","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"getMinInvestment","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"getMinBetAmount","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"changeOwnerAddress","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"minBet","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[],"name":"increaseInvestment","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"pwin","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"edge","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"maxInvestors","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[],"name":"resumeContract","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"invested","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"newGasLimit","type":"uint256"}],"name":"changeGasLimitOfSafeSend","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"amountWagered","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"houseEdge","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"numBets","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[{"name":"currentInvestor","type":"address"}],"name":"getLosesShare","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[],"name":"executeEmergencyWithdrawal","outputs":[],"type":"function"},{"constant":true,"inputs":[{"name":"currentInvestor","type":"address"}],"name":"getBalance","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[],"name":"newInvestor","outputs":[],"type":"function"},{"inputs":[{"name":"pwinInitial","type":"uint256"},{"name":"edgeInitial","type":"uint256"},{"name":"maxWinInitial","type":"uint256"},{"name":"minBetInitial","type":"uint256"},{"name":"maxInvestorsInitial","type":"uint256"},{"name":"houseEdgeInitial","type":"uint256"},{"name":"divestFeeInitial","type":"uint256"},{"name":"emergencyWithdrawalRatioInitial","type":"uint256"}],"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"playerAddress","type":"address"},{"indexed":false,"name":"numberRolled","type":"uint256"},{"indexed":false,"name":"amountWon","type":"uint256"}],"name":"BetWon","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"playerAddress","type":"address"},{"indexed":false,"name":"numberRolled","type":"uint256"}],"name":"BetLost","type":"event"},{"anonymous":false,"inputs":[],"name":"EmergencyWithdrawalProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"withdrawalAddress","type":"address"}],"name":"EmergencyWithdrawalFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"withdrawalAddress","type":"address"},{"indexed":false,"name":"amountWithdrawn","type":"uint256"}],"name":"EmergencyWithdrawalSucceeded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"receiver","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"FailedSend","type":"event"},{"anonymous":false,"inputs":[],"name":"ValueIsTooBig","type":"event"}]

  Contract Creation Code Switch To Opcodes View
6060604081905261138860025560c8600355606460045566038d7ea4c68000600590815560065560326007819055600855605a6009556161a8600a556000600d819055600e81905560158190556016819055601755610100806125f18339610160604052905160805160a05160c05160e05194516101205161014051959694959394929361013a7f1100000000000000000000000000000000000000000000000000000000000000600080547f38cc483100000000000000000000000000000000000000000000000000000000610160908152600160a060020a03909116906338cc4831906101649060209060048187876161da5a03f1156100025750506040515191600160a060020a0383161415905061024d576101dc6000600060006102c9731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed5b3b90565b876002600050819055508660036000508190555085600460005081905550846005600050819055508360066000508190555082600760005081905550816008600050819055508060096000508190555033600f60006101000a815481600160a060020a030219169083021790555033601060006101000a815481600160a060020a0302191690830217905550505050505050505061224f806103a26000396000f35b50600060009054906101000a9004600160a060020a0316600160a060020a03166338cc4831604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f115610002575050604051519150505b60018054600160a060020a031916821790819055604080517f688dcfd7000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a03929092169163688dcfd791602481810192600092909190829003018183876161da5a03f115610002575050505050565b11156102fc57508054600160a060020a031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed17815560015b919050565b600061031b739efbea6358bed926b293d2ce63a730d6d98d43dd610136565b111561034f57508054739efbea6358bed926b293d2ce63a730d6d98d43dd600160a060020a031990911617815560016102f7565b600061036e7320e12a1f859b3feae5fb2a0a32c18f5a65555bbf610136565b11156102f7575080547320e12a1f859b3feae5fb2a0a32c18f5a65555bbf600160a060020a031990911617815560016102f756606060405236156101ed5760e060020a6000350463058aace181146101f8578063061e494f1461021f5780630d1fce421461029f57806311610c25146102b2578063116c6eab146102d657806312253a6c14610314578063132ae5e91461033357806316d190e31461033c57806317c5fed814610345578063187a62d51461034e5780631efb17ee14610378578063232523e81461039a578063333e1a72146103be57806338bbfa50146103c75780633f683b6a146104cc5780633feb5f2b146104df57806340a49a96146105135780634671e65e146105475780634dc6b523146105685780634e69d5601461057157806351404cbe14610592578063518496b2146105b4578063550ed1f0146105cb57806366aee0fc146106b85780636be80de7146106c1578063724ae9d0146106d957806382a5285d146106f657806385eac05f146107d25780639619367d146107f4578063a4beffa7146107fd578063a96a5a5b14610817578063adc2c98a14610820578063bc99cc3714610829578063c4bc5da514610832578063cafb220214610851578063d21d79501461085a578063d4c80edf1461087c578063d667dcd714610885578063df06f9061461088e578063e0e3ba5a14610899578063f4993bbd146108d6578063f8b2cb4f146108fc578063fb099c841461090e575b61092c61092e6102b6565b61092c33600160a060020a03166000908152600b60205260408120541415610d5e57610002565b6109306004356014546000908190819081908510156102975760148054869081101561000257505050507fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec83015490819052601360205260409091208054600182015460029290920154600160a060020a0391909116925b509193909250565b6109595b601754601654600e5401035b90565b61092c5b600060006000601060149054906101000a900460ff1615610a1757610002565b6109596004355b600e54601654600160a060020a0383166000908152600b60209081526040808320548352600c90915290206001015402045b919050565b61092c600f54600160a060020a039081163390911614610d8457610002565b610959600d5481565b61095960045481565b61095960095481565b61092c60043533600160a060020a03166000908152600b60205260408120541415610ded57610002565b61092c600435600f54600160a060020a039081163390911614610e2b57610002565b61092c600f546000908190600160a060020a039081163390911614610e4d57610002565b61095960175481565b60408051602060248035600481810135601f810185900485028601850190965285855261092c9581359591946044949293909201918190840183828082843750506040805160209735808a0135601f81018a90048a0283018a01909352828252969897606497919650602491909101945090925082915084018382808284375094965050505050505060006000610f4460006000600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518160e060020a0281526004018090506020604051808303816000876161da5a03f11561000257505060405151915050600160a060020a038116821415611d7a57611d226000610c6a565b61096b60105460a060020a900460ff1681565b600c602052600435600090815260409020600181015481546002929092015461097f92600160a060020a0316919060ff1683565b6109595b60006001805b600d548111611296576000828152600c602052604090205461129f90600160a060020a0316610903565b61092c60043560105460009060a060020a900460ff1615156112d257610002565b61095960085481565b6109aa6000600060006000600060006000600060006000600061137f6102a3565b61092c600435600f54600160a060020a0390811633909116146113e057610002565b6011546012546109f191600160a060020a03169082565b610959600060006000600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518160e060020a0281526004018090506020604051808303816000876161da5a03f115610002575050604080518051600a5460e260020a630bbceb330283526201e848016024830152600482018390526003604483015260ea60020a621554930260648301529151600160a060020a03929092169250632ef3accc916084828101926020929190829003018187876161da5a03f1156100025750506040515160025460035491945061271091820381900390910291506114266102a3565b61095960165481565b610959600435600b6020526000908152604090205481565b6109595b600654600d5460009182911415610d5557611438610517565b61095960006000600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518160e060020a0281526004018090506020604051808303816000876161da5a03f115610002575050604080518051600a5460e260020a630bbceb330283526201e848016024830152600482018390526003604483015260ea60020a621554930260648301529151600160a060020a03929092169250632ef3accc916084828101926020929190829003018187876161da5a03f11561000257505060405151600554810193509150610d5a9050565b61092c600435600f54600160a060020a03908116339091161461146357610002565b61095960055481565b61092c60105460a060020a900460ff161561148557610002565b61095960025481565b61095960035481565b61095960065481565b61092c600f54600160a060020a03908116339091161461153f57610002565b610959600e5481565b61092c600435600f54600160a060020a03908116339091161461156c57610002565b61095960155481565b61095960075481565b6109596014546102af565b6109596004355b600e54601754600160a060020a0383166000908152600b60209081526040808320548352600c909152902060010154020461030f565b61092c600f5460009081908190600160a060020a03908116339091161461158f57610002565b6109596004355b6000611710826108a0565b61092c60105460009060ff60a060020a909104161561174b57610002565b005b565b60408051600160a060020a03949094168452602084019290925282820152519081900360600190f35b60408051918252519081900360200190f35b604080519115158252519081900360200190f35b60408051600160a060020a039490941684526020840192909252151582820152519081900360600190f35b60408051998a5260208a0198909852888801969096526060880194909452608087019290925260a086015260c085015260e084015261010083015251908190036101200190f35b6040518083600160a060020a031681526020018281526020019250505060405180910390f35b3460001415610a2557610002565b600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518160e060020a0281526004018090506020604051808303816000876161da5a03f115610002575050604080518051600a5460e260020a630bbceb330283526201e848016024830152600482018390526003604483015260ea60020a621554930260648301529151600160a060020a03929092169250632ef3accc91608480830192602092919082900301816000876161da5a03f11561000257505060405151935050348390039150612710610aff6102a3565b6004600050540204600260005054600260005054600360005054612710030384020411158015610b3157506005548210155b15610c8b576040805180820182526003815260ea60020a62155493026020828101919091528251608081018452604381527f6a736f6e2868747470733a2f2f6170692e72616e646f6d2e6f72672f6a736f6e818301527f2d7270632f312f696e766f6b65292e726573756c742e72616e646f6d2e646174818501527f612e30000000000000000000000000000000000000000000000000000000000060608201528351610160810190945261012c808552610c9094919261212390830139600a546201e84801600060006000600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518160e060020a0281526004018090506020604051808303816000876161da5a03f11561000257505060405151915050600160a060020a0381168214156118835761182b60005b60006000611fa8731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed5b3b90565b610002565b604080516060810182523381526020818101868152600083850181815286825260139093529390932091518254600160a060020a031916178255915160018281019190915591516002919091015560148054918201808255929350918281838015829011610d3d576000839052610d3d907fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec9081019083015b80821115610d5a5760008155600101610d29565b5050506000928352506020909120018190555b505050565b600091505b5090565b34600014610d6b57610002565b61092e335b6000600060006000846000611b0282610903565b34600014610d9157610002565b6010805474ff0000000000000000000000000000000000000000191660a060020a179055565b33600160a060020a03166000908152600b60209081526040808320548352600c9091529020600201805460ff1916821790555b50565b601154600160a060020a031660001415610e0657610002565b60105460a060020a900460ff161515610e1e57610002565b34600014610db757610002565b34600014610e3857610002565b60108054600160a060020a0319168217905550565b34600014610e5a57610002565b5050600d5460015b818111610f12576001600052600c6020527fd421a5181c571bba3f01190c922c3b2a896fc1d84e86c9f17ac10e67ebef8b5c54610f1690600160a060020a0316610d70565b60008281526013602052604090206201869f600291909101558054600182015461128991600160a060020a0316905b8030600160a060020a0316311015611e00576040517f9bc0f7b8676ac8a3d913fc962a472bc40103acaa27e5477c1eadfbb7d4897a0490600090a15b5050565b600101610e62565b6015805460018c01540190556018805460ff1916905550505050505050505b5050505050565b600160a060020a031633600160a060020a0316141515610f6357610002565b600085815260136020526040812060028101548792901115610f8457610002565b6000878152601360205260408120889188919061105a835b6000611df98260006040805160208101909152600090819052828180805b835181101561103c57603060f860020a028482815181101561000257016020015160f860020a9081900402600160f860020a031916108015906110275750603960f860020a028482815181101561000257016020015160f860020a9081900402600160f860020a03191611155b1561208e5781156120ef5785600014156120e6575b600086111561104f57600a86900a909202915b509095945050505050565b9050600181108061106c575061271081115b801561107c575060028201546000145b156110b45760008481526013602052604090206201869f60029190910155815460018301546110cf91600160a060020a031690610ed6565b60008b81526013602052604090208b906127106110da6102a3565b505050505050610f3d565b6004600050540204600260005054600260005054600360005054612710030383600101600050540204111515610ea75760008d815260136020526040902099506111238c610f9c565b60008e815260136020908152604091829020600290810184905582516060810184528e54600160a060020a0316815260018f0154928101929092528d0154918101919091529099506111f3908a600081600260005054600182031015611f0a57604080516002546003548751602089810151600160a060020a03929092168552840186905261271091909103020481830181905291519193507f8f25eec129b997ba51175c8f2583cafbfc0c076ef19e2c455869730f969ec44d919081900360600190a18351611ef89083610ed6565b604080516060810182528b54600160a060020a0316815260018c0154602082015260028c015491810191909152610f1e908a6002546000908290600019820110611f0a57604080518551600160a060020a031681526020810183905281517fcb9c7189736051e86837ee4847c751bad47c86cb506933875ff8fabf9eeda008929181900390910190a18351611f10906001610ed6565b5050505050505050610f3d565b8192505b505090565b6000828152600c60205260409020546112c090600160a060020a0316610903565b10156112ca579050805b60010161051d565b600f54600160a060020a0390811633909116146112ee57610002565b346000146112fb57610002565b5060015b600d548111611329576000818152600c60205260409020600201805460ff191690556001016112ff565b6040805180820182528381524260209190910181905260118054600160a060020a03191685179055601255517ffc136941d6f5a7fa31fea543bdc05be2e77ce86110b5fe83706976590c0d399590600090a15050565b91506113896106dd565b90508160026000505460036000505460046000505460056000505460156000505460176000505460166000505403876014600050805490509a509a509a509a509a509a509a509a509a505050909192939495969798565b60105460a060020a900460ff1615156113f857610002565b3460001461140557610002565b61140e81610d70565b60118054600160a060020a0319169055600060125550565b6004540202048083019350905061129a565b6000818152600c602052604090205490915061145c90600160a060020a0316610903565b9150610d5a565b3460001461147057610002565b600f8054600160a060020a0319168217905550565b346000141561149357610002565b33600160a060020a03166000908152600b602052604081205414156114b757610002565b6115035b601854600090819081908190819060ff161515610f3d57600193505b600d548411611f50576000848152600c6020526040902054600160a060020a03169250611f70836102dd565b33600160a060020a03166000908152600b60209081526040808320548352600c9091529020600101805434908101909155600e80549091019055565b3460001461154c57610002565b6010805474ff000000000000000000000000000000000000000019169055565b806161a881101561157c57610002565b3460001461158957610002565b50600a55565b601154600160a060020a0316600014156115a857610002565b60105460a060020a900460ff1615156115c057610002565b6012544262093a8090910111156115d657610002565b346000146115e357610002565b505030600160a060020a03163160015b600d548111611644576000818152600c602052604090206002015460ff1615156001141561163c576040600090812060020180549183905260ff19919091169055600192909201915b6001016115f3565b600d5460095460649102048310610c8b57604051601154600160a060020a03908116916000913016319082818181858883f1935050505015156116c45760408051601154600160a060020a0316815290517f3b66c41562b841e29923849dc45ac54e17eb64f534c62109ba2cc1e977f8ddaf9181900360200190a161170b565b60408051601154600160a060020a031681526020810184905281517f969fa9d259520e00fd561cbd5c523032e2682528b2be25d2380088b332503814929181900390910190a15b610d50565b611719836102dd565b600160a060020a0384166000908152600b60209081526040808320548352600c9091529020600101540103905061030f565b346000141561175957610002565b33600160a060020a03166000908152600b60205260408120541461177c57610002565b6117846106dd565b341161178f57610002565b6117976114bb565b600d5460065414156117cf576117ab610517565b6000818152600c60205260409020549091506117cf90600160a060020a0316610d70565b600d805460019081019182905533600160a060020a0381166000908152600b60209081526040808320869055948252600c9052929092208054600160a060020a0319169092178255349101819055600e80549091019055610dea565b50600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518160e060020a0281526004018090506020604051808303816000876161da5a03f115610002575050604051519150505b60018054600160a060020a0319168217908190556040805160e260020a630bbceb330281526024810187905260048181019283528a5160448301528a51600160a060020a039490941693632ef3accc938c938a939192839260649290920191602087810192918291859183918691600091601f850104600f02600301f150905090810190601f16801561192a5780820380516001836020036101000a031916815260200191505b5093505050506020604051808303816000876161da5a03f115610002575050604051519250503a8402670de0b6b3a7640000018211156119735750600091505b50949350505050565b600160009054906101000a9004600160a060020a0316600160a060020a03166385dee34c8360008a8a8a8a6040518760e060020a028152600401808681526020018060200180602001806020018581526020018481038452888181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f168015611a1e5780820380516001836020036101000a031916815260200191505b508481038352878181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f168015611a775780820380516001836020036101000a031916815260200191505b508481038252868181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f168015611ad05780820380516001836020036101000a031916815260200191505b509850505050505050505060206040518083038185886185025a03f11561000257505060405151945061196a92505050565b10611d1a57611b0f6114bb565b600160a060020a0386166000908152600b60205260409020549450611b3386610903565b6000868152600c60209081526040808320600181018054600e80549190910390556008548254600160a060020a031916835590859055600291909101805460ff19169055600160a060020a038b168452600b909252822091909155600d54612710918302919091049182900395509093508514611cf057600c6000506000600d600050548152602001908152602001600020600050915084600b60005060008460000160009054906101000a9004600160a060020a0316600160a060020a031681526020019081526020016000206000508190555081600c60005060008781526020019081526020016000206000506000820160009054906101000a9004600160a060020a03168160000160006101000a815481600160a060020a0302191690830217905550600182016000505481600101600050556002820160009054906101000a900460ff168160020160006101000a81548160ff02191690830217905550905050600c6000506000600d60005054815260200190815260200160002060006000820160006101000a815490600160a060020a03021916905560018201600050600090556002820160006101000a81549060ff021916905550505b600d8054600019019055611d048685610ed6565b601054611d1a90600160a060020a031684610ed6565b505050505050565b50600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518160e060020a0281526004018090506020604051808303816000876161da5a03f115610002575050604051519150505b60018054600160a060020a031916821790819055604080517fc281d19e0000000000000000000000000000000000000000000000000000000081529051600160a060020a03929092169163c281d19e9160048181019260209290919082900301816000876161da5a03f1156100025750506040515192506102af915050565b905061030f565b604051600a54600160a060020a0384169183906000818181858888f193505050501515610f125760408051600160a060020a03841681526020810183905281517f3d14263aec0db87097e504ee7aca5316e879b2cc7f3b29f9c62d40e9bae04cee929181900390910190a1601054600160a060020a03838116911614610f1257604051601054600a54600160a060020a03919091169183906000818181858888f193505050501515610f125760105460408051600160a060020a039290921682526020820183905280517f3d14263aec0db87097e504ee7aca5316e879b2cc7f3b29f9c62d40e9bae04cee9281900390910190a15050565b60208401516017805491840390910190555b50505050565b600754602085015160168054612710600019939093018484038102849004919091019091556010549202049250611f0a90600160a060020a031683610ed6565b5050600060168190556017555050600e556018805460ff19166001179055565b9150611f7b836108a0565b6000858152600c6020526040902060010180548285030190819055909501949050600193909301926114d7565b1115611fdc575060008054600160a060020a031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed179055600161030f565b6000611ffb739efbea6358bed926b293d2ce63a730d6d98d43dd610c87565b1115612031575060008054739efbea6358bed926b293d2ce63a730d6d98d43dd600160a060020a0319909116179055600161030f565b60006120507320e12a1f859b3feae5fb2a0a32c18f5a65555bbf610c87565b11156120865750600080547320e12a1f859b3feae5fb2a0a32c18f5a65555bbf600160a060020a0319909116179055600161030f565b50600061030f565b8381815181101561000257016020015160f860020a9081900402600160f860020a0319167f2e0000000000000000000000000000000000000000000000000000000000000014156120de57600191505b600101610fba565b60001995909501945b600a83029250825060308482815181101561000257016020015160f860020a90819004810204909301602f190192506120de56424969444f3049344a5762775a3441797a6a3541465a43424d2f6849484132664e436f302f42726e6a7042447649454b4c3077794258343165624c426f6d53307944614e4455616e344c6a556c4231474759494573366247365164375070624859775067776673776875686b6645666e444e2f4c5952644c43735358526856645a703730585a5566446838786d6836674c726c6e734d4158654f57576a70454f4e6253484e5841696c6a693765562f594a6b6f4639793477744f77785731796a794e633847662f564c4b796c736c665954686a51422f763454355342776656646f6754545a6262786774435072443776656e48564b6e3057623774637536657173353452782f6672374c7138383968436e626a677172634774554e375a5a353934696236316c784c6f62513d

    Constructor Arguments (ABI-encoded and appended to the ByteCode above)
0000000000000000000000000000000000000000000000000000000000001d4c00000000000000000000000000000000000000000000000000000000000000be000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000002c68af0bb140000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000050

-----Decoded View---------------
Found 8 constructor arguments :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000001d4c
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000be
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000064
Arg [3] : 00000000000000000000000000000000000000000000000002c68af0bb140000
Arg [4] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000032
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000064
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000050

View All
Block Age txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward