Latest 25 transactions from a total of 1111 transactions

TxHash Age From To Value [TxFee]
0xec9d5dec093860e44aebcd449204c67ebb48708e1a984723fbbb11dd8d2f5b5788 days 4 mins ago0xe7e3272a84cf3fe180345b9f7234ba705eb5e2ca  IN   0x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether0.000023145
0x8c7d44e605a2a85c449b1ab2b7a44877022bba4a506cbf87348b0c6df78997c0139 days 23 hrs ago0x2381c44bef3bbdaf9e4b07de1a03f358269a529e  IN   0x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether0.000030695
0x59c15d79f82a02c204b5158c53f2151438e2563c8d6821b48a2e7691a1232b23139 days 23 hrs ago0x2381c44bef3bbdaf9e4b07de1a03f358269a529e  IN   0x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether0.000030695
0x3acde9e08c1f7eeed9fac101bb3d94dcd108e43fd244023fcea7477143220bd3139 days 23 hrs ago0x2381c44bef3bbdaf9e4b07de1a03f358269a529e  IN   0x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether0.0022147
0x9181be9495c1131be3a1f5535bca075452bb7b39164e8d2e020bb5db7e5684ae139 days 23 hrs ago0x2381c44bef3bbdaf9e4b07de1a03f358269a529e  IN   0x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether0.000030695
0x366ba16224800a0e2d56d98bb3ea0e12ac9633e7e85f6ae463c4b70c2c585d7e139 days 23 hrs ago0x2381c44bef3bbdaf9e4b07de1a03f358269a529e  IN   0x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether0.0018616
0xe026396e616be9115731d0ac640ed0fb759865d0857dbc65e1ac6752a2f8d800139 days 23 hrs ago0x2381c44bef3bbdaf9e4b07de1a03f358269a529e  IN   0x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether0.000030695
0xe083bd5c569e2628bdd81d55a4263ea50e6a946ce99cac73e4d2566b5d54f213139 days 23 hrs ago0x2381c44bef3bbdaf9e4b07de1a03f358269a529e  IN   0x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether0.0026116
0xcca100a46907ee9257fc00d27cfed0c8530551c910e51c247fc96e6f0c0903a1139 days 23 hrs ago0x2381c44bef3bbdaf9e4b07de1a03f358269a529e  IN   0x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether0.000045695
0x03e9ef16c050c1293226d94df6e325b27aa9a036a6c526a73b86a661593b8082140 days 21 hrs ago0x2381c44bef3bbdaf9e4b07de1a03f358269a529e  IN   0x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether0.0026116
0x09a90b1edfcb81a57d255b85f74f2694a2913b0756b8088955311c2d3e2ae22a141 days 10 hrs ago0x2381c44bef3bbdaf9e4b07de1a03f358269a529e  IN   0x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether0.0026116
0x011c62d88b124b5e18caf0e11cf3a2a3342f7afad58f977ec0d93e312f7c8102141 days 15 hrs ago0x2381c44bef3bbdaf9e4b07de1a03f358269a529e  IN   0x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether0.0026116
0x1a014323516a8d523f591f5cdbcdc2cc91d6e514d9f392be8d75957ef5741b31141 days 21 hrs ago0x2381c44bef3bbdaf9e4b07de1a03f358269a529e  IN   0x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether0.0026116
0xcbdff8db73b426b5eda58ee2860b06b8bec79eab967751bb164184770799fb15145 days 22 hrs ago0x2381c44bef3bbdaf9e4b07de1a03f358269a529e  IN   0x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether0.0026116
0x814c0902b6326682c886a98411345320889097693b03e72ea57dab35ffe331b3145 days 22 hrs ago0x2381c44bef3bbdaf9e4b07de1a03f358269a529e  IN   0x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether0.0026116
0xa19925cd0f1cc5bd3c943d8ee6baf317d0121d2f8626f5535fc562faa189263f145 days 23 hrs ago0x2381c44bef3bbdaf9e4b07de1a03f358269a529e  IN   0x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether0.0026116
0x196812bc5b7455bb603057071b6d94165ff09b3d47911f22ea2360c9a28ec122145 days 23 hrs ago0x2381c44bef3bbdaf9e4b07de1a03f358269a529e  IN   0x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether0.0026116
0xe0cd409f6c869a69beb97bdfd2fccaf64b3ee2e86206ea84feba21533a9c22a6145 days 23 hrs ago0x2381c44bef3bbdaf9e4b07de1a03f358269a529e  IN   0x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether0.0026116
0x33ae9aa72913e064860ac956cc686d8dc8586192c386e42700cd4a6a22567543153 days 41 mins ago0x79b2644a9551c3bd15bda5e771ba80b439fcd429  IN   0x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether0.000097924
0xd089d44052a6309ac876b7c1cf9d16aefb34e42f3df4226ac4da0de6af489d82153 days 46 mins ago0x9e0c1217b173a09876c1d9afe308d52b2f1f48fe  IN   0x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether0.000097924
0x74a07a386b04475a612b8adda0822f182f2a0aade6b5678d71560ea099c7b7fb153 days 49 mins ago0x79b2644a9551c3bd15bda5e771ba80b439fcd429  IN   0x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether0.000093024
0xbe9fd6438f1fc330de3ab03a85aeab06adee47e2e49f743d7bbc7a87544f2589153 days 1 hr ago0x2381c44bef3bbdaf9e4b07de1a03f358269a529e  IN   0x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether0.0026116
0x92591d72a254c1dfee9ba5bd8f022afc12fa07e5e6fbb7ff8721bc6306c893d0153 days 1 hr ago0x2381c44bef3bbdaf9e4b07de1a03f358269a529e  IN   0x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether0.0026116
0xc4f487a7a1fb0844eaaeaaf76da21ac62c327464e093c598ae68be24e3cfc577154 days 23 hrs ago0x4a04d8a28410cf9b61d291082e9793a84c3d2d82  IN   0x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether0.000046783
0x2b7bfee26c3a3dc8ee8fc693a41ec8827e11e4b731459e1313c3913df9e19cc9154 days 23 hrs ago0x2289fde0b8b4854cf6b915a732c1f7aa48341104  IN   0x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether0.000093566
[ 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
0x1ed54ef832629dd9ef98920e7d6a2c160edfaf97073545dca9ee249566c8b8b03171110124 days 23 hrs ago0x563fb684c64ad25c7486c2effc90a6f0ccb43c6a0x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether
0xd06e24a43738286b49cc20465430c42085fadcc6b2eefee865f2f8e95bee7a773171110124 days 23 hrs ago0xaf3e8f1a47bbbbcb6e6766a1829b869df87beefc0x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether
0x6a84f21e44a28a82025719dab71e7a68a137a2a80ca9ffd23a327b955df11a8c3084770139 days 23 hrs ago0xbe92fb4dd531a90df69fe5b958c75fca11a2ec160x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether
0xe915c8b1125e0803f9cae85cf0e9366fddb36c7bfe70d5800ae651a77e2a3d8b3084761139 days 23 hrs ago0xbe92fb4dd531a90df69fe5b958c75fca11a2ec160x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether
0x4f714e4f10869b5b00de3a7332ba34428cb5790294e37ae6b48744004d2dcd153084740139 days 23 hrs ago0xbe92fb4dd531a90df69fe5b958c75fca11a2ec160x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether
0xe5c09bf154cf6ac9b9892f47c1002b0ece4420c5eb783385476c154f5edf7fdb3084717139 days 23 hrs ago0xbe92fb4dd531a90df69fe5b958c75fca11a2ec160x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether
0x7c14fed57b6d4ea965f966c03c6311e27da47c749ba15b32b1ce5110a7d364ff3084687139 days 23 hrs ago0xbe92fb4dd531a90df69fe5b958c75fca11a2ec160x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether
0x4f725e4b896462f99dcb9d3d718dc4f704f21e821b59696154dbd2b7465f881a3066305143 days 4 hrs ago0xb88ccbdfe852f5dd97fa80332f961ac569db50b90x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether
0x321688c61c04468dafedcefe6a0b6e31e4aa10c548cca352f384cfe8c08b6e793045619146 days 18 hrs ago0xb88ccbdfe852f5dd97fa80332f961ac569db50b90x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether
0xb1c203e80a3fc7c3517354cdb76b6045814165165a1885c7eb0e61e5cf69935e3039223147 days 20 hrs ago0xaf158d5b47236a00d68505bd8b11d6d501fc5e010x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether
0x3649b673bee4cca41da0987f2d54467eb75ada8fac5cd22ec25895faa2e1051d3039220147 days 20 hrs ago0xcf4e964b77f948eb254fa3273b68f48adf4b358d0x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether
0x4adf2683ab4a8cc2cf11b558d528ad708b532ed8bfbce3836c978b2acbeede163039220147 days 20 hrs ago0xb88ccbdfe852f5dd97fa80332f961ac569db50b90x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether
0xf2d8a0fe214f9e13a1c2f846e52b61e504991a1aac26861c9c229d07615c79f03021669150 days 22 hrs ago0x563fb684c64ad25c7486c2effc90a6f0ccb43c6a0x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether
0x66fc76d52ec6489bb274da7dd552344aa11438472c81dcb66696f293c8727c943021668150 days 22 hrs ago0xcf4e964b77f948eb254fa3273b68f48adf4b358d0x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether
0xeb09443fca1d6fc803c75d0cc7a57908853ae19d6c07927ef5c73e03f95e40e93021667150 days 22 hrs ago0x92a3f9924702bc31bbd423910ab2a55c2d0f9b900x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether
0xbf148b2fba4406cc69efa2d375a371b18812ae1a7b4bd0a4bfea1e22a6f87cff3021665150 days 22 hrs ago0x7adc4ffbce9aae4e261a8f74ca2cd62db14300c40x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether
0x5d35a3d25256de9e644ccd90669469a72d916704ad4358a7b889b709c08fe15b3021664150 days 22 hrs ago0x7ad1ab841f848bca988b3efc75d86222fe93afdd0x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether
0xa3121f3c840b69c00ecede2cbdc17b7f47f395ad962d7545d7719a7f5f8fadee3021350150 days 23 hrs ago0xb88ccbdfe852f5dd97fa80332f961ac569db50b90x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether
0xf189465ff6808f1568f37720dd20de760b7fb0fccc5f7ef1456ffedaa6a326523014437152 days 4 hrs ago0xbc90daf5d401265a332940a393a6b3b80a563ad50x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether
0x3fec20cf825c9dbfd6c0776d3819167d37feb9d06d11286b115027f0f4f851213014437152 days 4 hrs ago0x6ae691fdd73b6755be46f591adccffaf00056fbd0x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether
0xc7af862666ecc4e6fe68c02ba72f5d215c3c440cb4ecbc675ba015afcde471a53014436152 days 4 hrs ago0xcf4e964b77f948eb254fa3273b68f48adf4b358d0x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether
0xd66bc3d096b6403edebe8222ae268c16361f58b2cc8f8a4190b9721cae34f2163014434152 days 4 hrs ago0x92a3f9924702bc31bbd423910ab2a55c2d0f9b900x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether
0x165604fb6bd8149fadf2ecabc50e0c5a95624ba8ac2dde63960766b2f4a3b4e53014433152 days 4 hrs ago0xaf3e8f1a47bbbbcb6e6766a1829b869df87beefc0x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether
0x65d3160777118b26cff918f75de2b8ab3a54ccb1b0d5e9ef96c20df38395810f3014431152 days 4 hrs ago0xaf158d5b47236a00d68505bd8b11d6d501fc5e010x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 Ether
0x88cfb029768aeb033d135ac0e29c27b9fb377ced04f16d83e4a2f7a35c8af4103014429152 days 4 hrs ago0x7ad1ab841f848bca988b3efc75d86222fe93afdd0x645f854cd7dedc5ecd51f4ae02fcf871b982a2b60 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: OlympiaToken
Compiler Version: v0.4.23+commit.124ca40d
Optimization Enabled: No
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.21;

// File: @gnosis.pm/util-contracts/contracts/Token.sol

/// Implements ERC 20 Token standard: https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md
pragma solidity ^0.4.21;


/// @title Abstract token contract - Functions to be implemented by token contracts
contract Token {

    /*
     *  Events
     */
    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);

    /*
     *  Public functions
     */
    function transfer(address to, uint value) public returns (bool);
    function transferFrom(address from, address to, uint value) public returns (bool);
    function approve(address spender, uint value) public returns (bool);
    function balanceOf(address owner) public view returns (uint);
    function allowance(address owner, address spender) public view returns (uint);
    function totalSupply() public view returns (uint);
}

// File: @gnosis.pm/util-contracts/contracts/Math.sol

/// @title Math library - Allows calculation of logarithmic and exponential functions
/// @author Alan Lu - <[email protected]m>
/// @author Stefan George - <[email protected]>
library Math {

    /*
     *  Constants
     */
    // This is equal to 1 in our calculations
    uint public constant ONE =  0x10000000000000000;
    uint public constant LN2 = 0xb17217f7d1cf79ac;
    uint public constant LOG2_E = 0x171547652b82fe177;

    /*
     *  Public functions
     */
    /// @dev Returns natural exponential function value of given x
    /// @param x x
    /// @return e**x
    function exp(int x)
        public
        pure
        returns (uint)
    {
        // revert if x is > MAX_POWER, where
        // MAX_POWER = int(mp.floor(mp.log(mpf(2**256 - 1) / ONE) * ONE))
        require(x <= 2454971259878909886679);
        // return 0 if exp(x) is tiny, using
        // MIN_POWER = int(mp.floor(mp.log(mpf(1) / ONE) * ONE))
        if (x < -818323753292969962227)
            return 0;
        // Transform so that e^x -> 2^x
        x = x * int(ONE) / int(LN2);
        // 2^x = 2^whole(x) * 2^frac(x)
        //       ^^^^^^^^^^ is a bit shift
        // so Taylor expand on z = frac(x)
        int shift;
        uint z;
        if (x >= 0) {
            shift = x / int(ONE);
            z = uint(x % int(ONE));
        }
        else {
            shift = x / int(ONE) - 1;
            z = ONE - uint(-x % int(ONE));
        }
        // 2^x = 1 + (ln 2) x + (ln 2)^2/2! x^2 + ...
        //
        // Can generate the z coefficients using mpmath and the following lines
        // >>> from mpmath import mp
        // >>> mp.dps = 100
        // >>> ONE =  0x10000000000000000
        // >>> print('\n'.join(hex(int(mp.log(2)**i / mp.factorial(i) * ONE)) for i in range(1, 7)))
        // 0xb17217f7d1cf79ab
        // 0x3d7f7bff058b1d50
        // 0xe35846b82505fc5
        // 0x276556df749cee5
        // 0x5761ff9e299cc4
        // 0xa184897c363c3
        uint zpow = z;
        uint result = ONE;
        result += 0xb17217f7d1cf79ab * zpow / ONE;
        zpow = zpow * z / ONE;
        result += 0x3d7f7bff058b1d50 * zpow / ONE;
        zpow = zpow * z / ONE;
        result += 0xe35846b82505fc5 * zpow / ONE;
        zpow = zpow * z / ONE;
        result += 0x276556df749cee5 * zpow / ONE;
        zpow = zpow * z / ONE;
        result += 0x5761ff9e299cc4 * zpow / ONE;
        zpow = zpow * z / ONE;
        result += 0xa184897c363c3 * zpow / ONE;
        zpow = zpow * z / ONE;
        result += 0xffe5fe2c4586 * zpow / ONE;
        zpow = zpow * z / ONE;
        result += 0x162c0223a5c8 * zpow / ONE;
        zpow = zpow * z / ONE;
        result += 0x1b5253d395e * zpow / ONE;
        zpow = zpow * z / ONE;
        result += 0x1e4cf5158b * zpow / ONE;
        zpow = zpow * z / ONE;
        result += 0x1e8cac735 * zpow / ONE;
        zpow = zpow * z / ONE;
        result += 0x1c3bd650 * zpow / ONE;
        zpow = zpow * z / ONE;
        result += 0x1816193 * zpow / ONE;
        zpow = zpow * z / ONE;
        result += 0x131496 * zpow / ONE;
        zpow = zpow * z / ONE;
        result += 0xe1b7 * zpow / ONE;
        zpow = zpow * z / ONE;
        result += 0x9c7 * zpow / ONE;
        if (shift >= 0) {
            if (result >> (256-shift) > 0)
                return (2**256-1);
            return result << shift;
        }
        else
            return result >> (-shift);
    }

    /// @dev Returns natural logarithm value of given x
    /// @param x x
    /// @return ln(x)
    function ln(uint x)
        public
        pure
        returns (int)
    {
        require(x > 0);
        // binary search for floor(log2(x))
        int ilog2 = floorLog2(x);
        int z;
        if (ilog2 < 0)
            z = int(x << uint(-ilog2));
        else
            z = int(x >> uint(ilog2));
        // z = x * 2^-⌊log₂x⌋
        // so 1 <= z < 2
        // and ln z = ln x - ⌊log₂x⌋/log₂e
        // so just compute ln z using artanh series
        // and calculate ln x from that
        int term = (z - int(ONE)) * int(ONE) / (z + int(ONE));
        int halflnz = term;
        int termpow = term * term / int(ONE) * term / int(ONE);
        halflnz += termpow / 3;
        termpow = termpow * term / int(ONE) * term / int(ONE);
        halflnz += termpow / 5;
        termpow = termpow * term / int(ONE) * term / int(ONE);
        halflnz += termpow / 7;
        termpow = termpow * term / int(ONE) * term / int(ONE);
        halflnz += termpow / 9;
        termpow = termpow * term / int(ONE) * term / int(ONE);
        halflnz += termpow / 11;
        termpow = termpow * term / int(ONE) * term / int(ONE);
        halflnz += termpow / 13;
        termpow = termpow * term / int(ONE) * term / int(ONE);
        halflnz += termpow / 15;
        termpow = termpow * term / int(ONE) * term / int(ONE);
        halflnz += termpow / 17;
        termpow = termpow * term / int(ONE) * term / int(ONE);
        halflnz += termpow / 19;
        termpow = termpow * term / int(ONE) * term / int(ONE);
        halflnz += termpow / 21;
        termpow = termpow * term / int(ONE) * term / int(ONE);
        halflnz += termpow / 23;
        termpow = termpow * term / int(ONE) * term / int(ONE);
        halflnz += termpow / 25;
        return (ilog2 * int(ONE)) * int(ONE) / int(LOG2_E) + 2 * halflnz;
    }

    /// @dev Returns base 2 logarithm value of given x
    /// @param x x
    /// @return logarithmic value
    function floorLog2(uint x)
        public
        pure
        returns (int lo)
    {
        lo = -64;
        int hi = 193;
        // I use a shift here instead of / 2 because it floors instead of rounding towards 0
        int mid = (hi + lo) >> 1;
        while((lo + 1) < hi) {
            if (mid < 0 && x << uint(-mid) < ONE || mid >= 0 && x >> uint(mid) < ONE)
                hi = mid;
            else
                lo = mid;
            mid = (hi + lo) >> 1;
        }
    }

    /// @dev Returns maximum of an array
    /// @param nums Numbers to look through
    /// @return Maximum number
    function max(int[] nums)
        public
        pure
        returns (int maxNum)
    {
        require(nums.length > 0);
        maxNum = -2**255;
        for (uint i = 0; i < nums.length; i++)
            if (nums[i] > maxNum)
                maxNum = nums[i];
    }

    /// @dev Returns whether an add operation causes an overflow
    /// @param a First addend
    /// @param b Second addend
    /// @return Did no overflow occur?
    function safeToAdd(uint a, uint b)
        internal
        pure
        returns (bool)
    {
        return a + b >= a;
    }

    /// @dev Returns whether a subtraction operation causes an underflow
    /// @param a Minuend
    /// @param b Subtrahend
    /// @return Did no underflow occur?
    function safeToSub(uint a, uint b)
        internal
        pure
        returns (bool)
    {
        return a >= b;
    }

    /// @dev Returns whether a multiply operation causes an overflow
    /// @param a First factor
    /// @param b Second factor
    /// @return Did no overflow occur?
    function safeToMul(uint a, uint b)
        internal
        pure
        returns (bool)
    {
        return b == 0 || a * b / b == a;
    }

    /// @dev Returns sum if no overflow occurred
    /// @param a First addend
    /// @param b Second addend
    /// @return Sum
    function add(uint a, uint b)
        internal
        pure
        returns (uint)
    {
        require(safeToAdd(a, b));
        return a + b;
    }

    /// @dev Returns difference if no overflow occurred
    /// @param a Minuend
    /// @param b Subtrahend
    /// @return Difference
    function sub(uint a, uint b)
        internal
        pure
        returns (uint)
    {
        require(safeToSub(a, b));
        return a - b;
    }

    /// @dev Returns product if no overflow occurred
    /// @param a First factor
    /// @param b Second factor
    /// @return Product
    function mul(uint a, uint b)
        internal
        pure
        returns (uint)
    {
        require(safeToMul(a, b));
        return a * b;
    }

    /// @dev Returns whether an add operation causes an overflow
    /// @param a First addend
    /// @param b Second addend
    /// @return Did no overflow occur?
    function safeToAdd(int a, int b)
        internal
        pure
        returns (bool)
    {
        return (b >= 0 && a + b >= a) || (b < 0 && a + b < a);
    }

    /// @dev Returns whether a subtraction operation causes an underflow
    /// @param a Minuend
    /// @param b Subtrahend
    /// @return Did no underflow occur?
    function safeToSub(int a, int b)
        internal
        pure
        returns (bool)
    {
        return (b >= 0 && a - b <= a) || (b < 0 && a - b > a);
    }

    /// @dev Returns whether a multiply operation causes an overflow
    /// @param a First factor
    /// @param b Second factor
    /// @return Did no overflow occur?
    function safeToMul(int a, int b)
        internal
        pure
        returns (bool)
    {
        return (b == 0) || (a * b / b == a);
    }

    /// @dev Returns sum if no overflow occurred
    /// @param a First addend
    /// @param b Second addend
    /// @return Sum
    function add(int a, int b)
        internal
        pure
        returns (int)
    {
        require(safeToAdd(a, b));
        return a + b;
    }

    /// @dev Returns difference if no overflow occurred
    /// @param a Minuend
    /// @param b Subtrahend
    /// @return Difference
    function sub(int a, int b)
        internal
        pure
        returns (int)
    {
        require(safeToSub(a, b));
        return a - b;
    }

    /// @dev Returns product if no overflow occurred
    /// @param a First factor
    /// @param b Second factor
    /// @return Product
    function mul(int a, int b)
        internal
        pure
        returns (int)
    {
        require(safeToMul(a, b));
        return a * b;
    }
}

// File: @gnosis.pm/util-contracts/contracts/Proxy.sol

/// @title Proxied - indicates that a contract will be proxied. Also defines storage requirements for Proxy.
/// @author Alan Lu - <[email protected]>
contract Proxied {
    address public masterCopy;
}

/// @title Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract.
/// @author Stefan George - <[email protected]>
contract Proxy is Proxied {
    /// @dev Constructor function sets address of master copy contract.
    /// @param _masterCopy Master copy address.
    function Proxy(address _masterCopy)
        public
    {
        require(_masterCopy != 0);
        masterCopy = _masterCopy;
    }

    /// @dev Fallback function forwards all transactions and returns all received return data.
    function ()
        external
        payable
    {
        address _masterCopy = masterCopy;
        assembly {
            calldatacopy(0, 0, calldatasize())
            let success := delegatecall(not(0), _masterCopy, 0, calldatasize(), 0, 0)
            returndatacopy(0, 0, returndatasize())
            switch success
            case 0 { revert(0, returndatasize()) }
            default { return(0, returndatasize()) }
        }
    }
}

// File: @gnosis.pm/util-contracts/contracts/StandardToken.sol

contract StandardTokenData {

    /*
     *  Storage
     */
    mapping (address => uint) balances;
    mapping (address => mapping (address => uint)) allowances;
    uint totalTokens;
}

/// @title Standard token contract with overflow protection
contract StandardToken is Token, StandardTokenData {
    using Math for *;

    /*
     *  Public functions
     */
    /// @dev Transfers sender's tokens to a given address. Returns success
    /// @param to Address of token receiver
    /// @param value Number of tokens to transfer
    /// @return Was transfer successful?
    function transfer(address to, uint value)
        public
        returns (bool)
    {
        if (   !balances[msg.sender].safeToSub(value)
            || !balances[to].safeToAdd(value))
            return false;
        balances[msg.sender] -= value;
        balances[to] += value;
        emit Transfer(msg.sender, to, value);
        return true;
    }

    /// @dev Allows allowed third party to transfer tokens from one address to another. Returns success
    /// @param from Address from where tokens are withdrawn
    /// @param to Address to where tokens are sent
    /// @param value Number of tokens to transfer
    /// @return Was transfer successful?
    function transferFrom(address from, address to, uint value)
        public
        returns (bool)
    {
        if (   !balances[from].safeToSub(value)
            || !allowances[from][msg.sender].safeToSub(value)
            || !balances[to].safeToAdd(value))
            return false;
        balances[from] -= value;
        allowances[from][msg.sender] -= value;
        balances[to] += value;
        emit Transfer(from, to, value);
        return true;
    }

    /// @dev Sets approved amount of tokens for spender. Returns success
    /// @param spender Address of allowed account
    /// @param value Number of approved tokens
    /// @return Was approval successful?
    function approve(address spender, uint value)
        public
        returns (bool)
    {
        allowances[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);
        return true;
    }

    /// @dev Returns number of allowed tokens for given address
    /// @param owner Address of token owner
    /// @param spender Address of token spender
    /// @return Remaining allowance for spender
    function allowance(address owner, address spender)
        public
        view
        returns (uint)
    {
        return allowances[owner][spender];
    }

    /// @dev Returns number of tokens owned by given address
    /// @param owner Address of token owner
    /// @return Balance of owner
    function balanceOf(address owner)
        public
        view
        returns (uint)
    {
        return balances[owner];
    }

    /// @dev Returns total supply of tokens
    /// @return Total supply
    function totalSupply()
        public
        view
        returns (uint)
    {
        return totalTokens;
    }
}

// File: contracts/PlayToken.sol

contract PlayToken is StandardToken {
    /*
     *  Events
     */
    event Issuance(address indexed owner, uint amount);

    /*
     *  Constants
     */
    bool public constant isPlayToken = true;

    /*
     *  Storage
     */
    address public creator;
    mapping (address => bool) public whitelist;
    mapping (address => bool) public admins;

    /*
     *  Modifiers
     */
    modifier isCreator { 
        require(msg.sender == creator);
        _;
    }
    modifier isAdmin { 
        require(msg.sender == creator || admins[msg.sender] == true);
        _;
    }

    /*
     *  Public functions
     */
    /// @dev Constructor sets events contract address
    function PlayToken()
        public
    {
        creator = msg.sender;
    }

    /// @dev Allows creator to issue tokens. Will reject if msg.sender isn't the creator.
    /// @param recipients Addresses of recipients
    /// @param amount Number of tokens to issue each recipient
    function issue(address[] recipients, uint amount)
        public
        isCreator
    {
        for(uint i = 0; i < recipients.length; i++) {
            address recipient = recipients[i];
            balances[recipient] = balances[recipient].add(amount);
            emit Issuance(recipient, amount);
        }
        totalTokens = totalTokens.add(amount.mul(recipients.length));
    }

    /// @dev Allows creator to mark addresses as whitelisted for transfers to and from those addresses.
    /// @param allowed Addresses to be added to the whitelist
    function allowTransfers(address[] allowed)
        public
        isAdmin
    {
        for(uint i = 0; i < allowed.length; i++) {
            whitelist[allowed[i]] = true;
        }
    }

    /// @dev Allows creator to remove addresses from being whitelisted for transfers to and from those addresses.
    /// @param disallowed Addresses to be removed from the whitelist
    function disallowTransfers(address[] disallowed)
        public
        isAdmin
    {
        for(uint i = 0; i < disallowed.length; i++) {
            whitelist[disallowed[i]] = false;
        }
    }

    /// @dev Allows creator to add admins that can whitelist addresses.
    /// @param _admins Addresses to be added as admin role
    function addAdmin(address[] _admins)
        public
        isCreator
    {
        for(uint i = 0; i < _admins.length; i++) {
            admins[_admins[i]] = true;
        }
    }

    /// @dev Allows creator to remove addresses from admin role.
    /// @param _admins Addresses to be removed from the admin mapping
    function removeAdmin(address[] _admins)
        public
        isCreator
    {
        for(uint i = 0; i < _admins.length; i++) {
            admins[_admins[i]] = false;
        }
    }

    function transfer(address to, uint value) public returns (bool) {
        require(whitelist[msg.sender] || whitelist[to]);
        return super.transfer(to, value);
    }

    function transferFrom(address from, address to, uint value) public returns (bool) {
        require(whitelist[from] || whitelist[to]);
        return super.transferFrom(from, to, value);
    }
}

// File: contracts/OlympiaToken.sol

contract OlympiaToken is PlayToken {
    /*
     *  Constants
     */
    string public constant name = "Olympia Token";
    string public constant symbol = "OLY";
    uint8 public constant decimals = 18;
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"creator","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"allowed","type":"address[]"}],"name":"allowTransfers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_admins","type":"address[]"}],"name":"addAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"recipients","type":"address[]"},{"name":"amount","type":"uint256"}],"name":"issue","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"admins","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isPlayToken","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_admins","type":"address[]"}],"name":"removeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"disallowed","type":"address[]"}],"name":"disallowTransfers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Issuance","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}]

  Contract Creation Code Switch To Opcodes View
608060405233600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611776806100546000396000f3006080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806302d05d3f1461010157806306fdde0314610158578063095ea7b3146101e8578063136ef18a1461024d57806318160ddd146102b357806323b872dd146102de578063313ce567146103635780633d0950a81461039457806342958b54146103fa578063429b62e51461046a5780636105c94b146104c557806370a08231146104f457806395d89b411461054b5780639b19251a146105db578063a9059cbb14610636578063ae876f611461069b578063bbc8e3cb14610701578063dd62ed3e14610767575b600080fd5b34801561010d57600080fd5b506101166107de565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016457600080fd5b5061016d610804565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101ad578082015181840152602081019050610192565b50505050905090810190601f1680156101da5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101f457600080fd5b50610233600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061083d565b604051808215151515815260200191505060405180910390f35b34801561025957600080fd5b506102b16004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061092f565b005b3480156102bf57600080fd5b506102c8610a76565b6040518082815260200191505060405180910390f35b3480156102ea57600080fd5b50610349600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a80565b604051808215151515815260200191505060405180910390f35b34801561036f57600080fd5b50610378610b42565b604051808260ff1660ff16815260200191505060405180910390f35b3480156103a057600080fd5b506103f860048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610b47565b005b34801561040657600080fd5b506104686004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050610c33565b005b34801561047657600080fd5b506104ab600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ddc565b604051808215151515815260200191505060405180910390f35b3480156104d157600080fd5b506104da610dfc565b604051808215151515815260200191505060405180910390f35b34801561050057600080fd5b50610535600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e01565b6040518082815260200191505060405180910390f35b34801561055757600080fd5b50610560610e49565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105a0578082015181840152602081019050610585565b50505050905090810190601f1680156105cd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105e757600080fd5b5061061c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e82565b604051808215151515815260200191505060405180910390f35b34801561064257600080fd5b50610681600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ea2565b604051808215151515815260200191505060405180910390f35b3480156106a757600080fd5b506106ff60048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610f62565b005b34801561070d57600080fd5b506107656004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061104e565b005b34801561077357600080fd5b506107c8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611195565b6040518082815260200191505060405180910390f35b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600d81526020017f4f6c796d70696120546f6b656e0000000000000000000000000000000000000081525081565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806109dd575060011515600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15156109e857600080fd5b600090505b8151811015610a72576001600460008484815181101515610a0a57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506109ed565b5050565b6000600254905090565b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610b235750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1515610b2e57600080fd5b610b3984848461121c565b90509392505050565b601281565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ba557600080fd5b600090505b8151811015610c2f576001600560008484815181101515610bc757fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050610baa565b5050565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c9257600080fd5b600091505b8351821015610da8578382815181101515610cae57fe5b906020019060200201519050610d0b836000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461150190919063ffffffff16565b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff167f9cb9c14f7bc76e3a89b796b091850526236115352a198b1e472f00e91376bbcb846040518082815260200191505060405180910390a28180600101925050610c97565b610dd0610dbf85518561152390919063ffffffff16565b60025461150190919063ffffffff16565b60028190555050505050565b60056020528060005260406000206000915054906101000a900460ff1681565b600181565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6040805190810160405280600381526020017f4f4c59000000000000000000000000000000000000000000000000000000000081525081565b60046020528060005260406000206000915054906101000a900460ff1681565b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610f455750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1515610f5057600080fd5b610f5a8383611545565b905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fc057600080fd5b600090505b815181101561104a576000600560008484815181101515610fe257fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050610fc5565b5050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806110fc575060011515600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b151561110757600080fd5b600090505b815181101561119157600060046000848481518110151561112957fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808060010191505061110c565b5050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061126f826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461170890919063ffffffff16565b1580611307575061130582600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461170890919063ffffffff16565b155b80611360575061135e826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461171690919063ffffffff16565b155b1561136e57600090506114fa565b816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190505b9392505050565b600061150d8383611716565b151561151857600080fd5b818301905092915050565b600061152f8383611726565b151561153a57600080fd5b818302905092915050565b6000611598826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461170890919063ffffffff16565b15806115f257506115f0826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461171690919063ffffffff16565b155b156116005760009050611702565b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190505b92915050565b600081831015905092915050565b6000828284011015905092915050565b6000808214806117425750828283850281151561173f57fe5b04145b9050929150505600a165627a7a72305820d352c404c3769f42dcc4747106abce0333302f20307690555a74336d0bf79e1b0029

   Swarm Source:
bzzr://d352c404c3769f42dcc4747106abce0333302f20307690555a74336d0bf79e1b

 

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