Contract Overview |  Mobius2D
Balance: 241.002137234213691364 Ether
Ether Value: $50,314.02 (@ $208.77/ETH)
Transactions: 3929 txns
 Latest 25 txns From a total of 3929 Transactions

TxHash Age From To Value [TxFee]
0xb69fd90cb8f03647370ed458a061099dc4dcb3d4a2224a306993fa4ca8d74acf1 hr 4 mins ago0x5b4ea7d7f196844db6be94ca15fda1420cd77263  IN   Mobius2D0.042 Ether0.001093335
0x2d8d5184096ece7f1f7838b40a37fb6b354099f9956711bf8fce07d252a6c3521 hr 4 mins ago0xfe088695927cd9d777ce83e5e040c2a036ce5462  IN   Mobius2D0 Ether0.0005232
0xe2310dc3958698969db6fe6abc28901fad98a06bfabef2f891efba9fe55785071 hr 8 mins ago0xdd13ffc85ffa918b3216018a91b3a3cab0db68e5  IN   Mobius2D0 Ether0.00015042
0x74dd6e8c18f37f58bb03222bccf994305be583223c629d596c161e5b5a95a2a11 hr 10 mins ago0x6f7c02d8fc586d7d1aa203dde1500436733a267e  IN   Mobius2D0 Ether0.00034008
0x705ced7a6bdf44fd30c8c8a602082571660765b25c3f2adde066b8431a3b8d641 hr 27 mins ago0x6696fee394bb224d0154ea6b58737dca827e1960  IN   Mobius2D0 Ether0.000327
0x51b12a3e388f4d2bdafc1ada1d2325ed627d4a8ea5ee0533445b8b19dfe8ee352 hrs 17 mins ago0x6b961f774fffa4c8e2fa59a0fc59a992bb64037e  IN   Mobius2D0.1 Ether0.002114168
0x4d3b1917d5c1381186c2ca5b204f1a650294f4ccef963a5af4456882a5faa72f2 hrs 21 mins ago0x1551319dd61ae21b3f45e5cecadc02a554c01354  IN   Mobius2D0 Ether0.000327
0xb51bc0864ed0066243eeaddc004c1ada8fa3ad2a68320b7106a9df852d4d88e92 hrs 36 mins ago0x36fb8197723fb0ed3057fb585b35bf32584c8a04  IN   Mobius2D0 Ether0.0002616
0x022da521308b737c894f4504391b4728da8472ec396ea2a6fd350c35833db7e62 hrs 41 mins ago0xc28a077d466914348a6aa35ce7fa33549ad44d4b  IN   Mobius2D0 Ether0.00013734
0xf965a8e9982a2064f8e12c043e56c7e78444a3c8aeb80a73ba46c5012ecb978b2 hrs 42 mins ago0xfb4436f83fd9102b93e6b4d6a6a437424e4accc0  IN   Mobius2D0 Ether0.0002616
0xe7150df798a251f556af03649cfc32b0eea5e7d091e70ab783b6ed9e02a238cd2 hrs 46 mins ago0x1023cd69e74eba186399980609172b461f0cd36e  IN   Mobius2D0 Ether0.000504
0x18503cb9b663bb89e188ceb5e4f77b51af6f907f88c4ac13fc4f2efbd90ea76b2 hrs 57 mins ago0xea5d08bc7d5df9270cfe0af331bbe5261ea0cc64  IN   Mobius2D0 Ether0.0003924
0x576a18681e50190af59789b1941fda54c2ac5a2fb4bb459bdee9aa126cf560d93 hrs 15 mins ago0x3fbba72d9a61eca8623b2d52b4f2b6ad1981dc1e  IN   Mobius2D0 Ether0.0001962
0x67055056d8e045f5c3da6736f52bcded92556a7a752694c5306b42343f36f05a4 hrs 7 mins ago0xe8febda0c0f1c57fdbb53c3adccf7e93fcd1055e  IN   Mobius2D0 Ether0.0001962
0xb778ff28e0fca560a3fb10e9128ef35a36031d99daa948db91d703493da9b5004 hrs 35 mins ago0x4c101f57dc0e6e8f0e73cfad17e5a336f782a5bb  IN   Mobius2D0 Ether0.0002616
0x48b6647d309a17309e99dc8f01b540b909168c7a6ff92ad8fecc608e223db0bf4 hrs 41 mins ago0x0a862832a490c84963ac62e373ccae762274ebe3  IN   Mobius2D0 Ether0.0002616
0xa8222ad33e2d4fd1080cfd48880dc12ecc5bd8aee09c48e3b89bf39063135d085 hrs 37 mins ago0x2502ce06dcb61ddf5136171768dfc08d41db0a75  IN   Mobius2D0 Ether0.0001308
0x80a74abe74dc50d40f75a32136a9f02d16c62009e57df80074aa76ac656a29dd5 hrs 39 mins ago0x233a5180a19717d047999508a34c2dfbfdb25e78  IN   Mobius2D0 Ether0.0001308
0x142dfc95cdbab8f7eea02dcabaa5fccf64f09bcf0652144158a1e1a5b21cb35a5 hrs 46 mins ago0x57e2f5181e6354b1329ccc12d81e990acb82e48c  IN   Mobius2D0.101 Ether0.000267508
0x98eb8bdd0bc8dc1b9ff9c514182955a4b525f32b56acf8c6960c4b34f36fa63a7 hrs 2 mins ago0xd4af5bf5321933fe2b85339c50f2f78d2713a81a  IN   Mobius2D0 Ether0.0002616
0x828038a1c984db7fce0b532bddb9d3727f6c290eafe89a20c5cc34af75b23b858 hrs 16 mins ago0x3dc4d3f1ea2b115d8f94d255764b707cc3b4a3f8  IN   Mobius2D0 Ether0.0002616
0xd8ac91c9422cc79e50ea4984a854f95493e61d6d6dd5c11fad3edce33666aad68 hrs 43 mins ago0x9d7a76fd386edeb3a871c3a096ca875adc1a55b7  IN   Mobius2D0 Ether0.0001962
0x87451c74bb272b7017fdd944bfb2f86f59e328774584efda04c7ebdd8b7e26cd9 hrs 12 mins ago0xae817ec70d8b621bb58a047e63c31445f79e20dc  IN   Mobius2D0 Ether0.000327
0x6d74291c1f81de2c76d248fcc1532851e3db1c0f9de50c4b185ab6f829ef1e559 hrs 39 mins ago0x5318cadffe208d39a01d384ff2209aa768248d0f  IN   Mobius2D0 Ether0.0001308
0x39d8825761c627ba029f2576c0f3669dd6bb18afa30370e05cc16ab0690bca8311 hrs 8 mins ago0x22cf45f2e422e51e66c45ca9980ef3fc95875dd1  IN   Mobius2D0 Ether0.0002493375
[ 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
0x2d8d5184096ece7f1f7838b40a37fb6b354099f9956711bf8fce07d252a6c35265264461 hr 4 mins ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0xfe088695927cd9d777ce83e5e040c2a036ce54620.071469781562264069 Ether
0xe2310dc3958698969db6fe6abc28901fad98a06bfabef2f891efba9fe557850765264331 hr 8 mins ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0xdd13ffc85ffa918b3216018a91b3a3cab0db68e50.130703063283459348 Ether
0x74dd6e8c18f37f58bb03222bccf994305be583223c629d596c161e5b5a95a2a165264261 hr 10 mins ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0x6f7c02d8fc586d7d1aa203dde1500436733a267e0.026917133681932482 Ether
0x705ced7a6bdf44fd30c8c8a602082571660765b25c3f2adde066b8431a3b8d6465263511 hr 27 mins ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0x6696fee394bb224d0154ea6b58737dca827e19600.003857016159906534 Ether
0x4d3b1917d5c1381186c2ca5b204f1a650294f4ccef963a5af4456882a5faa72f65261182 hrs 21 mins ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0x1551319dd61ae21b3f45e5cecadc02a554c013540.036833297436667634 Ether
0xb51bc0864ed0066243eeaddc004c1ada8fa3ad2a68320b7106a9df852d4d88e965260602 hrs 36 mins ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0x36fb8197723fb0ed3057fb585b35bf32584c8a040.014345320579882983 Ether
0x022da521308b737c894f4504391b4728da8472ec396ea2a6fd350c35833db7e665260312 hrs 41 mins ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0xc28a077d466914348a6aa35ce7fa33549ad44d4b0.000748977000132481 Ether
0xf965a8e9982a2064f8e12c043e56c7e78444a3c8aeb80a73ba46c5012ecb978b65260252 hrs 42 mins ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0xfb4436f83fd9102b93e6b4d6a6a437424e4accc00.002342828449639372 Ether
0xe7150df798a251f556af03649cfc32b0eea5e7d091e70ab783b6ed9e02a238cd65260072 hrs 46 mins ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0x1023cd69e74eba186399980609172b461f0cd36e0.021392509651228109 Ether
0x18503cb9b663bb89e188ceb5e4f77b51af6f907f88c4ac13fc4f2efbd90ea76b65259652 hrs 57 mins ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0xea5d08bc7d5df9270cfe0af331bbe5261ea0cc640.025558150227219359 Ether
0x576a18681e50190af59789b1941fda54c2ac5a2fb4bb459bdee9aa126cf560d965258913 hrs 15 mins ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0x3fbba72d9a61eca8623b2d52b4f2b6ad1981dc1e0.002447086836029601 Ether
0x67055056d8e045f5c3da6736f52bcded92556a7a752694c5306b42343f36f05a65256624 hrs 7 mins ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0xe8febda0c0f1c57fdbb53c3adccf7e93fcd1055e0.009464491106602839 Ether
0xb778ff28e0fca560a3fb10e9128ef35a36031d99daa948db91d703493da9b50065255394 hrs 35 mins ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0x4c101f57dc0e6e8f0e73cfad17e5a336f782a5bb0.019014270208137763 Ether
0x48b6647d309a17309e99dc8f01b540b909168c7a6ff92ad8fecc608e223db0bf65255104 hrs 41 mins ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0x0a862832a490c84963ac62e373ccae762274ebe30.005422451239460729 Ether
0xa8222ad33e2d4fd1080cfd48880dc12ecc5bd8aee09c48e3b89bf39063135d0865252745 hrs 37 mins ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0x2502ce06dcb61ddf5136171768dfc08d41db0a750.007447632965128143 Ether
0x80a74abe74dc50d40f75a32136a9f02d16c62009e57df80074aa76ac656a29dd65252705 hrs 39 mins ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0x233a5180a19717d047999508a34c2dfbfdb25e780.008164757460189628 Ether
0x98eb8bdd0bc8dc1b9ff9c514182955a4b525f32b56acf8c6960c4b34f36fa63a65249247 hrs 2 mins ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0xd4af5bf5321933fe2b85339c50f2f78d2713a81a0.00028509498527698 Ether
0x828038a1c984db7fce0b532bddb9d3727f6c290eafe89a20c5cc34af75b23b8565246308 hrs 16 mins ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0x3dc4d3f1ea2b115d8f94d255764b707cc3b4a3f80.009585076447750853 Ether
0xd8ac91c9422cc79e50ea4984a854f95493e61d6d6dd5c11fad3edce33666aad665245068 hrs 43 mins ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0x9d7a76fd386edeb3a871c3a096ca875adc1a55b70.014428886224977501 Ether
0x87451c74bb272b7017fdd944bfb2f86f59e328774584efda04c7ebdd8b7e26cd65243839 hrs 12 mins ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0xae817ec70d8b621bb58a047e63c31445f79e20dc0.034325396004135415 Ether
0x6d74291c1f81de2c76d248fcc1532851e3db1c0f9de50c4b185ab6f829ef1e5565242779 hrs 39 mins ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0x5318cadffe208d39a01d384ff2209aa768248d0f0.0180819124051186 Ether
0x39d8825761c627ba029f2576c0f3669dd6bb18afa30370e05cc16ab0690bca83652391311 hrs 8 mins ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0x22cf45f2e422e51e66c45ca9980ef3fc95875dd10.001588888850873505 Ether
0x34ff2d3364c876f455691b4d1f7f96a9e2c77c8effcd49145d377a2801497304652385111 hrs 22 mins ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0xc4d31b4dc713dc4ac3d3f7be63447ef1d2abe2ef0.009622113445908313 Ether
0x9a2792987779dae100c9f56e4178cb64621082d0ca9cc0ad98e8a18f9ba6148a652370111 hrs 55 mins ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0x5f50a5e9198c7cecac158b587bc2c78981f6da670.007857562380025583 Ether
0x613ba2b3bdea811f969a2cd8e714544675db7d5f1377ef9a33f41239be837e38652368911 hrs 59 mins ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0xb5774af3fa2135b55ef20ef03cbce42d703f788e0.004561164304100081 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: Mobius2D
Compiler Text: v0.4.24+commit.e67f0147
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity^0.4.24;

/**
                        MOBIUS 2D
                     https://m2d.win 
                                       
    This game was inspired by FOMO3D. Our code is much cleaner and more efficient (built from scratch).
    Some useless "features" like the teams were not implemented.
 
    The Mobius2D game consists of rounds with guaranteed winners!
    You buy "shares" (instad of keys) for a given round, and you get returns from investors after you.
    The sare price is constant until the hard deadline, after which it increases exponentially. 
    If a round is inactive for a day it can end earlier than the hard deadline.
    If a round runs longer, it is guaranteed to finish not much after the hard deadline (and the last investor gets the big jackpot).
    Additionally, if you invest more than 0.1 ETH you get a chance to win an airdrop and you get bonus shares
    Part of all funds also go to a big final jackpot - the last investor (before a round runs out) wins.
    Payouts work in REAL TIME - you can withdraw your returns at any time!
    Additionally, the first round is an ICO, so you'll also get our tokens by participating!
    !!!!!!!!!!!!!!
    Token holders will receive part of current and future revenue of this and any other game we develop!
    !!!!!!!!!!!!!!
    
    .................................. LAUGHING MAN sssyyhddmN..........................................
    ..........................Nmdyyso+/:--.``` :`  `-`:--:/+ossyhdmN....................................
    ......................Ndhyso/:.`   --.     o.  /+`o::` `` `-:+osyh..................................
    ..................MNdyso/-` /-`/:+./:/..`  +.  //.o +.+::+ -`  `-/sshdN.............................
    ................Ndyso:` ` --:+`o//.-:-```  ...  ``` - /::::/ +..-` ./osh............................
    ..............Nhso/. .-.:/`o--:``   `..-:::oss+::--.``    .:/::/`+-`/../sydN........................
    ............mhso-``-:+./:-:.   .-/+osssssssssssssssssso+:-`  -//o::+:/` .:oyhN......................
    ..........Nhso:`  .+-./ `  .:+sssssso+//:-------:://+ossssso/---.`-`/:-o/ `:syd.....................
    ........Mdyo- +/../`-`  ./osssso/-.`                 ``.:+ossss+:`  `-+`  ` `/sy....................
    ......MNys/` -:-/:    -+ssss+-`                           `.:+ssss/.  `  -+-. .osh..................
    ......mys-  :-/+-`  :osss+-`                                  .:osss+.  `//o:- `/syN................
    ....Mdso. --:-/-  -osss+.                                       `-osss+`  :--://`-sy................
    ....dso-. ++:+  `/sss+.                                           `:osss:  `:.-+  -sy...............
    ..Mdso``+///.` .osss:                                               `/sss+`  :/-.. -syN.............
    ..mss` `+::/  .ssso.                                                  :sss+` `+:/+  -syN............
    ..ys-   ```  .ssso`                                                    -sss+` `:::+:`/sh............
    Mds+ `:/..  `osso`                                                      -sss+  -:`.` `ssN...........
    Mys. `/+::  +sss/........................................................+sss:.....-::+sy..NN.......
    ds+  :-/-  .ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssyyhdN...
    hs: `/+::   :/+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ossssyhNM
    ss. `:::`                    ````                        ```                               ``-+sssyN
    ss` /:-+` `o++:           .:+oooo+/.                 `-/ooooo+-`                               -sssy
    ss  `:/:  `sss/          :ooo++/++os/`              .oso++/++oso.                               osss
    ss``/:--  `sss/         ./.`      `.::              /-.`     ``-/`                             -sssy
    ss.:::-:.  ssso         `            `                                                    ``.-+sssyN
    hs:`:/:/.  /sss.   .++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++oossssyhNM
    ds+ ``     .sss/   -ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssyyyyhmN...
    Nss.:::::.  +sss.   +sss/........................................osss:...+sss:......../shmNNN.......
    Mds+..-:::` `osso`  `+sss:                                     `+sss:   -sss+  .:-.` `ssN...........
    ..ys- .+.::  .ssso`  `/sss+.                                  -osss:   -sss+` `:++-` /sh............
    ..mss` .-.    .ssso.   :osss/`                              .+ssso.   :sss+` `.:+:` -syN............
    ..Mdso`  `--:` .osss:   `/ssss/.`                        `-+ssso:`  `/sss+` `++.-. -syN.............
    ....dso` -//+-` `/sss+.   ./ossso/-``                `.:+sssso:`  `:osss:  .::+/. -sy...............
    ....Mdso. `-//-`  -osss+.   `-+ssssso+/:-.`````..-:/+osssso/.   `-osss+.` -///-  -sy................
    ......mys- `/://.`  :osss+-`   `-/+osssssssssssssssssso+:.    .:osss+.  .:`..-``/syN................
    ......MNys/` ..+-/:   -+ssss+-`    `.-://++oooo++/:-.`    `.:+ssss/.  .`      .osh..................
    ........Mdyo- `::/.  `  ./osssso/-.`                 ``.:+ossss+:` `  .//`  `/sy....................
    ..........Nhso-     :+:.`  .:+sssssso+//:--------://+ossssso/:.  `::/: --/.:syd.....................
    ............mhso-` ./+--+-:    .-/+osssssssssssssssssso+/-.  .+` `//-/ `::oyhN......................
    ..............Nhso/`   +/:--+.-`    `..-:::////::--.``    .`:/-o`  ./`./sydN........................
    ................Ndys+:` ``--+++-  .:  `.``      `` -.`/:/`.o./::.  ./osh............................
    ..................MNdyso/-` ` :`  +-  :+.o`s ::-/++`s`+/o.-:`  `-/sshdN.............................
    ......................Ndhyso/:.` .+   +/:/ +:/-./:-`+: `` `.:+osyh..................................
    ..........................Nmdyyso+/:--/.``      ``..-:/+ossyhdmN....................................
    ..............................MN..dhhyyssssssssssssyyhddmN..........................................
 */
 
contract DSMath {
    function add(uint x, uint y) internal pure returns (uint z) {
        require((z = x + y) >= x);
    }
    function sub(uint x, uint y) internal pure returns (uint z) {
        require((z = x - y) <= x);
    }
    function mul(uint x, uint y) internal pure returns (uint z) {
        require(y == 0 || (z = x * y) / y == x);
    }

    function min(uint x, uint y) internal pure returns (uint z) {
        return x <= y ? x : y;
    }
    function max(uint x, uint y) internal pure returns (uint z) {
        return x >= y ? x : y;
    }
    function imin(int x, int y) internal pure returns (int z) {
        return x <= y ? x : y;
    }
    function imax(int x, int y) internal pure returns (int z) {
        return x >= y ? x : y;
    }

    uint constant WAD = 10 ** 18;
    uint constant RAY = 10 ** 27;

    function wmul(uint x, uint y) internal pure returns (uint z) {
        z = add(mul(x, y), WAD / 2) / WAD;
    }
    function rmul(uint x, uint y) internal pure returns (uint z) {
        z = add(mul(x, y), RAY / 2) / RAY;
    }
    function wdiv(uint x, uint y) internal pure returns (uint z) {
        z = add(mul(x, WAD), y / 2) / y;
    }
    function rdiv(uint x, uint y) internal pure returns (uint z) {
        z = add(mul(x, RAY), y / 2) / y;
    }

    // This famous algorithm is called "exponentiation by squaring"
    // and calculates x^n with x as fixed-point and n as regular unsigned.
    //
    // It's O(log n), instead of O(n) for naive repeated multiplication.
    //
    // These facts are why it works:
    //
    //  If n is even, then x^n = (x^2)^(n/2).
    //  If n is odd,  then x^n = x * x^(n-1),
    //   and applying the equation for even x gives
    //    x^n = x * (x^2)^((n-1) / 2).
    //
    //  Also, EVM division is flooring and
    //    floor[(n-1) / 2] = floor[n / 2].
    //
    function rpow(uint x, uint n) internal pure returns (uint z) {
        z = n % 2 != 0 ? x : RAY;

        for (n /= 2; n != 0; n /= 2) {
            x = rmul(x, x);

            if (n % 2 != 0) {
                z = rmul(z, x);
            }
        }
    }
}

contract DSAuthority {
    function canCall(
        address src, address dst, bytes4 sig
    ) public view returns (bool);
}

contract DSAuthEvents {
    event LogSetAuthority (address indexed authority);
    event LogSetOwner     (address indexed owner);
}

contract DSAuth is DSAuthEvents {
    DSAuthority  public  authority;
    address      public  owner;

    constructor() public {
        owner = msg.sender;
        emit LogSetOwner(msg.sender);
    }

    function setOwner(address owner_)
        public
        auth
    {
        owner = owner_;
        emit LogSetOwner(owner);
    }

    function setAuthority(DSAuthority authority_)
        public
        auth
    {
        authority = authority_;
        emit LogSetAuthority(authority);
    }

    modifier auth {
        require(isAuthorized(msg.sender, msg.sig));
        _;
    }

    function isAuthorized(address src, bytes4 sig) internal view returns (bool) {
        if (src == address(this)) {
            return true;
        } else if (src == owner) {
            return true;
        } else if (authority == DSAuthority(0)) {
            return false;
        } else {
            return authority.canCall(src, this, sig);
        }
    }
}

interface MobiusToken {
    function mint(address _to, uint _amount) external;
    function finishMinting() external returns (bool);
    function disburseDividends() external payable;
}
 
contract Mobius2D is DSMath, DSAuth {
    // IPFS hash of the website - can be accessed even if our domain goes down.
    // Just go to any public IPFS gateway and use this hash - e.g. ipfs.infura.io/ipfs/<ipfsHash>
    string public ipfsHash;
    string public ipfsHashType = "ipfs"; // can either be ipfs, or ipns

    MobiusToken public token;

    // In case of an upgrade, these variables will be set. An upgrade does not affect a currently running round,
    // nor does it do anything with investors' vaults.
    bool public upgraded;
    address public nextVersion;

    // Total stats
    uint public totalSharesSold;
    uint public totalEarningsGenerated;
    uint public totalDividendsPaid;
    uint public totalJackpotsWon;

    // Fractions for where revenue goes
    uint public constant DEV_FRACTION = WAD / 20;             // 5% goes to devs
    uint public constant DEV_DIVISOR = 20;             // 5% 

    uint public constant RETURNS_FRACTION = 65 * 10**16;      // 65% goes to share holders
    // 1% if it is a referral purchase, this value will be taken from the above fraction (e.g. if 1% is for refferals, then 64% goes to returns) 
    uint public constant REFERRAL_FRACTION = 1 * 10**16;  
    uint public constant JACKPOT_SEED_FRACTION = WAD / 20;    // 5% goes to the next round's jackpot
    uint public constant JACKPOT_FRACTION = 15 * 10**16;      // 15% goes to the final jackpot
    uint public constant AIRDROP_FRACTION = WAD / 100;        // 1% goes to airdrops
    uint public constant DIVIDENDS_FRACTION = 9 * 10**16;     // 9% goes to token holders!

    uint public constant STARTING_SHARE_PRICE = 1 finney; // a 1000th of an ETH
    uint public constant PRICE_INCREASE_PERIOD = 1 hours; // how often the price doubles after the hard deadline

    uint public constant HARD_DEADLINE_DURATION = 30 days; // hard deadline is this much after the round start
    uint public constant SOFT_DEADLINE_DURATION = 1 days; // max soft deadline
    uint public constant TIME_PER_SHARE = 5 minutes; // how much time is added to the soft deadline per share purchased
    
    uint public jackpotSeed;// Jackpot from previous rounds
    uint public devBalance; // outstanding balance for devs
    uint public raisedICO;

    // Helpers to calculate returns - no funds are ever held on lockdown
    uint public unclaimedReturns;
    uint public constant MULTIPLIER = RAY;

    // This represents an investor. No need to player IDs - they are useless (everyone already has a unique address).
    // Just use native mappings (duh!)
    struct Investor {
        uint lastCumulativeReturnsPoints;
        uint shares;
    }

    // This represents a round
    struct MobiusRound {
        uint totalInvested;        
        uint jackpot;
        uint airdropPot;
        uint totalShares;
        uint cumulativeReturnsPoints; // this is to help calculate returns when the total number of shares changes
        uint hardDeadline;
        uint softDeadline;
        uint price;
        uint lastPriceIncreaseTime;
        address lastInvestor;
        bool finalized;
        mapping (address => Investor) investors;
    }

    struct Vault {
        uint totalReturns; // Total balance = returns + referral returns + jackpots/airdrops 
        uint refReturns; // how much of the total is from referrals
    }

    mapping (address => Vault) vaults;

    uint public latestRoundID;// the first round has an ID of 0
    MobiusRound[] rounds;

    event SharesIssued(address indexed to, uint shares);
    event ReturnsWithdrawn(address indexed by, uint amount);
    event JackpotWon(address by, uint amount);
    event AirdropWon(address by, uint amount);
    event RoundStarted(uint indexed ID, uint hardDeadline);
    event IPFSHashSet(string _type, string _hash);

    constructor(address _token) public {
        token = MobiusToken(_token);
    }

    // The return values will include all vault balance, but you must specify a roundID because
    // Returns are not actually calculated in storage until you invest in the round or withdraw them
    function estimateReturns(address investor, uint roundID) public view 
    returns (uint totalReturns, uint refReturns) 
    {
        MobiusRound storage rnd = rounds[roundID];
        uint outstanding;
        if(rounds.length > 1) {
            if(hasReturns(investor, roundID - 1)) {
                MobiusRound storage prevRnd = rounds[roundID - 1];
                outstanding = _outstandingReturns(investor, prevRnd);
            }
        }

        outstanding += _outstandingReturns(investor, rnd);
        
        totalReturns = vaults[investor].totalReturns + outstanding;
        refReturns = vaults[investor].refReturns;
    }

    function hasReturns(address investor, uint roundID) public view returns (bool) {
        MobiusRound storage rnd = rounds[roundID];
        return rnd.cumulativeReturnsPoints > rnd.investors[investor].lastCumulativeReturnsPoints;
    }

    function investorInfo(address investor, uint roundID) external view
    returns(uint shares, uint totalReturns, uint referralReturns) 
    {
        MobiusRound storage rnd = rounds[roundID];
        shares = rnd.investors[investor].shares;
        (totalReturns, referralReturns) = estimateReturns(investor, roundID);
    }

    function roundInfo(uint roundID) external view 
    returns(
        address leader, 
        uint price,
        uint jackpot, 
        uint airdrop, 
        uint shares, 
        uint totalInvested,
        uint distributedReturns,
        uint _hardDeadline,
        uint _softDeadline,
        bool finalized
        )
    {
        MobiusRound storage rnd = rounds[roundID];
        leader = rnd.lastInvestor;
        price = rnd.price;
        jackpot = rnd.jackpot;
        airdrop = rnd.airdropPot;
        shares = rnd.totalShares;
        totalInvested = rnd.totalInvested;
        distributedReturns = wmul(rnd.totalInvested, RETURNS_FRACTION);
        _hardDeadline = rnd.hardDeadline;
        _softDeadline = rnd.softDeadline;
        finalized = rnd.finalized;
    }

    function totalsInfo() external view 
    returns(
        uint totalReturns,
        uint totalShares,
        uint totalDividends,
        uint totalJackpots
    ) {
        MobiusRound storage rnd = rounds[latestRoundID];
        if(rnd.softDeadline > now) {
            totalShares = totalSharesSold + rnd.totalShares;
            totalReturns = totalEarningsGenerated + wmul(rnd.totalInvested, RETURNS_FRACTION);
            totalDividends = totalDividendsPaid + wmul(rnd.totalInvested, DIVIDENDS_FRACTION);
        } else {
            totalShares = totalSharesSold;
            totalReturns = totalEarningsGenerated;
            totalDividends = totalDividendsPaid;
        }
        totalJackpots = totalJackpotsWon;
    }

    function () public payable {
        buyShares(address(0x0));
    }

    /// Function to buy shares in the latest round. Purchase logic is abstracted
    function buyShares(address ref) public payable {        
        if(rounds.length > 0) {
            MobiusRound storage rnd = rounds[latestRoundID];   
               
            _purchase(rnd, msg.value, ref);            
        } else {
            revert("Not yet started");
        }
    }

    /// Function to purchase with what you have in your vault as returns
    function reinvestReturns(uint value) public {        
        reinvestReturns(value, address(0x0));
    }

    function reinvestReturns(uint value, address ref) public {        
        MobiusRound storage rnd = rounds[latestRoundID];
        _updateReturns(msg.sender, rnd);        
        require(vaults[msg.sender].totalReturns >= value, "Can't spend what you don't have");        
        vaults[msg.sender].totalReturns = sub(vaults[msg.sender].totalReturns, value);
        vaults[msg.sender].refReturns = min(vaults[msg.sender].refReturns, vaults[msg.sender].totalReturns);
        unclaimedReturns = sub(unclaimedReturns, value);
        _purchase(rnd, value, ref);
    }

    function withdrawReturns() public {
        MobiusRound storage rnd = rounds[latestRoundID];

        if(rounds.length > 1) {// check if they also have returns from before
            if(hasReturns(msg.sender, latestRoundID - 1)) {
                MobiusRound storage prevRnd = rounds[latestRoundID - 1];
                _updateReturns(msg.sender, prevRnd);
            }
        }
        _updateReturns(msg.sender, rnd);
        uint amount = vaults[msg.sender].totalReturns;
        require(amount > 0, "Nothing to withdraw!");
        unclaimedReturns = sub(unclaimedReturns, amount);
        vaults[msg.sender].totalReturns = 0;
        vaults[msg.sender].refReturns = 0;
        
        rnd.investors[msg.sender].lastCumulativeReturnsPoints = rnd.cumulativeReturnsPoints;
        msg.sender.transfer(amount);

        emit ReturnsWithdrawn(msg.sender, amount);
    }

    // Manually update your returns for a given round in case you were inactive since before it ended
    function updateMyReturns(uint roundID) public {
        MobiusRound storage rnd = rounds[roundID];
        _updateReturns(msg.sender, rnd);
    }

    function finalizeAndRestart() public payable {
        finalizeLastRound();
        startNewRound();
    }

    /// Anyone can start a new round
    function startNewRound() public payable {
        require(!upgraded, "This contract has been upgraded!");
        if(rounds.length > 0) {
            require(rounds[latestRoundID].finalized, "Previous round not finalized");
            require(rounds[latestRoundID].softDeadline < now, "Previous round still running");
        }
        uint _rID = rounds.length++;
        MobiusRound storage rnd = rounds[_rID];
        latestRoundID = _rID;

        rnd.lastInvestor = msg.sender;
        rnd.price = STARTING_SHARE_PRICE;
        rnd.hardDeadline = now + HARD_DEADLINE_DURATION;
        rnd.softDeadline = now + SOFT_DEADLINE_DURATION;
        rnd.jackpot = jackpotSeed;
        jackpotSeed = 0; 

        _purchase(rnd, msg.value, address(0x0));
        emit RoundStarted(_rID, rnd.hardDeadline);
    }

    /// Anyone can finalize a finished round
    function finalizeLastRound() public {
        MobiusRound storage rnd = rounds[latestRoundID];
        _finalizeRound(rnd);
    }
    
    /// This is how devs pay the bills
    function withdrawDevShare() public auth {
        uint value = devBalance;
        devBalance = 0;
        msg.sender.transfer(value);
    }

    function setIPFSHash(string _type, string _hash) public auth {
        ipfsHashType = _type;
        ipfsHash = _hash;
        emit IPFSHashSet(_type, _hash);
    }

    function upgrade(address _nextVersion) public auth {
        require(_nextVersion != address(0x0), "Invalid Address!");
        require(!upgraded, "Already upgraded!");
        upgraded = true;
        nextVersion = _nextVersion;
        if(rounds[latestRoundID].finalized) {
            //if last round was finalized (and no new round was started), transfer the jackpot seed to the new version
            vaults[nextVersion].totalReturns = jackpotSeed;
            jackpotSeed = 0;
        }
    }

    /// Purchase logic
    function _purchase(MobiusRound storage rnd, uint value, address ref) internal {
        require(rnd.softDeadline >= now, "After deadline!");
        require(value >= rnd.price/10, "Not enough Ether!");
        rnd.totalInvested = add(rnd.totalInvested, value);

        // Set the last investor (to win the jackpot after the deadline)
        if(value >= rnd.price)
            rnd.lastInvestor = msg.sender;
        // Check out airdrop 
        _airDrop(rnd, value);
        // Process revenue in different "buckets"
        _splitRevenue(rnd, value, ref);
        // Update returns before issuing shares
        _updateReturns(msg.sender, rnd);
        //issue shares for the current round. 1 share = 1 time increase for the deadline
        uint newShares = _issueShares(rnd, msg.sender, value);

        //Mint tokens during the first round
        if(rounds.length == 1) {
            token.mint(msg.sender, newShares);
        }
        uint timeIncreases = newShares/WAD;// since 1 share is represented by 1 * 10^18, divide by 10^18
        // adjust soft deadline to new soft deadline
        uint newDeadline = add(rnd.softDeadline, mul(timeIncreases, TIME_PER_SHARE));
        rnd.softDeadline = min(newDeadline, now + SOFT_DEADLINE_DURATION);
        // If after hard deadline, double the price every price increase periods
        if(now > rnd.hardDeadline) {
            if(now > rnd.lastPriceIncreaseTime + PRICE_INCREASE_PERIOD) {
                rnd.price = rnd.price * 2;
                rnd.lastPriceIncreaseTime = now;
            }
        }
    }

    function _finalizeRound(MobiusRound storage rnd) internal {
        require(!rnd.finalized, "Already finalized!");
        require(rnd.softDeadline < now, "Round still running!");

        if(rounds.length == 1) {
            // After finishing minting tokens they will be transferable and dividends will be available!
            require(token.finishMinting(), "Couldn't finish minting tokens!");
        }
        // Transfer jackpot to winner's vault
        vaults[rnd.lastInvestor].totalReturns = add(vaults[rnd.lastInvestor].totalReturns, rnd.jackpot);
        unclaimedReturns = add(unclaimedReturns, rnd.jackpot);
        
        emit JackpotWon(rnd.lastInvestor, rnd.jackpot);
        totalJackpotsWon += rnd.jackpot;
        // transfer the leftover to the next round's jackpot
        jackpotSeed = add(jackpotSeed, wmul(rnd.totalInvested, JACKPOT_SEED_FRACTION));
        //Empty the AD pot if it has a balance.
        jackpotSeed = add(jackpotSeed, rnd.airdropPot);
        if(upgraded) {
            // if upgraded transfer the jackpot seed to the new version
            vaults[nextVersion].totalReturns = jackpotSeed;
            jackpotSeed = 0; 
        }        
        //Send out dividends to token holders
        uint _div;
        if(rounds.length == 1){
            // 2% during the first round, and the normal fraction otherwise
            _div = wmul(rnd.totalInvested, 2 * 10**16);            
        } else {
            _div = wmul(rnd.totalInvested, DIVIDENDS_FRACTION);            
        }
        token.disburseDividends.value(_div)();
        totalDividendsPaid += _div;
        totalSharesSold += rnd.totalShares;
        totalEarningsGenerated += wmul(rnd.totalInvested, RETURNS_FRACTION);

        rnd.finalized = true;
    }

    /** 
        This is where the magic happens: every investor gets an exact share of all returns proportional to their shares
        If you're early, you'll have a larger share for longer, so obviously you earn more.
    */
    function _updateReturns(address _investor, MobiusRound storage rnd) internal {
        if(rnd.investors[_investor].shares == 0) {
            return;
        }
        
        uint outstanding = _outstandingReturns(_investor, rnd);

        // if there are any returns, transfer them to the investor's vaults
        if (outstanding > 0) {
            vaults[_investor].totalReturns = add(vaults[_investor].totalReturns, outstanding);
        }

        rnd.investors[_investor].lastCumulativeReturnsPoints = rnd.cumulativeReturnsPoints;
    }

    function _outstandingReturns(address _investor, MobiusRound storage rnd) internal view returns(uint) {
        if(rnd.investors[_investor].shares == 0) {
            return 0;
        }
        // check if there've been new returns
        uint newReturns = sub(
            rnd.cumulativeReturnsPoints, 
            rnd.investors[_investor].lastCumulativeReturnsPoints
            );

        uint outstanding = 0;
        if(newReturns != 0) { 
            // outstanding returns = (total new returns points * ivestor shares) / MULTIPLIER
            // The MULTIPLIER is used also at the point of returns disbursment
            outstanding = mul(newReturns, rnd.investors[_investor].shares) / MULTIPLIER;
        }

        return outstanding;
    }

    /// Process revenue according to fractions
    function _splitRevenue(MobiusRound storage rnd, uint value, address ref) internal {
        uint roundReturns;
        uint returnsOffset;
        if(rounds.length == 1){
            returnsOffset = 13 * 10**16;// during the first round reduce returns (by 13%) and give more to the ICO
        }
        if(ref != address(0x0)) {
            // if there was a referral
            roundReturns = wmul(value, RETURNS_FRACTION - REFERRAL_FRACTION - returnsOffset);
            uint _ref = wmul(value, REFERRAL_FRACTION);
            vaults[ref].totalReturns = add(vaults[ref].totalReturns, _ref);            
            vaults[ref].refReturns = add(vaults[ref].refReturns, _ref);
            unclaimedReturns = add(unclaimedReturns, _ref);
        } else {
            roundReturns = wmul(value, RETURNS_FRACTION - returnsOffset);
        }
        
        uint airdrop = wmul(value, AIRDROP_FRACTION);
        uint jackpot = wmul(value, JACKPOT_FRACTION);
        
        uint dev;
        // During the ICO, devs get 25% (5% originally, 7% from the dividends fraction, 
        // and 13% from the returns), leaving 2% for dividends, and 52% for returns 
        // This is only during the first round, and later rounds leave the original fractions:
        // 5% for devs, 9% dividends, 65% returns 
        if(rounds.length == 1){
            // calculate dividends at the end, no need to do it at every purchase
            dev = value / 4; // 25% 
            raisedICO += dev;
        } else {
            dev = value / DEV_DIVISOR;
        }
        // if this is the first purchase, send to jackpot (no one can claim these returns otherwise)
        if(rnd.totalShares == 0) {
            rnd.jackpot = add(rnd.jackpot, roundReturns);
        } else {
            _disburseReturns(rnd, roundReturns);
        }
        
        rnd.airdropPot = add(rnd.airdropPot, airdrop);
        rnd.jackpot = add(rnd.jackpot, jackpot);
        devBalance = add(devBalance, dev);
    }

    function _disburseReturns(MobiusRound storage rnd, uint value) internal {
        unclaimedReturns = add(unclaimedReturns, value);// keep track of unclaimed returns
        // The returns points represent returns*MULTIPLIER/totalShares (at the point of purchase)
        // This allows us to keep outstanding balances of shareholders when the total supply changes in real time
        if(rnd.totalShares == 0) {
            rnd.cumulativeReturnsPoints = mul(value, MULTIPLIER) / wdiv(value, rnd.price);
        } else {
            rnd.cumulativeReturnsPoints = add(
                rnd.cumulativeReturnsPoints, 
                mul(value, MULTIPLIER) / rnd.totalShares
            );
        }
    }

    function _issueShares(MobiusRound storage rnd, address _investor, uint value) internal returns(uint) {    
        if(rnd.investors[_investor].lastCumulativeReturnsPoints == 0) {
            rnd.investors[_investor].lastCumulativeReturnsPoints = rnd.cumulativeReturnsPoints;
        }    
        
        uint newShares = wdiv(value, rnd.price);
        
        //bonuses:
        if(value >= 100 ether) {
            newShares = mul(newShares, 2);//get double shares if you paid more than 100 ether
        } else if(value >= 10 ether) {
            newShares = add(newShares, newShares/2);//50% bonus
        } else if(value >= 1 ether) {
            newShares = add(newShares, newShares/3);//33% bonus
        } else if(value >= 100 finney) {
            newShares = add(newShares, newShares/10);//10% bonus
        }

        rnd.investors[_investor].shares = add(rnd.investors[_investor].shares, newShares);
        rnd.totalShares = add(rnd.totalShares, newShares);
        emit SharesIssued(_investor, newShares);
        return newShares;
    }    

    function _airDrop(MobiusRound storage rnd, uint value) internal {
        require(msg.sender == tx.origin, "ONLY HOOMANS (or scripts that don't use smart contracts)!");
        if(value > 100 finney) {
            /**
                Creates a random number from the last block hash and current timestamp.
                One could add more seemingly random data like the msg.sender, etc, but that doesn't 
                make it harder for a miner to manipulate the result in their favor (if they intended to).
             */
            uint chance = uint(keccak256(abi.encodePacked(blockhash(block.number - 1), now)));
            if(chance % 200 == 0) {// once in 200 times
                uint prize = rnd.airdropPot / 2;// win half of the pot, regardless of how much you paid
                rnd.airdropPot = rnd.airdropPot / 2;
                vaults[msg.sender].totalReturns = add(vaults[msg.sender].totalReturns, prize);
                unclaimedReturns = add(unclaimedReturns, prize);
                totalJackpotsWon += prize;
                emit AirdropWon(msg.sender, prize);
            }
        }
    }
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"raisedICO","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MULTIPLIER","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_nextVersion","type":"address"}],"name":"upgrade","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"nextVersion","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"unclaimedReturns","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"owner_","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"DEV_DIVISOR","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TIME_PER_SHARE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ipfsHashType","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalEarningsGenerated","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"investor","type":"address"},{"name":"roundID","type":"uint256"}],"name":"investorInfo","outputs":[{"name":"shares","type":"uint256"},{"name":"totalReturns","type":"uint256"},{"name":"referralReturns","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"roundID","type":"uint256"}],"name":"updateMyReturns","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"roundID","type":"uint256"}],"name":"roundInfo","outputs":[{"name":"leader","type":"address"},{"name":"price","type":"uint256"},{"name":"jackpot","type":"uint256"},{"name":"airdrop","type":"uint256"},{"name":"shares","type":"uint256"},{"name":"totalInvested","type":"uint256"},{"name":"distributedReturns","type":"uint256"},{"name":"_hardDeadline","type":"uint256"},{"name":"_softDeadline","type":"uint256"},{"name":"finalized","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawDevShare","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"investor","type":"address"},{"name":"roundID","type":"uint256"}],"name":"hasReturns","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawReturns","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"ref","type":"address"}],"name":"buyShares","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"finalizeAndRestart","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_type","type":"string"},{"name":"_hash","type":"string"}],"name":"setIPFSHash","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalsInfo","outputs":[{"name":"totalReturns","type":"uint256"},{"name":"totalShares","type":"uint256"},{"name":"totalDividends","type":"uint256"},{"name":"totalJackpots","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"STARTING_SHARE_PRICE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"jackpotSeed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DIVIDENDS_FRACTION","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SOFT_DEADLINE_DURATION","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSharesSold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"authority_","type":"address"}],"name":"setAuthority","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"REFERRAL_FRACTION","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"RETURNS_FRACTION","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"HARD_DEADLINE_DURATION","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"}],"name":"reinvestReturns","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"investor","type":"address"},{"name":"roundID","type":"uint256"}],"name":"estimateReturns","outputs":[{"name":"totalReturns","type":"uint256"},{"name":"refReturns","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"JACKPOT_SEED_FRACTION","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"JACKPOT_FRACTION","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"AIRDROP_FRACTION","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"startNewRound","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"authority","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finalizeLastRound","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"upgraded","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"},{"name":"ref","type":"address"}],"name":"reinvestReturns","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ipfsHash","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalDividendsPaid","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"devBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalJackpotsWon","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DEV_FRACTION","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"latestRoundID","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PRICE_INCREASE_PERIOD","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_token","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"shares","type":"uint256"}],"name":"SharesIssued","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"by","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"ReturnsWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"by","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"JackpotWon","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"by","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AirdropWon","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"ID","type":"uint256"},{"indexed":false,"name":"hardDeadline","type":"uint256"}],"name":"RoundStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_type","type":"string"},{"indexed":false,"name":"_hash","type":"string"}],"name":"IPFSHashSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"authority","type":"address"}],"name":"LogSetAuthority","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"LogSetOwner","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60c0604052600460808190527f697066730000000000000000000000000000000000000000000000000000000060a0908152620000409160039190620000c7565b503480156200004e57600080fd5b5060405160208062002876833981016040819052905160018054600160a060020a0319163390811790915590917fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9490600090a260048054600160a060020a031916600160a060020a03929092169190911790556200016c565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200010a57805160ff19168380011785556200013a565b828001600101855582156200013a579182015b828111156200013a5782518255916020019190600101906200011d565b50620001489291506200014c565b5090565b6200016991905b8082111562000148576000815560010162000153565b90565b6126fa806200017c6000396000f3006080604052600436106102455763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166302605ea88114610251578063059f8b16146102785780630900f0101461028d5780630bafd60e146102ae5780630d6c03fa146102df57806313af4035146102f457806314a0450a146103155780633314b9521461032a578063377c93bf1461033f5780633bfc1b25146103c95780633d6859f2146103de57806340c0ece314610420578063427f0b001461043857806343db053e146104ac57806348afd1b3146104c15780634c7ce18a146104f95780634c85b4251461050e578063536942b614610522578063574d65541461052a57806357b16811146105c15780635faf500f146105fc578063619360df1461061157806361983c021461062657806368fab02a1461063b57806373aff5af146106505780637a9e5e4b146106655780638da5cb5b1461068657806398bf4c081461069b5780639a7f027c146106b05780639b079084146106c55780639e93d0e4146106da578063a2860050146106f2578063a44be5361461072f578063b017d08c14610744578063bc2f45a714610759578063bd85948c1461076e578063bf7e214f14610776578063c24a96741461078b578063c28de2cd146107a0578063c5c87db4146107b5578063c623674f146107d9578063c9e18986146107ee578063cd9a1b6314610803578063d287e9e414610818578063f1b604081461072f578063f76339dc1461082d578063f958b9ca14610842578063fc0c546a14610857575b61024f600061086c565b005b34801561025d57600080fd5b506102666108fe565b60408051918252519081900360200190f35b34801561028457600080fd5b50610266610904565b34801561029957600080fd5b5061024f600160a060020a0360043516610914565b3480156102ba57600080fd5b506102c3610aa3565b60408051600160a060020a039092168252519081900360200190f35b3480156102eb57600080fd5b50610266610ab2565b34801561030057600080fd5b5061024f600160a060020a0360043516610ab8565b34801561032157600080fd5b50610266610b36565b34801561033657600080fd5b50610266610b3b565b34801561034b57600080fd5b50610354610b41565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561038e578181015183820152602001610376565b50505050905090810190601f1680156103bb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103d557600080fd5b50610266610bcf565b3480156103ea57600080fd5b50610402600160a060020a0360043516602435610bd5565b60408051938452602084019290925282820152519081900360600190f35b34801561042c57600080fd5b5061024f600435610c31565b34801561044457600080fd5b50610450600435610c5c565b60408051600160a060020a03909b168b5260208b0199909952898901979097526060890195909552608088019390935260a087019190915260c086015260e0850152610100840152151561012083015251908190036101400190f35b3480156104b857600080fd5b5061024f610d11565b3480156104cd57600080fd5b506104e5600160a060020a0360043516602435610d6d565b604080519115158252519081900360200190f35b34801561050557600080fd5b5061024f610db9565b61024f600160a060020a036004351661086c565b61024f610f42565b34801561053657600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261024f94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a999881019791965091820194509250829150840183828082843750949750610f549650505050505050565b3480156105cd57600080fd5b506105d66110a1565b604080519485526020850193909352838301919091526060830152519081900360800190f35b34801561060857600080fd5b5061026661113a565b34801561061d57600080fd5b50610266611145565b34801561063257600080fd5b5061026661114b565b34801561064757600080fd5b50610266611157565b34801561065c57600080fd5b5061026661115e565b34801561067157600080fd5b5061024f600160a060020a0360043516611164565b34801561069257600080fd5b506102c36111de565b3480156106a757600080fd5b506102666111ed565b3480156106bc57600080fd5b506102666111f8565b3480156106d157600080fd5b50610266611204565b3480156106e657600080fd5b5061024f60043561120b565b3480156106fe57600080fd5b50610716600160a060020a0360043516602435611216565b6040805192835260208301919091528051918290030190f35b34801561073b57600080fd5b506102666112c8565b34801561075057600080fd5b506102666112d8565b34801561076557600080fd5b506102666112e4565b61024f6112f4565b34801561078257600080fd5b506102c361153c565b34801561079757600080fd5b5061024f61154b565b3480156107ac57600080fd5b506104e5611577565b3480156107c157600080fd5b5061024f600435600160a060020a0360243516611587565b3480156107e557600080fd5b50610354611687565b3480156107fa57600080fd5b506102666116df565b34801561080f57600080fd5b506102666116e5565b34801561082457600080fd5b506102666116eb565b34801561083957600080fd5b506102666116f1565b34801561084e57600080fd5b506102666116f7565b34801561086357600080fd5b506102c36116fd565b6010546000908110156108aa576010600f5481548110151561088a57fe5b90600052602060002090600b020190506108a581348461170c565b6108fa565b6040805160e560020a62461bcd02815260206004820152600f60248201527f4e6f742079657420737461727465640000000000000000000000000000000000604482015290519081900360640190fd5b5050565b600c5481565b6b033b2e3c9fd0803ce800000081565b61092a33600035600160e060020a03191661193a565b151561093557600080fd5b600160a060020a0381161515610995576040805160e560020a62461bcd02815260206004820152601060248201527f496e76616c696420416464726573732100000000000000000000000000000000604482015290519081900360640190fd5b60045460a060020a900460ff16156109f7576040805160e560020a62461bcd02815260206004820152601160248201527f416c726561647920757067726164656421000000000000000000000000000000604482015290519081900360640190fd5b6004805474ff0000000000000000000000000000000000000000191660a060020a17905560058054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116179055600f54601080549091908110610a5757fe5b90600052602060002090600b020160090160149054906101000a900460ff1615610aa057600a8054600554600160a060020a03166000908152600e602052604081209190915590555b50565b600554600160a060020a031681565b600d5481565b610ace33600035600160e060020a03191661193a565b1515610ad957600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290556040519116907fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9490600090a250565b601481565b61012c81565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610bc75780601f10610b9c57610100808354040283529160200191610bc7565b820191906000526020600020905b815481529060010190602001808311610baa57829003601f168201915b505050505081565b60075481565b600080600080601085815481101515610bea57fe5b60009182526020808320600160a060020a038a168452600a600b90930201918201905260409091206001015494509050610c248686611216565b9497909650939450505050565b6000601082815481101515610c4257fe5b90600052602060002090600b020190506108fa3382611a43565b600080600080600080600080600080600060108c815481101515610c7c57fe5b90600052602060002090600b020190508060090160009054906101000a9004600160a060020a03169a508060070154995080600101549850806002015497508060030154965080600001549550610cdf8160000154670905438e60010000611ae3565b945080600501549350806006015492508060090160149054906101000a900460ff169150509193959799509193959799565b6000610d2933600035600160e060020a03191661193a565b1515610d3457600080fd5b50600b80546000918290556040519091339183156108fc0291849190818181858888f193505050501580156108fa573d6000803e3d6000fd5b600080601083815481101515610d7f57fe5b60009182526020808320600160a060020a0388168452600a600b909302019182019052604090912054600482015411925090505092915050565b60008060006010600f54815481101515610dcf57fe5b90600052602060002090600b0201925060016010805490501115610e2f57610dfc336001600f5403610d6d565b15610e2f5760106001600f5403815481101515610e1557fe5b90600052602060002090600b02019150610e2f3383611a43565b610e393384611a43565b50336000908152600e6020526040812054908111610ea1576040805160e560020a62461bcd02815260206004820152601460248201527f4e6f7468696e6720746f20776974686472617721000000000000000000000000604482015290519081900360640190fd5b610ead600d5482611b1e565b600d55336000818152600e602090815260408083208381556001018390556004870154600a8801909252808320919091555183156108fc0291849190818181858888f19350505050158015610f06573d6000803e3d6000fd5b5060408051828152905133917f0f9fa24c1d9febdaf99508f4923a7b5add9bd70eab45c8fc614509df79894938919081900360200190a2505050565b610f4a61154b565b610f526112f4565b565b610f6a33600035600160e060020a03191661193a565b1515610f7557600080fd5b8151610f88906003906020850190612596565b508051610f9c906002906020840190612596565b507ffee9db57784d702235f09dd34534f59c3087590639932195e0447e7728ff44108282604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015611001578181015183820152602001610fe9565b50505050905090810190601f16801561102e5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015611061578181015183820152602001611049565b50505050905090810190601f16801561108e5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050565b60008060008060006010600f548154811015156110ba57fe5b90600052602060002090600b02019050428160060154111561111e5780600301546006540193506110f78160000154670905438e60010000611ae3565b600754019450611113816000015467013fbe85edc90000611ae3565b60085401925061112e565b6006549350600754945060085492505b60095491505090919293565b66038d7ea4c6800081565b600a5481565b67013fbe85edc9000081565b6201518081565b60065481565b61117a33600035600160e060020a03191661193a565b151561118557600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091178083556040519116917f1abebea81bfa2637f28358c371278fb15ede7ea8dd28d2e03b112ff6d936ada491a250565b600154600160a060020a031681565b662386f26fc1000081565b670905438e6001000081565b62278d0081565b610aa0816000611587565b600080600080600060108681548110151561122d57fe5b90600052602060002090600b020192506001601080549050111561128c576112588760018803610d6d565b1561128c5760108054600019880190811061126f57fe5b90600052602060002090600b020190506112898782611b2e565b91505b6112968784611b2e565b600160a060020a039097166000908152600e602052604090208054600190910154979092019190910196945050505050565b6014670de0b6b3a76400005b0481565b670214e8348c4f000081565b6064670de0b6b3a76400006112d4565b600454600090819060a060020a900460ff161561135b576040805160e560020a62461bcd02815260206004820181905260248201527f5468697320636f6e747261637420686173206265656e20757067726164656421604482015290519081900360640190fd5b60105460001015611467576010600f5481548110151561137757fe5b90600052602060002090600b020160090160149054906101000a900460ff1615156113ec576040805160e560020a62461bcd02815260206004820152601c60248201527f50726576696f757320726f756e64206e6f742066696e616c697a656400000000604482015290519081900360640190fd5b426010600f548154811015156113fe57fe5b90600052602060002090600b020160060154101515611467576040805160e560020a62461bcd02815260206004820152601c60248201527f50726576696f757320726f756e64207374696c6c2072756e6e696e6700000000604482015290519081900360640190fd5b60108054906114799060018301612614565b915060108281548110151561148a57fe5b600091825260208220600f8590556009600b90920201908101805473ffffffffffffffffffffffffffffffffffffffff19163317905566038d7ea4c6800060078201554262278d008101600583015562015180016006820155600a8054600183015582905591506114fe908290349061170c565b6005810154604080519182525183917f278844837bcf8364a705384bf3a2812901f54155bae86dea81dd52aa5b9ec0e3919081900360200190a25050565b600054600160a060020a031681565b60006010600f5481548110151561155e57fe5b90600052602060002090600b02019050610aa081611be5565b60045460a060020a900460ff1681565b60006010600f5481548110151561159a57fe5b90600052602060002090600b020190506115b43382611a43565b336000908152600e602052604090205483111561161b576040805160e560020a62461bcd02815260206004820152601f60248201527f43616e2774207370656e64207768617420796f7520646f6e2774206861766500604482015290519081900360640190fd5b336000908152600e60205260409020546116359084611b1e565b336000908152600e602052604090208181556001015461165491611fc8565b336000908152600e6020526040902060010155600d546116749084611b1e565b600d5561168281848461170c565b505050565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610bc75780601f10610b9c57610100808354040283529160200191610bc7565b60085481565b600b5481565b60095481565b600f5481565b610e1081565b600454600160a060020a031681565b60008060004286600601541015151561176f576040805160e560020a62461bcd02815260206004820152600f60248201527f416674657220646561646c696e65210000000000000000000000000000000000604482015290519081900360640190fd5b6007860154600a90048510156117cf576040805160e560020a62461bcd02815260206004820152601160248201527f4e6f7420656e6f75676820457468657221000000000000000000000000000000604482015290519081900360640190fd5b85546117db9086611fe1565b86556007860154851061180a5760098601805473ffffffffffffffffffffffffffffffffffffffff1916331790555b6118148686611ff1565b61181f8686866121ac565b6118293387611a43565b61183486338761235c565b601054909350600114156118c85760048054604080517f40c10f1900000000000000000000000000000000000000000000000000000000815233938101939093526024830186905251600160a060020a03909116916340c10f1991604480830192600092919082900301818387803b1580156118af57600080fd5b505af11580156118c3573d6000803e3d6000fd5b505050505b670de0b6b3a7640000830491506118ee86600601546118e98461012c6124c7565b611fe1565b90506118ff81620151804201611fc8565b6006870155600586015442111561193257610e108660080154014211156119325760078601805460020290554260088701555b505050505050565b6000600160a060020a03831630141561195557506001611a3d565b600154600160a060020a038481169116141561197357506001611a3d565b600054600160a060020a0316151561198d57506000611a3d565b60008054604080517fb7009613000000000000000000000000000000000000000000000000000000008152600160a060020a038781166004830152306024830152600160e060020a0319871660448301529151919092169263b700961392606480820193602093909283900390910190829087803b158015611a0e57600080fd5b505af1158015611a22573d6000803e3d6000fd5b505050506040513d6020811015611a3857600080fd5b505190505b92915050565b600160a060020a0382166000908152600a820160205260408120600101541515611a6c57611682565b611a768383611b2e565b90506000811115611abe57600160a060020a0383166000908152600e6020526040902054611aa49082611fe1565b600160a060020a0384166000908152600e60205260409020555b6004820154600160a060020a0384166000908152600a84016020526040902055505050565b6000670de0b6b3a7640000611b0d611afb85856124c7565b6002670de0b6b3a76400005b04611fe1565b811515611b1657fe5b049392505050565b80820382811115611a3d57600080fd5b600160a060020a0382166000908152600a82016020526040812060010154819081901515611b5f5760009250611bdd565b6004840154600160a060020a0386166000908152600a86016020526040902054611b899190611b1e565b9150600090508115611bd957600160a060020a0385166000908152600a850160205260409020600101546b033b2e3c9fd0803ce800000090611bcc9084906124c7565b811515611bd557fe5b0490505b8092505b505092915050565b600981015460009060a060020a900460ff1615611c4c576040805160e560020a62461bcd02815260206004820152601260248201527f416c72656164792066696e616c697a6564210000000000000000000000000000604482015290519081900360640190fd5b60068201544211611ca7576040805160e560020a62461bcd02815260206004820152601460248201527f526f756e64207374696c6c2072756e6e696e6721000000000000000000000000604482015290519081900360640190fd5b60105460011415611d915760048054604080517f7d64bcb40000000000000000000000000000000000000000000000000000000081529051600160a060020a0390921692637d64bcb49282820192602092908290030181600087803b158015611d0f57600080fd5b505af1158015611d23573d6000803e3d6000fd5b505050506040513d6020811015611d3957600080fd5b50511515611d91576040805160e560020a62461bcd02815260206004820152601f60248201527f436f756c646e27742066696e697368206d696e74696e6720746f6b656e732100604482015290519081900360640190fd5b6009820154600160a060020a03166000908152600e60205260409020546001830154611dbd9190611fe1565b6009830154600160a060020a03166000908152600e6020526040902055600d546001830154611dec9190611fe1565b600d556009820154600183015460408051600160a060020a039093168352602083019190915280517fbf737c87eff4ef74213cb228c9e25ca0c4519947f5fcc4a41b221ba93d76a4259281900390910190a16001820154600980549091019055600a548254611e6c91906118e9906014670de0b6b3a76400005b04611ae3565b600a8190556002830154611e809190611fe1565b600a5560045460a060020a900460ff1615611eba57600a8054600554600160a060020a03166000908152600e602052604081209190915590555b60105460011415611edf578154611ed89066470de4df820000611ae3565b9050611ef6565b8154611ef39067013fbe85edc90000611ae3565b90505b60048054604080517f36ef1abb0000000000000000000000000000000000000000000000000000000081529051600160a060020a03909216926336ef1abb928592808301926000929182900301818588803b158015611f5457600080fd5b505af1158015611f68573d6000803e3d6000fd5b5050600880548501905550505060038201546006805490910190558154611f9790670905438e60010000611ae3565b60078054909101905550600901805474ff0000000000000000000000000000000000000000191660a060020a179055565b600081831115611fd85781611fda565b825b9392505050565b80820182811015611a3d57600080fd5b600080333214612071576040805160e560020a62461bcd02815260206004820152603960248201527f4f4e4c5920484f4f4d414e5320286f722073637269707473207468617420646f60448201527f6e27742075736520736d61727420636f6e747261637473292100000000000000606482015290519081900360840190fd5b67016345785d8a00008311156121a657604080516000194301406020808301919091524282840152825180830384018152606090920192839052815191929182918401908083835b602083106120d85780518252601f1990920191602091820191016120b9565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120945060c892508491506121119050565b0615156121a65750600283810180549190910490819055336000908152600e60205260409020546121429082611fe1565b336000908152600e6020526040902055600d5461215f9082611fe1565b600d556009805482019055604080513381526020810183905281517ff5d01889f04f77ed9ff391da32496e63ce53f4b0d0c246651254895d04bcd99a929181900390910190a15b50505050565b600080600080600080601080549050600114156121cf576701cdda4faccd000094505b600160a060020a03871615612286576121f3886708e1bc9bf0400000879003611ae3565b955061220688662386f26fc10000611ae3565b600160a060020a0388166000908152600e602052604090205490945061222c9085611fe1565b600160a060020a0388166000908152600e60205260409020908155600101546122559085611fe1565b600160a060020a0388166000908152600e6020526040902060010155600d5461227e9085611fe1565b600d5561229d565b61229a8886670905438e6001000003611ae3565b95505b6122b1886064670de0b6b3a7640000611e66565b92506122c588670214e8348c4f0000611ae3565b601054909250600114156122e75750600c8054600489049081019091556122ed565b50601487045b6003890154151561231057612306896001015487611fe1565b60018a015561231a565b61231a89876124ef565b612328896002015484611fe1565b60028a0155600189015461233c9083611fe1565b60018a0155600b5461234e9082611fe1565b600b55505050505050505050565b600160a060020a0382166000908152600a84016020526040812054819015156123a0576004850154600160a060020a0385166000908152600a870160205260409020555b6123ae838660070154612576565b905068056bc75e2d6310000083106123d2576123cb8160026124c7565b9050612426565b678ac7230489e8000083106123ed576123cb81600281611b07565b670de0b6b3a76400008310612408576123cb81600381611b07565b67016345785d8a000083106124265761242381600a81611b07565b90505b600160a060020a0384166000908152600a8601602052604090206001015461244e9082611fe1565b600160a060020a0385166000908152600a87016020526040902060010155600385015461247b9082611fe1565b6003860155604080518281529051600160a060020a038616917f3abf6d97fde3541bb582f72fa6fb75093b8bb699577fbc722ac25de9f6fbc4ed919081900360200190a2949350505050565b60008115806124e45750508082028282828115156124e157fe5b04145b1515611a3d57600080fd5b6124fb600d5482611fe1565b600d556003820154151561254157612517818360070154612576565b61252d826b033b2e3c9fd0803ce80000006124c7565b81151561253657fe5b0460048301556108fa565b61256d82600401548360030154612564846b033b2e3c9fd0803ce80000006124c7565b811515611b0757fe5b60048301555050565b600081611b0d61258e85670de0b6b3a76400006124c7565b600285611b07565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106125d757805160ff1916838001178555612604565b82800160010185558215612604579182015b828111156126045782518255916020019190600101906125e9565b50612610929150612640565b5090565b81548183558181111561168257600b0281600b028360005260206000209182019101611682919061265d565b61265a91905b808211156126105760008155600101612646565b90565b61265a91905b8082111561261057600080825560018201819055600282018190556003820181905560048201819055600582018190556006820181905560078201819055600882015560098101805474ffffffffffffffffffffffffffffffffffffffffff19169055600b016126635600a165627a7a72305820b33fc6e93ef4b9e89506e3e462cface98815913fcd0d7f1f727682c7c04f25e4002900000000000000000000000054cdc9d889c28f55f59f6b136822868c7d4726fc

    Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000054cdc9d889c28f55f59f6b136822868c7d4726fc

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000054cdc9d889c28f55f59f6b136822868c7d4726fc


   Swarm Source:
bzzr://b33fc6e93ef4b9e89506e3e462cface98815913fcd0d7f1f727682c7c04f25e4

 

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