Sponsored Link: Join FundYourselfNow ICO – Crypto crowdfunding platform to find talent, raise funding while protecting project fraud
Contract Overview
ETH Balance: 0 Ether
ETH USD Value: $0
No Of Transactions: 3441 txns
  Latest 25 txns from a total Of 3441 transactions View All

TxHash Block Age From To Value [TxFee]
0xcfc1884d544cc0f41aa69bf01969866f4cdd0cc66e34058c38f5c93f278e6de02842762190 days 6 hrs ago0xa1b5f95be71ffa2f86adefcaa0028c46fe825161  IN   0x4b92a948ced9d457b4655abf62ed930a090f85660 Ether0.00116375
0xc6815c01ba7b4f7538888f44fed73a019a8676344c2239e53ac72afe11197f332796050197 days 23 hrs ago0xa1b5f95be71ffa2f86adefcaa0028c46fe825161  IN   0x4b92a948ced9d457b4655abf62ed930a090f85660 Ether0.00191206
0x0b8fe404f99f0303da0eba3519080743009ac3f24d7d8d001d4e7977a6d56cf82796034197 days 23 hrs ago0xa1b5f95be71ffa2f86adefcaa0028c46fe825161  IN   0x4b92a948ced9d457b4655abf62ed930a090f85660 Ether0.00311256
0x9c34ebe96738db37224361df978b42529739a4d381089d091ca51b7e920d3f4d2796025197 days 23 hrs ago0xa1b5f95be71ffa2f86adefcaa0028c46fe825161  IN   0x4b92a948ced9d457b4655abf62ed930a090f85660 Ether0.00119464
0xfd96add53d85980a426a6daf1a0fe112f8323f95bb3e39907d5ed5d5ed3ff5a52795988197 days 23 hrs ago0xa1b5f95be71ffa2f86adefcaa0028c46fe825161  IN   0x4b92a948ced9d457b4655abf62ed930a090f85660.01 Ether0.00551117
0x48e6d7cef67c9f34b329dc8708934a8680847ea89f89f884ba83be037489f8be2795449198 days 1 hr ago0xa1b5f95be71ffa2f86adefcaa0028c46fe825161  IN   0x4b92a948ced9d457b4655abf62ed930a090f85660 Ether0.01680061
0x949df18be45e199c79b16718cd65946265c6831c62b9352f4a1aab29dde0e18c2795449198 days 1 hr ago0xa1b5f95be71ffa2f86adefcaa0028c46fe825161  IN   0x4b92a948ced9d457b4655abf62ed930a090f85660 Ether0.00575078
0x708d089f6505d07f5b889d10f2aa3edb7711d911f04535d77fecd23b3c06b0dc2794079198 days 6 hrs agoOraclize  IN   0x4b92a948ced9d457b4655abf62ed930a090f85660 Ether0.002172
0xba7faf7254b5318692ad402d78330d012add9afe410a630f6cfb4443aa9600a22794074198 days 6 hrs agoOraclize  IN   0x4b92a948ced9d457b4655abf62ed930a090f85660 Ether0.0020705
0x928cc0a30b0fb19dba1948c619012cf41079b48861b467b0e258641850a461072794066198 days 7 hrs ago0x972a8c777d14f38d840e350ac3c920c38fc6ea5d  IN   0x4b92a948ced9d457b4655abf62ed930a090f85660.25 Ether0.00312589
0x8095863d2c04d3ae9051b301774430b1862f02f4035ae51c9b380b8d0c7128412794066198 days 7 hrs ago0x972a8c777d14f38d840e350ac3c920c38fc6ea5d  IN   0x4b92a948ced9d457b4655abf62ed930a090f85660.25 Ether0.00312589
0x9bbdb6126aa43aec861bc6dcde973aabb24684b9ba5733a20f6088fb52e22e522776685201 days 3 hrs ago0xcbc70830634d4fa2c82ca3f85e1935d523b18c08  IN   0x4b92a948ced9d457b4655abf62ed930a090f85660.4 Ether0.00223573
0x00f8f2e1037f299dcc43774eeb54f092bb6f2d71b3ad180970243a7719660ceb2776672201 days 3 hrs ago0xcbc70830634d4fa2c82ca3f85e1935d523b18c08  IN   0x4b92a948ced9d457b4655abf62ed930a090f85660.4 Ether0.00223573
0xece79792a286c1b31463620bca618bac976ec77a553a16f6149404a6bfe65b6d2776494201 days 4 hrs ago0xcbc70830634d4fa2c82ca3f85e1935d523b18c08  IN   0x4b92a948ced9d457b4655abf62ed930a090f85660.5 Ether0.00645069
0x38ba8f6da451775e3786b280dbb97852cc88d7835d1e9753228bbc3fa4070a5f2776072201 days 6 hrs agoOraclize  IN   0x4b92a948ced9d457b4655abf62ed930a090f85660 Ether0.00209896
0x734b0481c5fd4c53b7cdba6ad94d3b33625f3bd62a078a329f5113a8646cfbb52775382201 days 8 hrs agoOraclize  IN   0x4b92a948ced9d457b4655abf62ed930a090f85660 Ether0.0020705
0x664db5d83c129faf0de14e5ee7e6c566a2cca5ba826112d10e0f73ed667086d32775376201 days 9 hrs ago0x80e169bd23499abcf22e69b6ea311dd90af44181  IN   0x4b92a948ced9d457b4655abf62ed930a090f85660.26 Ether0.00323613
0x2f925e08dd4b151fe440e472992140e22936d67354cdca86661ff7632cc35f8c2775372201 days 9 hrs agoOraclize  IN   0x4b92a948ced9d457b4655abf62ed930a090f85660 Ether0.001872
0x795e4d205532d7fd4c435bbc61058a7b15a266e5d15ea583ad697ee0ad9485ba2775367201 days 9 hrs ago0x80e169bd23499abcf22e69b6ea311dd90af44181  IN   0x4b92a948ced9d457b4655abf62ed930a090f85660.225 Ether0.00323613
0xebfe4a33b291b5cafbd17afb5a0526454ac58b7b7bff6684ba8209ffdeb5de292775358201 days 9 hrs agoOraclize  IN   0x4b92a948ced9d457b4655abf62ed930a090f85660 Ether0.0020705
0x203691c719a35a0f49d8759a74ded8b22c5f411dafa84ab59d261a2f2e1965e82775352201 days 9 hrs ago0x80e169bd23499abcf22e69b6ea311dd90af44181  IN   0x4b92a948ced9d457b4655abf62ed930a090f85660.223 Ether0.00323613
0x8e74451cbbfa618e116d7eeca1556028c657d2cc7d049a75b81e44cf4c7e88522775347201 days 9 hrs agoOraclize  IN   0x4b92a948ced9d457b4655abf62ed930a090f85660 Ether0.0020705
0x07266dbba053b17d36a72d0dabc60b96213268b151d4ef93eaa39d2f960c18032775338201 days 9 hrs ago0x80e169bd23499abcf22e69b6ea311dd90af44181  IN   0x4b92a948ced9d457b4655abf62ed930a090f85660.221 Ether0.00323613
0xdbaad9e468e623491dfc6989f7484497f28d6885f6d052abc7122623a09ca1d92775330201 days 9 hrs agoOraclize  IN   0x4b92a948ced9d457b4655abf62ed930a090f85660 Ether0.0020705
0x776a4d812898b00de9c8e41b5b0e43d863ea546825ac486045e78b43291c94342775323201 days 9 hrs ago0x80e169bd23499abcf22e69b6ea311dd90af44181  IN   0x4b92a948ced9d457b4655abf62ed930a090f85660.221 Ether0.00323613

[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
0xcfc1884d544cc0f41aa69bf01969866f4cdd0cc66e34058c38f5c93f278e6de02842762190 days 6 hrs ago0x4b92a948ced9d457b4655abf62ed930a090f85660xa1b5f95be71ffa2f86adefcaa0028c46fe8251611.532124905736780795 Ether
0x48e6d7cef67c9f34b329dc8708934a8680847ea89f89f884ba83be037489f8be2795449198 days 1 hr ago0x4b92a948ced9d457b4655abf62ed930a090f85660xa1b5f95be71ffa2f86adefcaa0028c46fe8251610.481737182452185241 Ether
0x48e6d7cef67c9f34b329dc8708934a8680847ea89f89f884ba83be037489f8be2795449198 days 1 hr ago0x4b92a948ced9d457b4655abf62ed930a090f85660x80800a0c171e85c5bfce09902e1628f7fac659bf47.691981062766338933 Ether
0x48e6d7cef67c9f34b329dc8708934a8680847ea89f89f884ba83be037489f8be2795449198 days 1 hr ago0x4b92a948ced9d457b4655abf62ed930a090f85660xa1b5f95be71ffa2f86adefcaa0028c46fe8251610.029935123970274228 Ether
0x48e6d7cef67c9f34b329dc8708934a8680847ea89f89f884ba83be037489f8be2795449198 days 1 hr ago0x4b92a948ced9d457b4655abf62ed930a090f85660x8168720cbefab74304d593e967a6f037db9fd92d2.963577273057148633 Ether
0x48e6d7cef67c9f34b329dc8708934a8680847ea89f89f884ba83be037489f8be2795449198 days 1 hr ago0x4b92a948ced9d457b4655abf62ed930a090f85660xa1b5f95be71ffa2f86adefcaa0028c46fe8251610.097730361295224611 Ether
0x48e6d7cef67c9f34b329dc8708934a8680847ea89f89f884ba83be037489f8be2795449198 days 1 hr ago0x4b92a948ced9d457b4655abf62ed930a090f85660x0a670601920390b91b4fde002e12a9454e0ab06e9.675305768227236537 Ether
0x48e6d7cef67c9f34b329dc8708934a8680847ea89f89f884ba83be037489f8be2795449198 days 1 hr ago0x4b92a948ced9d457b4655abf62ed930a090f85660xa1b5f95be71ffa2f86adefcaa0028c46fe8251610.012605001704861728 Ether
0x48e6d7cef67c9f34b329dc8708934a8680847ea89f89f884ba83be037489f8be2795449198 days 1 hr ago0x4b92a948ced9d457b4655abf62ed930a090f85660x4a26df8f380c35d72bb6be6038bd2eb5fac8b11a1.247895168781311096 Ether
0x48e6d7cef67c9f34b329dc8708934a8680847ea89f89f884ba83be037489f8be2795449198 days 1 hr ago0x4b92a948ced9d457b4655abf62ed930a090f85660xa1b5f95be71ffa2f86adefcaa0028c46fe8251610.053957373551746632 Ether
0x48e6d7cef67c9f34b329dc8708934a8680847ea89f89f884ba83be037489f8be2795449198 days 1 hr ago0x4b92a948ced9d457b4655abf62ed930a090f85660xb71d05cf5cdf7a9b15b20b9aab5e91332c271c965.341779981622916657 Ether
0x48e6d7cef67c9f34b329dc8708934a8680847ea89f89f884ba83be037489f8be2795449198 days 1 hr ago0x4b92a948ced9d457b4655abf62ed930a090f85660xa1b5f95be71ffa2f86adefcaa0028c46fe8251610.004873106281080273 Ether
0x48e6d7cef67c9f34b329dc8708934a8680847ea89f89f884ba83be037489f8be2795449198 days 1 hr ago0x4b92a948ced9d457b4655abf62ed930a090f85660xb5735aa45cc756430151bf460a647a33ec2c057d0.482437521826947125 Ether
0x48e6d7cef67c9f34b329dc8708934a8680847ea89f89f884ba83be037489f8be2795449198 days 1 hr ago0x4b92a948ced9d457b4655abf62ed930a090f85660xa1b5f95be71ffa2f86adefcaa0028c46fe8251610.004965809373572389 Ether
0x48e6d7cef67c9f34b329dc8708934a8680847ea89f89f884ba83be037489f8be2795449198 days 1 hr ago0x4b92a948ced9d457b4655abf62ed930a090f85660xcbc70830634d4fa2c82ca3f85e1935d523b18c080.491615127983666603 Ether
0x949df18be45e199c79b16718cd65946265c6831c62b9352f4a1aab29dde0e18c2795449198 days 1 hr ago0x4b92a948ced9d457b4655abf62ed930a090f85660xa1b5f95be71ffa2f86adefcaa0028c46fe8251612.073550557828006783 Ether
0x949df18be45e199c79b16718cd65946265c6831c62b9352f4a1aab29dde0e18c2795449198 days 1 hr ago0x4b92a948ced9d457b4655abf62ed930a090f85660xa1b5f95be71ffa2f86adefcaa0028c46fe825161205.281505224972671608 Ether
0x708d089f6505d07f5b889d10f2aa3edb7711d911f04535d77fecd23b3c06b0dc2794079198 days 6 hrs ago0x4b92a948ced9d457b4655abf62ed930a090f85660x972a8c777d14f38d840e350ac3c920c38fc6ea5d2.384869065420561093 Ether
0xba7faf7254b5318692ad402d78330d012add9afe410a630f6cfb4443aa9600a22794074198 days 6 hrs ago0x4b92a948ced9d457b4655abf62ed930a090f85660xa1b5f95be71ffa2f86adefcaa0028c46fe8251610.001215529595015576 Ether
0xba7faf7254b5318692ad402d78330d012add9afe410a630f6cfb4443aa9600a22794074198 days 6 hrs ago0x4b92a948ced9d457b4655abf62ed930a090f85660x972a8c777d14f38d840e350ac3c920c38fc6ea5d1 wei
0x928cc0a30b0fb19dba1948c619012cf41079b48861b467b0e258641850a461072794066198 days 7 hrs ago0x4b92a948ced9d457b4655abf62ed930a090f85660x001a589dda0d6be37632925eaf1256986b2c6ad00.0068940809968847 Ether
0x8095863d2c04d3ae9051b301774430b1862f02f4035ae51c9b380b8d0c7128412794066198 days 7 hrs ago0x4b92a948ced9d457b4655abf62ed930a090f85660x001a589dda0d6be37632925eaf1256986b2c6ad00.0068940809968847 Ether
0x38ba8f6da451775e3786b280dbb97852cc88d7835d1e9753228bbc3fa4070a5f2776072201 days 6 hrs ago0x4b92a948ced9d457b4655abf62ed930a090f85660xa1b5f95be71ffa2f86adefcaa0028c46fe8251610.001070529595015576 Ether
0x38ba8f6da451775e3786b280dbb97852cc88d7835d1e9753228bbc3fa4070a5f2776072201 days 6 hrs ago0x4b92a948ced9d457b4655abf62ed930a090f85660x4e54f218918ec88d4e7780bdb17d7fb4aaa615271 wei
0x01c2688ae3ac032c302d65a8580a1864b2a1560551fdee07f8cfd73bfefdb59b2776068201 days 6 hrs ago0x4b92a948ced9d457b4655abf62ed930a090f85660x001a589dda0d6be37632925eaf1256986b2c6ad00.0068940809968847 Ether

[Download: CSV Export ]    
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","BBX1PCQ9134839wTz10OWxXCaZaGk92yF6TES8xA+8IC7xNBlJq5AL0uW3rev7IoApA5DMFmCfKGikjnNbNglKKvwjENYPB8TBJN9tDgdcYNxdWnsYARKMqmjrJKYbBAiws+UU6HrJXUWirO+dBSSJbmjIg+9vmBjSq8KveiBzSGmuQhu7/hSg5rSsSP/r+MhR/Q5ECrOHi+CkP/qdSUTA/QhCCjdzFu+7t3Hs7NU34a+l7JdvDlvD8hoNxyKooMDYNbUA8/eFmPv2d538FN6KJQp+RKr4w4VtAMHdejrLM=", 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
6060604081905261138860025560c8600355606460045566038d7ea4c68000600590815560065560326007819055600855605a6009556161a8600a556000600d819055600e81905560158190556016819055601755610100806125f18339610160604052905160805160a05160c05160e05194516101205161014051959694959394929361013a7f1100000000000000000000000000000000000000000000000000000000000000600080547f38cc483100000000000000000000000000000000000000000000000000000000610160908152600160a060020a03909116906338cc4831906101649060209060048187876161da5a03f1156100025750506040515191600160a060020a0383161415905061024d576101dc6000600060006102c9731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed5b3b90565b876002600050819055508660036000508190555085600460005081905550846005600050819055508360066000508190555082600760005081905550816008600050819055508060096000508190555033600f60006101000a815481600160a060020a030219169083021790555033601060006101000a815481600160a060020a0302191690830217905550505050505050505061224f806103a26000396000f35b50600060009054906101000a9004600160a060020a0316600160a060020a03166338cc4831604051817c01000000000000000000000000000000000000000000000000000000000281526004018090506020604051808303816000876161da5a03f115610002575050604051519150505b60018054600160a060020a031916821790819055604080517f688dcfd7000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a03929092169163688dcfd791602481810192600092909190829003018183876161da5a03f115610002575050505050565b11156102fc57508054600160a060020a031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed17815560015b919050565b600061031b739efbea6358bed926b293d2ce63a730d6d98d43dd610136565b111561034f57508054739efbea6358bed926b293d2ce63a730d6d98d43dd600160a060020a031990911617815560016102f7565b600061036e7320e12a1f859b3feae5fb2a0a32c18f5a65555bbf610136565b11156102f7575080547320e12a1f859b3feae5fb2a0a32c18f5a65555bbf600160a060020a031990911617815560016102f756606060405236156101ed5760e060020a6000350463058aace181146101f8578063061e494f1461021f5780630d1fce421461029f57806311610c25146102b2578063116c6eab146102d657806312253a6c14610314578063132ae5e91461033357806316d190e31461033c57806317c5fed814610345578063187a62d51461034e5780631efb17ee14610378578063232523e81461039a578063333e1a72146103be57806338bbfa50146103c75780633f683b6a146104cc5780633feb5f2b146104df57806340a49a96146105135780634671e65e146105475780634dc6b523146105685780634e69d5601461057157806351404cbe14610592578063518496b2146105b4578063550ed1f0146105cb57806366aee0fc146106b85780636be80de7146106c1578063724ae9d0146106d957806382a5285d146106f657806385eac05f146107d25780639619367d146107f4578063a4beffa7146107fd578063a96a5a5b14610817578063adc2c98a14610820578063bc99cc3714610829578063c4bc5da514610832578063cafb220214610851578063d21d79501461085a578063d4c80edf1461087c578063d667dcd714610885578063df06f9061461088e578063e0e3ba5a14610899578063f4993bbd146108d6578063f8b2cb4f146108fc578063fb099c841461090e575b61092c61092e6102b6565b61092c33600160a060020a03166000908152600b60205260408120541415610d5e57610002565b6109306004356014546000908190819081908510156102975760148054869081101561000257505050507fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec83015490819052601360205260409091208054600182015460029290920154600160a060020a0391909116925b509193909250565b6109595b601754601654600e5401035b90565b61092c5b600060006000601060149054906101000a900460ff1615610a1757610002565b6109596004355b600e54601654600160a060020a0383166000908152600b60209081526040808320548352600c90915290206001015402045b919050565b61092c600f54600160a060020a039081163390911614610d8457610002565b610959600d5481565b61095960045481565b61095960095481565b61092c60043533600160a060020a03166000908152600b60205260408120541415610ded57610002565b61092c600435600f54600160a060020a039081163390911614610e2b57610002565b61092c600f546000908190600160a060020a039081163390911614610e4d57610002565b61095960175481565b60408051602060248035600481810135601f810185900485028601850190965285855261092c9581359591946044949293909201918190840183828082843750506040805160209735808a0135601f81018a90048a0283018a01909352828252969897606497919650602491909101945090925082915084018382808284375094965050505050505060006000610f4460006000600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518160e060020a0281526004018090506020604051808303816000876161da5a03f11561000257505060405151915050600160a060020a038116821415611d7a57611d226000610c6a565b61096b60105460a060020a900460ff1681565b600c602052600435600090815260409020600181015481546002929092015461097f92600160a060020a0316919060ff1683565b6109595b60006001805b600d548111611296576000828152600c602052604090205461129f90600160a060020a0316610903565b61092c60043560105460009060a060020a900460ff1615156112d257610002565b61095960085481565b6109aa6000600060006000600060006000600060006000600061137f6102a3565b61092c600435600f54600160a060020a0390811633909116146113e057610002565b6011546012546109f191600160a060020a03169082565b610959600060006000600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518160e060020a0281526004018090506020604051808303816000876161da5a03f115610002575050604080518051600a5460e260020a630bbceb330283526201e848016024830152600482018390526003604483015260ea60020a621554930260648301529151600160a060020a03929092169250632ef3accc916084828101926020929190829003018187876161da5a03f1156100025750506040515160025460035491945061271091820381900390910291506114266102a3565b61095960165481565b610959600435600b6020526000908152604090205481565b6109595b600654600d5460009182911415610d5557611438610517565b61095960006000600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518160e060020a0281526004018090506020604051808303816000876161da5a03f115610002575050604080518051600a5460e260020a630bbceb330283526201e848016024830152600482018390526003604483015260ea60020a621554930260648301529151600160a060020a03929092169250632ef3accc916084828101926020929190829003018187876161da5a03f11561000257505060405151600554810193509150610d5a9050565b61092c600435600f54600160a060020a03908116339091161461146357610002565b61095960055481565b61092c60105460a060020a900460ff161561148557610002565b61095960025481565b61095960035481565b61095960065481565b61092c600f54600160a060020a03908116339091161461153f57610002565b610959600e5481565b61092c600435600f54600160a060020a03908116339091161461156c57610002565b61095960155481565b61095960075481565b6109596014546102af565b6109596004355b600e54601754600160a060020a0383166000908152600b60209081526040808320548352600c909152902060010154020461030f565b61092c600f5460009081908190600160a060020a03908116339091161461158f57610002565b6109596004355b6000611710826108a0565b61092c60105460009060ff60a060020a909104161561174b57610002565b005b565b60408051600160a060020a03949094168452602084019290925282820152519081900360600190f35b60408051918252519081900360200190f35b604080519115158252519081900360200190f35b60408051600160a060020a039490941684526020840192909252151582820152519081900360600190f35b60408051998a5260208a0198909852888801969096526060880194909452608087019290925260a086015260c085015260e084015261010083015251908190036101200190f35b6040518083600160a060020a031681526020018281526020019250505060405180910390f35b3460001415610a2557610002565b600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518160e060020a0281526004018090506020604051808303816000876161da5a03f115610002575050604080518051600a5460e260020a630bbceb330283526201e848016024830152600482018390526003604483015260ea60020a621554930260648301529151600160a060020a03929092169250632ef3accc91608480830192602092919082900301816000876161da5a03f11561000257505060405151935050348390039150612710610aff6102a3565b6004600050540204600260005054600260005054600360005054612710030384020411158015610b3157506005548210155b15610c8b576040805180820182526003815260ea60020a62155493026020828101919091528251608081018452604381527f6a736f6e2868747470733a2f2f6170692e72616e646f6d2e6f72672f6a736f6e818301527f2d7270632f312f696e766f6b65292e726573756c742e72616e646f6d2e646174818501527f612e30000000000000000000000000000000000000000000000000000000000060608201528351610160810190945261012c808552610c9094919261212390830139600a546201e84801600060006000600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518160e060020a0281526004018090506020604051808303816000876161da5a03f11561000257505060405151915050600160a060020a0381168214156118835761182b60005b60006000611fa8731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed5b3b90565b610002565b604080516060810182523381526020818101868152600083850181815286825260139093529390932091518254600160a060020a031916178255915160018281019190915591516002919091015560148054918201808255929350918281838015829011610d3d576000839052610d3d907fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec9081019083015b80821115610d5a5760008155600101610d29565b5050506000928352506020909120018190555b505050565b600091505b5090565b34600014610d6b57610002565b61092e335b6000600060006000846000611b0282610903565b34600014610d9157610002565b6010805474ff0000000000000000000000000000000000000000191660a060020a179055565b33600160a060020a03166000908152600b60209081526040808320548352600c9091529020600201805460ff1916821790555b50565b601154600160a060020a031660001415610e0657610002565b60105460a060020a900460ff161515610e1e57610002565b34600014610db757610002565b34600014610e3857610002565b60108054600160a060020a0319168217905550565b34600014610e5a57610002565b5050600d5460015b818111610f12576001600052600c6020527fd421a5181c571bba3f01190c922c3b2a896fc1d84e86c9f17ac10e67ebef8b5c54610f1690600160a060020a0316610d70565b60008281526013602052604090206201869f600291909101558054600182015461128991600160a060020a0316905b8030600160a060020a0316311015611e00576040517f9bc0f7b8676ac8a3d913fc962a472bc40103acaa27e5477c1eadfbb7d4897a0490600090a15b5050565b600101610e62565b6015805460018c01540190556018805460ff1916905550505050505050505b5050505050565b600160a060020a031633600160a060020a0316141515610f6357610002565b600085815260136020526040812060028101548792901115610f8457610002565b6000878152601360205260408120889188919061105a835b6000611df98260006040805160208101909152600090819052828180805b835181101561103c57603060f860020a028482815181101561000257016020015160f860020a9081900402600160f860020a031916108015906110275750603960f860020a028482815181101561000257016020015160f860020a9081900402600160f860020a03191611155b1561208e5781156120ef5785600014156120e6575b600086111561104f57600a86900a909202915b509095945050505050565b9050600181108061106c575061271081115b801561107c575060028201546000145b156110b45760008481526013602052604090206201869f60029190910155815460018301546110cf91600160a060020a031690610ed6565b60008b81526013602052604090208b906127106110da6102a3565b505050505050610f3d565b6004600050540204600260005054600260005054600360005054612710030383600101600050540204111515610ea75760008d815260136020526040902099506111238c610f9c565b60008e815260136020908152604091829020600290810184905582516060810184528e54600160a060020a0316815260018f0154928101929092528d0154918101919091529099506111f3908a600081600260005054600182031015611f0a57604080516002546003548751602089810151600160a060020a03929092168552840186905261271091909103020481830181905291519193507f8f25eec129b997ba51175c8f2583cafbfc0c076ef19e2c455869730f969ec44d919081900360600190a18351611ef89083610ed6565b604080516060810182528b54600160a060020a0316815260018c0154602082015260028c015491810191909152610f1e908a6002546000908290600019820110611f0a57604080518551600160a060020a031681526020810183905281517fcb9c7189736051e86837ee4847c751bad47c86cb506933875ff8fabf9eeda008929181900390910190a18351611f10906001610ed6565b5050505050505050610f3d565b8192505b505090565b6000828152600c60205260409020546112c090600160a060020a0316610903565b10156112ca579050805b60010161051d565b600f54600160a060020a0390811633909116146112ee57610002565b346000146112fb57610002565b5060015b600d548111611329576000818152600c60205260409020600201805460ff191690556001016112ff565b6040805180820182528381524260209190910181905260118054600160a060020a03191685179055601255517ffc136941d6f5a7fa31fea543bdc05be2e77ce86110b5fe83706976590c0d399590600090a15050565b91506113896106dd565b90508160026000505460036000505460046000505460056000505460156000505460176000505460166000505403876014600050805490509a509a509a509a509a509a509a509a509a505050909192939495969798565b60105460a060020a900460ff1615156113f857610002565b3460001461140557610002565b61140e81610d70565b60118054600160a060020a0319169055600060125550565b6004540202048083019350905061129a565b6000818152600c602052604090205490915061145c90600160a060020a0316610903565b9150610d5a565b3460001461147057610002565b600f8054600160a060020a0319168217905550565b346000141561149357610002565b33600160a060020a03166000908152600b602052604081205414156114b757610002565b6115035b601854600090819081908190819060ff161515610f3d57600193505b600d548411611f50576000848152600c6020526040902054600160a060020a03169250611f70836102dd565b33600160a060020a03166000908152600b60209081526040808320548352600c9091529020600101805434908101909155600e80549091019055565b3460001461154c57610002565b6010805474ff000000000000000000000000000000000000000019169055565b806161a881101561157c57610002565b3460001461158957610002565b50600a55565b601154600160a060020a0316600014156115a857610002565b60105460a060020a900460ff1615156115c057610002565b6012544262093a8090910111156115d657610002565b346000146115e357610002565b505030600160a060020a03163160015b600d548111611644576000818152600c602052604090206002015460ff1615156001141561163c576040600090812060020180549183905260ff19919091169055600192909201915b6001016115f3565b600d5460095460649102048310610c8b57604051601154600160a060020a03908116916000913016319082818181858883f1935050505015156116c45760408051601154600160a060020a0316815290517f3b66c41562b841e29923849dc45ac54e17eb64f534c62109ba2cc1e977f8ddaf9181900360200190a161170b565b60408051601154600160a060020a031681526020810184905281517f969fa9d259520e00fd561cbd5c523032e2682528b2be25d2380088b332503814929181900390910190a15b610d50565b611719836102dd565b600160a060020a0384166000908152600b60209081526040808320548352600c9091529020600101540103905061030f565b346000141561175957610002565b33600160a060020a03166000908152600b60205260408120541461177c57610002565b6117846106dd565b341161178f57610002565b6117976114bb565b600d5460065414156117cf576117ab610517565b6000818152600c60205260409020549091506117cf90600160a060020a0316610d70565b600d805460019081019182905533600160a060020a0381166000908152600b60209081526040808320869055948252600c9052929092208054600160a060020a0319169092178255349101819055600e80549091019055610dea565b50600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518160e060020a0281526004018090506020604051808303816000876161da5a03f115610002575050604051519150505b60018054600160a060020a0319168217908190556040805160e260020a630bbceb330281526024810187905260048181019283528a5160448301528a51600160a060020a039490941693632ef3accc938c938a939192839260649290920191602087810192918291859183918691600091601f850104600f02600301f150905090810190601f16801561192a5780820380516001836020036101000a031916815260200191505b5093505050506020604051808303816000876161da5a03f115610002575050604051519250503a8402670de0b6b3a7640000018211156119735750600091505b50949350505050565b600160009054906101000a9004600160a060020a0316600160a060020a03166385dee34c8360008a8a8a8a6040518760e060020a028152600401808681526020018060200180602001806020018581526020018481038452888181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f168015611a1e5780820380516001836020036101000a031916815260200191505b508481038352878181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f168015611a775780820380516001836020036101000a031916815260200191505b508481038252868181518152602001915080519060200190808383829060006004602084601f0104600f02600301f150905090810190601f168015611ad05780820380516001836020036101000a031916815260200191505b509850505050505050505060206040518083038185886185025a03f11561000257505060405151945061196a92505050565b10611d1a57611b0f6114bb565b600160a060020a0386166000908152600b60205260409020549450611b3386610903565b6000868152600c60209081526040808320600181018054600e80549190910390556008548254600160a060020a031916835590859055600291909101805460ff19169055600160a060020a038b168452600b909252822091909155600d54612710918302919091049182900395509093508514611cf057600c6000506000600d600050548152602001908152602001600020600050915084600b60005060008460000160009054906101000a9004600160a060020a0316600160a060020a031681526020019081526020016000206000508190555081600c60005060008781526020019081526020016000206000506000820160009054906101000a9004600160a060020a03168160000160006101000a815481600160a060020a0302191690830217905550600182016000505481600101600050556002820160009054906101000a900460ff168160020160006101000a81548160ff02191690830217905550905050600c6000506000600d60005054815260200190815260200160002060006000820160006101000a815490600160a060020a03021916905560018201600050600090556002820160006101000a81549060ff021916905550505b600d8054600019019055611d048685610ed6565b601054611d1a90600160a060020a031684610ed6565b505050505050565b50600060009054906101000a9004600160a060020a0316600160a060020a03166338cc48316040518160e060020a0281526004018090506020604051808303816000876161da5a03f115610002575050604051519150505b60018054600160a060020a031916821790819055604080517fc281d19e0000000000000000000000000000000000000000000000000000000081529051600160a060020a03929092169163c281d19e9160048181019260209290919082900301816000876161da5a03f1156100025750506040515192506102af915050565b905061030f565b604051600a54600160a060020a0384169183906000818181858888f193505050501515610f125760408051600160a060020a03841681526020810183905281517f3d14263aec0db87097e504ee7aca5316e879b2cc7f3b29f9c62d40e9bae04cee929181900390910190a1601054600160a060020a03838116911614610f1257604051601054600a54600160a060020a03919091169183906000818181858888f193505050501515610f125760105460408051600160a060020a039290921682526020820183905280517f3d14263aec0db87097e504ee7aca5316e879b2cc7f3b29f9c62d40e9bae04cee9281900390910190a15050565b60208401516017805491840390910190555b50505050565b600754602085015160168054612710600019939093018484038102849004919091019091556010549202049250611f0a90600160a060020a031683610ed6565b5050600060168190556017555050600e556018805460ff19166001179055565b9150611f7b836108a0565b6000858152600c6020526040902060010180548285030190819055909501949050600193909301926114d7565b1115611fdc575060008054600160a060020a031916731d3b2638a7cc9f2cb3d298a3da7a90b67e5506ed179055600161030f565b6000611ffb739efbea6358bed926b293d2ce63a730d6d98d43dd610c87565b1115612031575060008054739efbea6358bed926b293d2ce63a730d6d98d43dd600160a060020a0319909116179055600161030f565b60006120507320e12a1f859b3feae5fb2a0a32c18f5a65555bbf610c87565b11156120865750600080547320e12a1f859b3feae5fb2a0a32c18f5a65555bbf600160a060020a0319909116179055600161030f565b50600061030f565b8381815181101561000257016020015160f860020a9081900402600160f860020a0319167f2e0000000000000000000000000000000000000000000000000000000000000014156120de57600191505b600101610fba565b60001995909501945b600a83029250825060308482815181101561000257016020015160f860020a90819004810204909301602f190192506120de56424258315043513931333438333977547a31304f57785843615a61476b39327946365445533878412b38494337784e426c4a7135414c3075573372657637496f41704135444d466d43664b47696b6a6e4e624e676c4b4b76776a454e5950423854424a4e397444676463594e7864576e735941524b4d716d6a724a4b596242416977732b55553648724a58555769724f2b644253534a626d6a49672b39766d426a5371384b766569427a53476d75516875372f6853673572537353502f722b4d68522f51354543724f48692b436b502f7164535554412f516843436a647a46752b3774334873374e553334612b6c374a6476446c764438686f4e78794b6f6f4d44594e625541382f65466d50763264353338464e364b4a51702b524b723477345674414d4864656a724c4d3d

    Constructor Arguments (ABI-encoded and appended to the ByteCode above)
00000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000000000be000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000002c68af0bb140000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000050

-----Decoded View---------------
Found 8 constructor arguments :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000003e8
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
Make sure to use the "downvote" button for any spammy posts, and the "upvote" for interesting conversations.