Contract 0xc011a72400e58ecd99ee497cf89e3775d4bd732f

 

TxHash Block Age From To Value [TxFee]
0xa4eec6b999a9f6bc7f013560572a576a05a96fe6fa0806ed6c4bd32bcf5f25fe(pending)10 hrs 15 mins ago0x12882b9dae735f2ad669effbd73ecf4f6947d8ff IN 0xc011a72400e58ecd99ee497cf89e3775d4bd732f0 Ether(Pending)
0xe101a95fa08d142edbaa82e988d97ab2859ba3649eee7e5532e237ab96b8b650(pending)3 days 7 hrs ago0x12882b9dae735f2ad669effbd73ecf4f6947d8ff IN 0xc011a72400e58ecd99ee497cf89e3775d4bd732f0 Ether(Pending)
0x05a79702084cd6f04d5acf1136bae869bc41d22939a9dc46e60b6030b2c2e27f741845055 mins ago0x691fc6581461a5a3f8864187c7c87b6bfab7041e IN  Synthetix Network Token0 Ether0.0036829106
0xaa08ee376172d3403810f9020df63d85242de43d0ea36e198e7a8a2a10e2a7f5741844956 mins ago0xac1d7f8655451cd8efaf7a72673a0c64d7ae4931 IN  Synthetix Network Token0 Ether0.0012506912
0x32a915376a62019b3221e5a0ce43070ac6d543ccae173bd96b51b17204fff7ec74183891 hr 8 mins ago0x7b3b460e6fc14eb03f9f747427f06f14cc91cc0a IN  Synthetix Network Token0 Ether0.00842092
0x8393e8bd2ed2feb937634c5d0e9e69d1c728ac8054238c77cf9dbaa48f78dae874183501 hr 17 mins ago0x7b3b460e6fc14eb03f9f747427f06f14cc91cc0a IN  Synthetix Network Token0 Ether0.001083151
0x2ca25fa3c2221f4dd1cf2e0a571a01eb48e2a982446fed4e146aaff49aad4b8e74182791 hr 34 mins ago0x0717fb4263ea8390472c8a152b9df9bb91311cea IN  Synthetix Network Token0 Ether0.000344777238
0x3b9b18202c9abbd12d92ff661e27258e0f10afddf1ea0bb65f13bf13993e25ba74181871 hr 58 mins agoKuCoin 1 IN  Synthetix Network Token0 Ether0.0015146912
0xa0cb93a4292a39de0eb51b41ddde249608ade2fd605f7a1308a8404107f03d3c74179802 hrs 49 mins ago0xe1360f2896e5f144387ae361a51d0661b024fc49 IN  Synthetix Network Token0 Ether0.004374162
0x6c77d0eea9db9fb86e287cde3575c62b17b0d6ab91f146c75b6b1f618fa8670f74179093 hrs 6 mins agoKuCoin 1 IN  Synthetix Network Token0 Ether0.0015158176
0x16782ca1cea48fbdf53e5c2abd99d5d1dfb4f6ef892b9a92d5acb89e7716f96674177543 hrs 41 mins ago0xfd2cbb46a89357d97227c928a9a597a6c730917d IN  Synthetix Network Token0 Ether0.000258378
0x49c71bb0307aade610d6ae0dd30be1e7ba41af17a32086274051e1fe7831e62274177183 hrs 50 mins agoKuCoin 1 IN  Synthetix Network Token0 Ether0.00140213128
0x2c5aeb3cc9dca8345a532e6e813691d122a52bb604ad7d1690872a60cd7aa88974177173 hrs 50 mins ago0x885f3a936698b2dd7909caa673bbadf7dfc26fe2 IN  Synthetix Network Token0 Ether0.003249927
0x0ab8f2072aa90c84f7f9f1a222aa3f165a1b93adefb9b5f80540d7bd71236aa574176833 hrs 59 mins ago0xf84bfa23c2ab766c47056011b26e2d12ade5c754 IN  Synthetix Network Token0 Ether0.000185565
0x8fccd1d9a36c347343861d60e0c11734d65d56be7e4f3152d66d415277f617d774175904 hrs 19 mins ago0x27f364a96cc92793263ee07214b38e68acad220f IN  Synthetix Network Token0 Ether0.002916144
0x5518a8ca6f920acfc4160583d9f2a72b9a4d340b540a47e9937a116bcf36a9b874174104 hrs 57 mins ago0xa7fde321289a23e310c8804d41ef3128fa07fc23 IN  Synthetix Network Token0 Ether0.001083197
0x6aa669aad142430d0139a0863fffd875a1bbc3c38500cbc1451f7d58e25fc41674173645 hrs 7 mins ago0x4af764f04db300a4bbf26d51188e942aad74a5d4 IN  Synthetix Network Token0 Ether0.002166514
0xad5a8a0adbc2771ede77ce06d39d727f89ea85a7fee1ab3aeef3d0d7e22f267474173255 hrs 15 mins agoLiquid IN  Synthetix Network Token0 Ether0.000172124
0x1438eb64a95f67fefda81121fefeeb373a76e082234595db1a6d1ce378064dcd74173065 hrs 18 mins agoKuCoin 1 IN  Synthetix Network Token0 Ether0.001538088
0x7a04fba8ad7b52472ae876c1ba754cdf304a3433d30478fb6508150101b6be1974172985 hrs 20 mins agoKuCoin 1 IN  Synthetix Network Token0 Ether0.0013091152
0x9c4ba529203b286bd0c49209dd2c57214dd245aab69f4f7091caca661f331f7074172015 hrs 39 mins ago0x0717fb4263ea8390472c8a152b9df9bb91311cea IN  Synthetix Network Token0 Ether0.000344777238
0x20b544af41a15177f1a6a1d738bf63ed6c455e5ad1a69ecc0e2a68326e886dc774171036 hrs agoKuCoin 1 IN  Synthetix Network Token0 Ether0.001205764
0x50624512575f3c7a6c25f242513ef6f7cc850a69b4abd777a26e7a9e1dc6428774170686 hrs 9 mins ago0xca53076b6978fbcffd71913f496c9c7b3eb210b0 IN  Synthetix Network Token0 Ether0.003553866
0x1a0d410583e066bb503dd12877a99f21e6f6c29a0ff45c0f10b789177583afbc74170496 hrs 14 mins ago0xca53076b6978fbcffd71913f496c9c7b3eb210b0 IN  Synthetix Network Token0 Ether0.00197998
0xd031b1016857f2cdf4a01b1f3d36eaad871899c2da493540a80555b7236c24fe74170476 hrs 15 mins ago0xca53076b6978fbcffd71913f496c9c7b3eb210b0 IN  Synthetix Network Token0 Ether0.00197998
[ Download CSV Export 

Latest 4 internal transactions Internal Transactions as a result of Contract Execution

Parent TxHash Block Age From To Value
0x177b3ef40aa82e60bc52559306d3eaecaae320e1a8e8c80ddbb6d53a89ade88a731169716 days 15 hrs ago0xc011a72400e58ecd99ee497cf89e3775d4bd732f0x3772f9716cf6d7a09ede3587738aa2af5577483a1.79 Ether
0xfcd1548c17faec5ff2495e546950fa5efa0797e23a8c9d5713444b0629a65d355869402266 days 23 hrs ago0xc011a72400e58ecd99ee497cf89e3775d4bd732f0x01da95f253122636d0776017311892835a15d9dd0.02 Ether
0x9342732b9ad8d00427401197cf8f49ce70a189ce98ac53c51da9a4592e02fe775865710267 days 14 hrs ago0xc011a72400e58ecd99ee497cf89e3775d4bd732f0x01da95f253122636d0776017311892835a15d9dd0.02 Ether
0x8ea3c34fa150023582255a726b7d7ab3d5b66678da090c8d1350c0d0914e24485769526284 days 3 hrs ago0xc011a72400e58ecd99ee497cf89e3775d4bd732f0x01da95f253122636d0776017311892835a15d9dd0.001 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:
Proxy

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes

Runs (Optimizer):
200

Contract Source Code

/* 
 * Havven Token Contract Proxy
 * ========================
 * 
 * This contract points to an underlying target which implements its
 * actual functionality, while allowing that functionality to be upgraded.
 */

pragma solidity 0.4.24;

/**
 * @title A contract with an owner.
 * @notice Contract ownership can be transferred by first nominating the new owner,
 * who must then accept the ownership, which prevents accidental incorrect ownership transfers.
 */
contract Owned {
    address public owner;
    address public nominatedOwner;

    /**
     * @dev Owned Constructor
     */
    constructor(address _owner)
        public
    {
        require(_owner != address(0));
        owner = _owner;
        emit OwnerChanged(address(0), _owner);
    }

    /**
     * @notice Nominate a new owner of this contract.
     * @dev Only the current owner may nominate a new owner.
     */
    function nominateNewOwner(address _owner)
        external
        onlyOwner
    {
        nominatedOwner = _owner;
        emit OwnerNominated(_owner);
    }

    /**
     * @notice Accept the nomination to be owner.
     */
    function acceptOwnership()
        external
    {
        require(msg.sender == nominatedOwner);
        emit OwnerChanged(owner, nominatedOwner);
        owner = nominatedOwner;
        nominatedOwner = address(0);
    }

    modifier onlyOwner
    {
        require(msg.sender == owner);
        _;
    }

    event OwnerNominated(address newOwner);
    event OwnerChanged(address oldOwner, address newOwner);
}

// This contract should be treated like an abstract contract
contract Proxyable is Owned {
    /* The proxy this contract exists behind. */
    Proxy public proxy;

    /* The caller of the proxy, passed through to this contract.
     * Note that every function using this member must apply the onlyProxy or
     * optionalProxy modifiers, otherwise their invocations can use stale values. */ 
    address messageSender; 

    constructor(address _proxy, address _owner)
        Owned(_owner)
        public
    {
        proxy = Proxy(_proxy);
        emit ProxyUpdated(_proxy);
    }

    function setProxy(address _proxy)
        external
        onlyOwner
    {
        proxy = Proxy(_proxy);
        emit ProxyUpdated(_proxy);
    }

    function setMessageSender(address sender)
        external
        onlyProxy
    {
        messageSender = sender;
    }

    modifier onlyProxy {
        require(Proxy(msg.sender) == proxy);
        _;
    }

    modifier optionalProxy
    {
        if (Proxy(msg.sender) != proxy) {
            messageSender = msg.sender;
        }
        _;
    }

    modifier optionalProxy_onlyOwner
    {
        if (Proxy(msg.sender) != proxy) {
            messageSender = msg.sender;
        }
        require(messageSender == owner);
        _;
    }

    event ProxyUpdated(address proxyAddress);
}

contract Proxy is Owned {

    Proxyable public target;
    bool public useDELEGATECALL;

    constructor(address _owner)
        Owned(_owner)
        public
    {}

    function setTarget(Proxyable _target)
        external
        onlyOwner
    {
        target = _target;
        emit TargetUpdated(_target);
    }

    function setUseDELEGATECALL(bool value) 
        external
        onlyOwner
    {
        useDELEGATECALL = value;
    }

    function _emit(bytes callData, uint numTopics,
                   bytes32 topic1, bytes32 topic2,
                   bytes32 topic3, bytes32 topic4)
        external
        onlyTarget
    {
        uint size = callData.length;
        bytes memory _callData = callData;

        assembly {
            /* The first 32 bytes of callData contain its length (as specified by the abi). 
             * Length is assumed to be a uint256 and therefore maximum of 32 bytes
             * in length. It is also leftpadded to be a multiple of 32 bytes.
             * This means moving call_data across 32 bytes guarantees we correctly access
             * the data itself. */
            switch numTopics
            case 0 {
                log0(add(_callData, 32), size)
            } 
            case 1 {
                log1(add(_callData, 32), size, topic1)
            }
            case 2 {
                log2(add(_callData, 32), size, topic1, topic2)
            }
            case 3 {
                log3(add(_callData, 32), size, topic1, topic2, topic3)
            }
            case 4 {
                log4(add(_callData, 32), size, topic1, topic2, topic3, topic4)
            }
        }
    }

    function()
        external
        payable
    {
        if (useDELEGATECALL) {
            assembly {
                /* Copy call data into free memory region. */
                let free_ptr := mload(0x40)
                calldatacopy(free_ptr, 0, calldatasize)

                /* Forward all gas and call data to the target contract. */
                let result := delegatecall(gas, sload(target_slot), free_ptr, calldatasize, 0, 0)
                returndatacopy(free_ptr, 0, returndatasize)

                /* Revert if the call failed, otherwise return the result. */
                if iszero(result) { revert(free_ptr, returndatasize) }
                return(free_ptr, returndatasize)
            }
        } else {
            /* Here we are as above, but must send the messageSender explicitly 
             * since we are using CALL rather than DELEGATECALL. */
            target.setMessageSender(msg.sender);
            assembly {
                let free_ptr := mload(0x40)
                calldatacopy(free_ptr, 0, calldatasize)

                /* We must explicitly forward ether to the underlying contract as well. */
                let result := call(gas, sload(target_slot), callvalue, free_ptr, calldatasize, 0, 0)
                returndatacopy(free_ptr, 0, returndatasize)

                if iszero(result) { revert(free_ptr, returndatasize) }
                return(free_ptr, returndatasize)
            }
        }
    }

    modifier onlyTarget {
        require(Proxyable(msg.sender) == target);
        _;
    }

    event TargetUpdated(Proxyable newTarget);
}

Contract ABI

[{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"nominateNewOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"nominatedOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_target","type":"address"}],"name":"setTarget","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"callData","type":"bytes"},{"name":"numTopics","type":"uint256"},{"name":"topic1","type":"bytes32"},{"name":"topic2","type":"bytes32"},{"name":"topic3","type":"bytes32"},{"name":"topic4","type":"bytes32"}],"name":"_emit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"useDELEGATECALL","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"bool"}],"name":"setUseDELEGATECALL","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"target","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_owner","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newTarget","type":"address"}],"name":"TargetUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerNominated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldOwner","type":"address"},{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"}]

Contract Creation Code

608060405234801561001057600080fd5b5060405160208061066b833981016040525180600160a060020a038116151561003857600080fd5b60008054600160a060020a031916600160a060020a038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150506105ca806100a16000396000f3006080604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631627540c811461018357806353a47bb7146101a4578063776d1a01146101d557806379ba5097146101f65780638da5cb5b1461020b578063907dff971461022057806395578ebd14610250578063befff6af14610279578063d4b8399214610293575b60025474010000000000000000000000000000000000000000900460ff16156100e157604051366000823760008036836002545af43d6000833e8015156100dd573d82fd5b3d82f35b600254604080517fbc67f8320000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a039092169163bc67f8329160248082019260009290919082900301818387803b15801561014657600080fd5b505af115801561015a573d6000803e3d6000fd5b5050505060405136600082376000803683346002545af13d6000833e8015156100dd573d82fd5b005b34801561018f57600080fd5b50610181600160a060020a03600435166102a8565b3480156101b057600080fd5b506101b9610320565b60408051600160a060020a039092168252519081900360200190f35b3480156101e157600080fd5b50610181600160a060020a036004351661032f565b34801561020257600080fd5b506101816103a7565b34801561021757600080fd5b506101b961043e565b34801561022c57600080fd5b5061018160246004803582810192910135903560443560643560843560a43561044d565b34801561025c57600080fd5b50610265610517565b604080519115158252519081900360200190f35b34801561028557600080fd5b506101816004351515610538565b34801561029f57600080fd5b506101b961058f565b600054600160a060020a031633146102bf57600080fd5b60018054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b600154600160a060020a031681565b600054600160a060020a0316331461034657600080fd5b60028054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517f814250a3b8c79fcbe2ead2c131c952a278491c8f4322a79fe84b5040a810373e9181900360200190a150565b600154600160a060020a031633146103be57600080fd5b60005460015460408051600160a060020a03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b600254600090606090600160a060020a0316331461046a57600080fd5b604080516020601f8b01819004810282018101909252898152899350908a90849081908401838280828437820191505050505050905086600081146104ce57600181146104d957600281146104e557600381146104f257600481146105005761050b565b8260208301a061050b565b868360208401a161050b565b85878460208501a261050b565b8486888560208601a361050b565b838587898660208701a45b50505050505050505050565b60025474010000000000000000000000000000000000000000900460ff1681565b600054600160a060020a0316331461054f57600080fd5b60028054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b600254600160a060020a0316815600a165627a7a723058209e104efaf0a7b150d5357b3a38b0260a3741a240fef678863453d378cc0622b90029000000000000000000000000b12a54406840a7ddfa9246efb3bf4724bf55f5f8

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

000000000000000000000000b12a54406840a7ddfa9246efb3bf4724bf55f5f8

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000b12a54406840a7ddfa9246efb3bf4724bf55f5f8

Swarm Source

bzzr://9e104efaf0a7b150d5357b3a38b0260a3741a240fef678863453d378cc0622b9
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.