Contract 0xa74642aeae3e2fd79150c910eb5368b64f864b1e

 

TxHash Block Age From To Value [TxFee]
0x1a92ff87478be2e53b5a5b11c692367f8fdb0f42c1b9f006ce007c224c7894f76867875100 days 15 hrs ago0xd5ca8e42d3ad03aa5abddfd1d64264f8b619452c IN  Mobius2D0 Ether0.00039894
0x1584c71c2a32ac9d8191020ffa8fd1d94cc611d0bbc0d3cbda93fef8bd30c9be6806266110 days 20 hrs ago0x1ce19ef598a81a74de4204d1fb28119106d5b157 IN  Mobius2D0 Ether0.0005886
0x506e684f18e981da88af0034d0b98c0a0c4f3b735fd14db3603767fe59b200b96802291111 days 12 hrs ago0x0d399e06891d51ec936aaf84f16b1172d65c03f9 IN  Mobius2D0 Ether0.00043164
0x71dafd40ced4290dc831990ce4273774f49c0db60ae3c903b1e08650402eb32b6790417113 days 10 hrs ago0xca3bfc62accc432daebeb9445f2860db51215a36 IN  Mobius2D0 Ether0.000654
0x2743aff4ee472627cc41e4ef4e17394c5ef8a0d3d2d3213d9f2fe76e88a0f6d26780341115 days 3 hrs ago0xbd4d528f5b0c99775679d2a6d71821516e3f90be IN  Mobius2D0 Ether0.0002616
0xce99a1efc0ba2866cf2b4aad67a5cb95ea430034993adeec5463ad09acb58afd6728835123 days 13 hrs ago0xfa8317b9f24f95c7f127e1616cfb69ccb1687a86 IN  Mobius2D0 Ether0.0001512
0xf2474e8f67a2eb78e57064ad421058ec1863d3447643022cb7fd84edf67fc9f36715987125 days 16 hrs ago0xd9c1c28a591cddd5f76c5beb78e71f21220f297c IN  Mobius2D0 Ether0.0007848
0xc97543dd0a5625d570bbbf593d5dc3f165ef51397f9a3fcaca9d3329dd97058d6701786128 days 2 mins ago0x80f946bf39531e65dbedfca1b9e29cac562d43a4 IN  Mobius2D0 Ether0.0003924
0xa99786cae2bd82d3336545ece88d3000d9d3b8910961f3feb7bfce8807933e2c6693715129 days 7 hrs ago0xe6d8d7db3de5de4b011ef335166af00860fdce9e IN  Mobius2D0 Ether0.001635
0xac8482baa321c0c7dabd1f01e06bc043d13dab7aaf2e635fa4de97c227dbbe706692270129 days 13 hrs ago0xfff221b3bc3bb02b338baaf8e53053d87c67fb8a IN  Mobius2D0 Ether0.0003528
0x9988982069cc4054a971c35c1413659488861ce9824956629e8783b0f40ac3386690752129 days 19 hrs ago0xffc26732d3b370184719d21f51a84a8de479ded8 IN  Mobius2D0 Ether0.0002616
0xb4d50f53797a73cefe8a19b0d445b6d7506011c0dbb011e5fc823b22d178f4246674794132 days 9 hrs ago0xd062c5c3915e2396928428511cfb40a2017acc68 IN  Mobius2D0 Ether0.000131985
0x7c6836e8146a44d57f2d5d1f0c145cc3ae65f795e3893f0087b5619df7f4dcf76664994134 days 29 mins ago0x3e0d5daf329c586a67d519a9c12c3f85015fc571 IN  Mobius2D0 Ether0.0005232
0x7560f8ef9ec98f5981c4e64f6ccaf0488b0ac724acada40820a402d9c895545e6655053135 days 15 hrs ago0x94fc05691d8ed011bd2fae5bbf008cb42c48fb63 IN  Mobius2D0 Ether0.000327
0x6a4e2467f3cc4f5c5c98ea6557182a1e51e7dd6b58b5f52a72156d2092fefcc36650365136 days 10 hrs ago0x367ca8abd3e02a1c28aca26b3825d2faf7e78f6d IN  Mobius2D0 Ether0.0002448766
0x4783bcb8cf146b8c1eca129a5d283a1b300c3df526ecc8d595287d069b7714d16650343136 days 10 hrs ago0x8982cd30c2e2613454473f997c657db525223d6e IN  Mobius2D0 Ether0.000414636
0x0934a88e3593ec612ce063096a79c69bfd9b342d051518797a2e058bc97ed4666650332136 days 10 hrs ago0x367ca8abd3e02a1c28aca26b3825d2faf7e78f6d IN  Mobius2D0 Ether0.000268767
0x5c560cc552924c476f100f6af63c843f1b75df4a915da6a3e3622d46135dff976650330136 days 10 hrs ago0x367ca8abd3e02a1c28aca26b3825d2faf7e78f6d IN  Mobius2D0 Ether0.0001962
0x82dec5ebe5f0ab9a8c5c549c5180820ae31f57af4bfbbd4836e62f526069eec36646176137 days 2 hrs ago0xd0b21f08a9fcb28ebbc53dc015d8174192f399d2 IN  Mobius2D0 Ether0.00059514
0x564eda5c4c6ac095f1300fcff0736f621d19ac04476c97bf10ca33e2350c1f976645798137 days 4 hrs ago0xff88c9431588a34c227e960795935e3f35006b09 IN  Mobius2D0 Ether0.0006213
0x8eb4b4d85dc822357722cac87eca09ddca0ade390d576262c43dee0f381ae1316642598137 days 17 hrs ago0x99435c993e6abb2653508eae63f1da9d3b7f5d70 IN  Mobius2D0 Ether0.000396324
0x55c968e6357b7f00fd06bf6f4a360034b8b8c7fcd8ad94305545671ecc181b1e6634758138 days 23 hrs ago0x753fa33a4d076e65277da1f34e911f9f86eb2bfa IN  Mobius2D0 Ether0.000327
0xf5b218a54edbf8546d26b852dd10e3c8fa3b267baeeaa5c0ab4165cb1bc1d6356631461139 days 12 hrs ago0x91361858332a5df6a5291d266d984e5bfd863bf6 IN  Mobius2D0 Ether0.000981
0x1b04a4d8cb41dffcda206bbde0c5209f6a90f6908810a1ceb9872a77367d09376629690139 days 19 hrs ago0x5a256977e44053dc8dcec0816018f03f406b0fb5 IN  Mobius2D0 Ether0.000327
0xbffc1e333c704584c8a2a78ad6d8e3cef84c754cd84e2ecd739e4aed4c3b09c66624973140 days 14 hrs ago0xbff457a26b8918300b3ff72e82ab4d8a647672ad IN  Mobius2D0 Ether0.0002616
[ Download CSV Export 

Latest 25 internal transaction, Click here to view more Internal Transactions as a result of Contract Execution

Parent TxHash Block Age From To Value
0x1a92ff87478be2e53b5a5b11c692367f8fdb0f42c1b9f006ce007c224c7894f76867875100 days 15 hrs ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0xd5ca8e42d3ad03aa5abddfd1d64264f8b619452c0.006740710645155426 Ether
0x1584c71c2a32ac9d8191020ffa8fd1d94cc611d0bbc0d3cbda93fef8bd30c9be6806266110 days 20 hrs ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0x1ce19ef598a81a74de4204d1fb28119106d5b1570.014692131438363088 Ether
0x506e684f18e981da88af0034d0b98c0a0c4f3b735fd14db3603767fe59b200b96802291111 days 12 hrs ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0x0d399e06891d51ec936aaf84f16b1172d65c03f90.000061075835078645 Ether
0x71dafd40ced4290dc831990ce4273774f49c0db60ae3c903b1e08650402eb32b6790417113 days 10 hrs ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0xca3bfc62accc432daebeb9445f2860db51215a360.010917305520307907 Ether
0x2743aff4ee472627cc41e4ef4e17394c5ef8a0d3d2d3213d9f2fe76e88a0f6d26780341115 days 3 hrs ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0xbd4d528f5b0c99775679d2a6d71821516e3f90be0.000260844717472736 Ether
0xce99a1efc0ba2866cf2b4aad67a5cb95ea430034993adeec5463ad09acb58afd6728835123 days 13 hrs ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0xfa8317b9f24f95c7f127e1616cfb69ccb1687a860.021299865528464188 Ether
0xf2474e8f67a2eb78e57064ad421058ec1863d3447643022cb7fd84edf67fc9f36715987125 days 16 hrs ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0xd9c1c28a591cddd5f76c5beb78e71f21220f297c0.009664788739401159 Ether
0xc97543dd0a5625d570bbbf593d5dc3f165ef51397f9a3fcaca9d3329dd97058d6701786128 days 2 mins ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0x80f946bf39531e65dbedfca1b9e29cac562d43a40.000712720715671928 Ether
0xa99786cae2bd82d3336545ece88d3000d9d3b8910961f3feb7bfce8807933e2c6693715129 days 7 hrs ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0xe6d8d7db3de5de4b011ef335166af00860fdce9e0.053519397038637644 Ether
0xac8482baa321c0c7dabd1f01e06bc043d13dab7aaf2e635fa4de97c227dbbe706692270129 days 13 hrs ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0xfff221b3bc3bb02b338baaf8e53053d87c67fb8a0.014338606101835066 Ether
0x9988982069cc4054a971c35c1413659488861ce9824956629e8783b0f40ac3386690752129 days 19 hrs ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0xffc26732d3b370184719d21f51a84a8de479ded80.001525977626307628 Ether
0xb4d50f53797a73cefe8a19b0d445b6d7506011c0dbb011e5fc823b22d178f4246674794132 days 9 hrs ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0xd062c5c3915e2396928428511cfb40a2017acc680.00001 Ether
0x7c6836e8146a44d57f2d5d1f0c145cc3ae65f795e3893f0087b5619df7f4dcf76664994134 days 29 mins ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0x3e0d5daf329c586a67d519a9c12c3f85015fc5710.018608328186794344 Ether
0x7560f8ef9ec98f5981c4e64f6ccaf0488b0ac724acada40820a402d9c895545e6655053135 days 15 hrs ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0x94fc05691d8ed011bd2fae5bbf008cb42c48fb630.006786203897627292 Ether
0x4783bcb8cf146b8c1eca129a5d283a1b300c3df526ecc8d595287d069b7714d16650343136 days 10 hrs ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0x8982cd30c2e2613454473f997c657db525223d6e0.016974062041387392 Ether
0x5c560cc552924c476f100f6af63c843f1b75df4a915da6a3e3622d46135dff976650330136 days 10 hrs ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0x367ca8abd3e02a1c28aca26b3825d2faf7e78f6d0.008487011670526033 Ether
0x82dec5ebe5f0ab9a8c5c549c5180820ae31f57af4bfbbd4836e62f526069eec36646176137 days 2 hrs ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0xd0b21f08a9fcb28ebbc53dc015d8174192f399d20.000003981238615411 Ether
0x564eda5c4c6ac095f1300fcff0736f621d19ac04476c97bf10ca33e2350c1f976645798137 days 4 hrs ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0xff88c9431588a34c227e960795935e3f35006b090.002351419650527856 Ether
0x8eb4b4d85dc822357722cac87eca09ddca0ade390d576262c43dee0f381ae1316642598137 days 17 hrs ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0x99435c993e6abb2653508eae63f1da9d3b7f5d700.003456284020923515 Ether
0x55c968e6357b7f00fd06bf6f4a360034b8b8c7fcd8ad94305545671ecc181b1e6634758138 days 23 hrs ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0x753fa33a4d076e65277da1f34e911f9f86eb2bfa0.087219773404204188 Ether
0xf5b218a54edbf8546d26b852dd10e3c8fa3b267baeeaa5c0ab4165cb1bc1d6356631461139 days 12 hrs ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0x91361858332a5df6a5291d266d984e5bfd863bf60.02922634954661684 Ether
0x1b04a4d8cb41dffcda206bbde0c5209f6a90f6908810a1ceb9872a77367d09376629690139 days 19 hrs ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0x5a256977e44053dc8dcec0816018f03f406b0fb50.002989662127099703 Ether
0xbffc1e333c704584c8a2a78ad6d8e3cef84c754cd84e2ecd739e4aed4c3b09c66624973140 days 14 hrs ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0xbff457a26b8918300b3ff72e82ab4d8a647672ad0.011285885415080511 Ether
0x54054e6453818a70f8a2ccb8807971e42cad9abecdf2dcb00df170452d1fce0e6621261141 days 4 hrs ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0x008ca4f1ba79d1a265617c6206d7884ee8108a780.001429108786581021 Ether
0x1624b20a354516f2055bb89c224123debbca0837fdd5b41c048d8a03bb313a0b6615519142 days 3 hrs ago0xa74642aeae3e2fd79150c910eb5368b64f864b1e0x7d52f4234adc50e20d190f903736e43e1cb17ad80.016501313335416761 Ether
[ Download CSV Export 
Warning: The compiled contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) Solidity Compiler Bugs.

Contract Source Code Verified (Exact Match)

Contract Name:
Mobius2D

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes

Runs (Optimizer):
200

Contract Source Code

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

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
Block Age Transaction Difficulty GasUsed Reward
Block Age Uncle Number Difficulty GasUsed Reward
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.