Sponsored:   LH-CRYPTO - 200 instruments (BTC, EUR, GOLD, OIL, SHARES). Leverage up to 1:500. OPEN ACCOUNT
Contract Overview |  Havven
Balance: 0 Ether
Ether Value: $0
Transactions: 17026 txns
Token Tracker: Havven (HAV)
Misc:
Address Watch: Add To Watch List
Contract Creator: 0xb12a54406840a7ddfa9246efb3bf4724bf55f5f8at txn 0xa733e675705a8af67f4f82df796be763d4f389a45216a89bf5d09f7e7d1aec11
Token Balance:
 Latest 25 transactions from a total of 17026 transactions
(+4 PendingTxns)

TxHash Age From To Value [TxFee]
0x330df0ddc8f46e345e576ff714c81cfd2be4615d83423545a9bb77dc586bb2a4(pending)0xe9c0bcb048a687be1134f039e35e1253c1c47323  IN  0xc011a72400e58ecd99ee497cf89e3775d4bd732f0 Ether(Pending)
0x0db7142fe6d471bd2caad98a31b63190da3b93392479b2e8f668dd7bef17c932(pending)0x5eb2fe80d133b43d01adde9e682a526b4934dc26  IN  0xc011a72400e58ecd99ee497cf89e3775d4bd732f0 Ether(Pending)
0xc80c69a7d2a2b29b9f32005ef893f9d4878dbd69df22f3cf1ea021a005b6e1b4(pending)0xf4cc365d4d80c49653b2da47105a398e73c9c8b3  IN  0xc011a72400e58ecd99ee497cf89e3775d4bd732f0 Ether(Pending)
0x6db7c7ebd3a2e5b618692512425d1f59111683c1b4af6ddee7a529b290a1fba2(pending)0x886c80084a472e7db8259dbfc410350c3711a8ca  IN  0xc011a72400e58ecd99ee497cf89e3775d4bd732f0 Ether(Pending)
0xe13f846c0da925ffd1675f70752364cdfb076383d60c56e78e2b017ab4c2057e19 mins ago0x524bac9c3255083bda689c3a3dad3e7c934223cc  IN   Havven0 Ether0.000851279
0x03dae39f9ec16dbeb0cd386190a2c64155b8d68b0748e10470227146e79c435521 mins ago0x31212947b0675f0023718e9a02459ef949b28fe2  IN   Havven0 Ether0.00047389
0xd6bd2ec6ef94a2ad8c1540d27251dcf85ff19646b638a83ddd3d7ca79453c02221 mins ago0x1221d64fee2457f5bf0cd65a807b245a0fa3a821  IN   Havven0 Ether0.000330827
0x5601328da25ee6985b46c37a5a51c8f253722ff987ed80283a8f66490835f01226 mins ago0x9acdd9e4b50d40162b96daaf3367a79900fcb303  IN   Havven0 Ether0.00025042
0xc820256746ba0ce0adb825bc8d778344db65cec50d02bf6181527fbd7cb93a9430 mins ago0x14032c75f4408210424f12d32905801269f04377  IN   Havven0 Ether0.000311945
0xa7360ba517c07bf7b5334ff15a3f85a330916631f86b564df400e9680d3108d333 mins agoKucoin  IN   Havven0 Ether0.0014958
0xc780bda7321e876e87b27be4c5a77bfe724937d4a331c282b8c9931f5861d3a036 mins agoKucoin  IN   Havven0 Ether0.0018558
0x9c878ee0bd9ea1514bf56e98d4c287eb3fbc06619cded4c10e6fa0c263671d3e42 mins agoKucoin  IN   Havven0 Ether0.001123002
0x204a40b8312459db2feb6fb9265b49e45b1448179dd28554e14d824dd867813d45 mins agoKucoin  IN   Havven0 Ether0.0012758625
0x79327fe21673f176538c963bb25e912fe96ff24437b8fb09da2fdd0a653fe3c955 mins ago0xa04aaaa9cf6743a74455e8282fa8649ef11b982b  IN   Havven0 Ether0.001942949
0xacef0ef6521b8bad5af0bf95533136d31672b91fc699096d6d05fdde474fd8bd1 hr 8 mins ago0x2e7e3ec90f3c6a461bf665db00400960c2212152  IN   Havven0 Ether0.001940325
0xd263f4114f30d631893a405fa47c095e34b7b022eaaa54fc053004be25ceb1861 hr 9 mins agoKucoin  IN   Havven0 Ether0.001161795
0x5a1780db0a47fad45f661c9412cb8248e330cb3cc1cb06b98aaf7c06e6668b7a1 hr 9 mins ago0x48ab39a8d817cabcdd4c3176ee14d1c4f7bd81d7  IN   Havven0 Ether0.001942949
0xeb0a8246606a65e13d5914de096aadfb4984b18a8c9be69876a3fa5db58cb4911 hr 10 mins ago0x692f5722ba6f0aa7a566766f49463c30a219e01d  IN   Havven0 Ether0.001942949
0x5f5cfc7da35a20ea3cea4379617049b5d3d2ddbdc3a3ea8b9260c6aed0557da61 hr 15 mins ago0xe1d0fd369af427ce86e883b8866fc6dba0796a68  IN   Havven0 Ether0.002557949
0x344cb94149234451491913846a5f867592e4276de322cef3aef76f798d5169bb1 hr 18 mins ago0x692f5722ba6f0aa7a566766f49463c30a219e01d  IN   Havven0 Ether0.003167701
0xeb5bbe1315907b4d755608c08f121c18672097db8831b9a1a132f6d2947f79aa1 hr 31 mins agoKucoin  IN   Havven0 Ether0.0010294185
0xec603cdab532badf704069caba5a233feec738265726df032c55387d654c00071 hr 56 mins agoKucoin  IN   Havven0 Ether0.000935835
0x5862225e5e5b53ead87976f9679ffeeaeb785879bc1e8a1eb2291ec3e5877c012 hrs 2 mins agoKucoin  IN   Havven0 Ether0.00139185
0xe327715f04159630a421b7229b06aa42594144625bda901033c9a865601ce2fd2 hrs 11 mins ago0xe944a49afb6f48213a209b083525d03e506b11fb  IN   Havven0 Ether0.00374334
0xb584ccc770eb0293eff0617b434b2c27f6f651c42d064641b1f27892301728522 hrs 32 mins agoKucoin  IN   Havven0 Ether0.0010294185
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 3 Internal Transactions

ParentTxHash Block Age From To Value
0xfcd1548c17faec5ff2495e546950fa5efa0797e23a8c9d5713444b0629a65d355869402143 days 21 hrs ago0xc011a72400e58ecd99ee497cf89e3775d4bd732f0x01da95f253122636d0776017311892835a15d9dd0.02 Ether
0x9342732b9ad8d00427401197cf8f49ce70a189ce98ac53c51da9a4592e02fe775865710144 days 13 hrs ago0xc011a72400e58ecd99ee497cf89e3775d4bd732f0x01da95f253122636d0776017311892835a15d9dd0.02 Ether
0x8ea3c34fa150023582255a726b7d7ab3d5b66678da090c8d1350c0d0914e24485769526161 days 2 hrs ago0xc011a72400e58ecd99ee497cf89e3775d4bd732f0x01da95f253122636d0776017311892835a15d9dd0.001 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: Proxy
Compiler Text: v0.4.24+commit.e67f0147
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

/* 
 * 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 Switch To Opcodes View
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

 

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