Sponsored:   VC, TLDR and CoinBene Funded "TEMCO: Bitcoin Network (RSK) Suppy Chain! Whitelist KYC Starts Now!!"
Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 26375 txns
Misc:
Address Watch: Add To Watch List
Contract Creator: 0xbf95d4957d481473e39c70d3bc08896740e3ca96at txn 0x9ab48ee549cb8cfbf06ddd52a6dd0d62b8b0baff253899cddb4432112b4840ff
Token Balance:
 Latest 25 transactions from a total of 26375 transactions

TxHash Age From To Value [TxFee]
0x26bb047e14e92e2f0f06cf0acaec94a7c39ad59617c749d608925d5e3f11762b4 mins ago0x3674b37078db3c35721f5d1d4349a583eabea539  IN   0xa3db33ccfe990fdf89ff311754391b5c3af4ef040 Ether0.001565312
0xcd33d2be561c75768265f0d2e45a834cc085a672f4e49f4f08e92171100b908d10 mins ago0x3674b37078db3c35721f5d1d4349a583eabea539  IN   0xa3db33ccfe990fdf89ff311754391b5c3af4ef040 Ether0.001565824
0xce2de227fa46078602d1a0cfbb913d3f1ba35a9605485e8d3a5f8427525545c912 mins ago0x3674b37078db3c35721f5d1d4349a583eabea539  IN   0xa3db33ccfe990fdf89ff311754391b5c3af4ef040 Ether0.001565824
0x7a65234b9ae5d5e1b9bd6c9178ae0d11184b45f9d66655043c6127d42115c90a13 mins ago0x870eac2766e2b051d739fc4b258069e0fb6372ed  IN   0xa3db33ccfe990fdf89ff311754391b5c3af4ef040 Ether0.000522424
0x19f165480c6b8fff9947316bb5d59b50256d28f2e73bbed0f58aebf6ab04f60c14 mins ago0x870eac2766e2b051d739fc4b258069e0fb6372ed  IN   0xa3db33ccfe990fdf89ff311754391b5c3af4ef040 Ether0.000522424
0xecc3c1c421bb4407212cb195de793242499efc33e4ed15dc855457f026b320c614 mins ago0x3674b37078db3c35721f5d1d4349a583eabea539  IN   0xa3db33ccfe990fdf89ff311754391b5c3af4ef040 Ether0.001565824
0x5d84f6fd36878c668c6aff4832230a48e43e8b37092f019e0ce114beeee1764417 mins ago0x3674b37078db3c35721f5d1d4349a583eabea539  IN   0xa3db33ccfe990fdf89ff311754391b5c3af4ef040 Ether0.001565824
0xa792c2c114a58b2057d6c62a95c30c7a7641ed660d33085f121cede4e9a10a1817 mins ago0x3674b37078db3c35721f5d1d4349a583eabea539  IN   0xa3db33ccfe990fdf89ff311754391b5c3af4ef040 Ether0.001565824
0x77e5d8413f785f88e8374f8369c28c12e07a1781f01bca39a51092b94b8d801326 mins ago0x870eac2766e2b051d739fc4b258069e0fb6372ed  IN   0xa3db33ccfe990fdf89ff311754391b5c3af4ef040 Ether0.000522424
0xdbc5826033e51d1373769c0c54c9096cc063629ecfc5f7f4288e9e1631f4385027 mins ago0x3674b37078db3c35721f5d1d4349a583eabea539  IN   0xa3db33ccfe990fdf89ff311754391b5c3af4ef040 Ether0.001565824
0x6513c20cfc992415ff60bf1ec49f385e1792af1f3d5d3b61c3c4bd31f65ecdb630 mins ago0x3674b37078db3c35721f5d1d4349a583eabea539  IN   0xa3db33ccfe990fdf89ff311754391b5c3af4ef040 Ether0.001565824
0x8c367f9c9e797c346c04e627908108f5002137834ec6644b0794f77c1d08364a31 mins ago0x3674b37078db3c35721f5d1d4349a583eabea539  IN   0xa3db33ccfe990fdf89ff311754391b5c3af4ef040 Ether0.001565824
0x359dcf20ad5f7413743d8238f67e47588e341bae7f8d03fbf67ac5b85a60e77235 mins ago0x3674b37078db3c35721f5d1d4349a583eabea539  IN   0xa3db33ccfe990fdf89ff311754391b5c3af4ef040 Ether0.001565312
0xd8865a9ad7f26cb7737997815ddfbd5a027f677ecd67de507a6242e33cbdb33946 mins ago0x870eac2766e2b051d739fc4b258069e0fb6372ed  IN   0xa3db33ccfe990fdf89ff311754391b5c3af4ef040 Ether0.000498776
0x4e7ef651f71a2c734fddc9131085e30866002ae6163b967f79fa39451fc97fac46 mins ago0x870eac2766e2b051d739fc4b258069e0fb6372ed  IN   0xa3db33ccfe990fdf89ff311754391b5c3af4ef040 Ether0.000498776
0xb2d641edccd4340217f420142bc30c9ec465604e30c1ccb018b79a4513b1e24a46 mins ago0x870eac2766e2b051d739fc4b258069e0fb6372ed  IN   0xa3db33ccfe990fdf89ff311754391b5c3af4ef040 Ether0.000498776
0xd458ba8d368af1d44bef6a418d38a141cb9e828c451816e8ea574742076de27e46 mins ago0x870eac2766e2b051d739fc4b258069e0fb6372ed  IN   0xa3db33ccfe990fdf89ff311754391b5c3af4ef040 Ether0.000498776
0xa715e8b25d4036cdfca9c2524f58ccda5b9c220a67a753676fcbc39080f1387c46 mins ago0x870eac2766e2b051d739fc4b258069e0fb6372ed  IN   0xa3db33ccfe990fdf89ff311754391b5c3af4ef040 Ether0.000498776
0x10c41bf4abe75895f0e97459347aaba1630a869b14c2c6158060a98343973e5846 mins ago0x870eac2766e2b051d739fc4b258069e0fb6372ed  IN   0xa3db33ccfe990fdf89ff311754391b5c3af4ef040 Ether0.000498776
0xd2bb3cef72c090936686b7d29eb1104bdb7f7c1abcdeaf67953bdb7939f6ebc246 mins ago0x870eac2766e2b051d739fc4b258069e0fb6372ed  IN   0xa3db33ccfe990fdf89ff311754391b5c3af4ef040 Ether0.000498776
0x84e247bbd2f73594ec565a1ee1bb65300e34b59309f769cfa7b9c66428cdabcc46 mins ago0x870eac2766e2b051d739fc4b258069e0fb6372ed  IN   0xa3db33ccfe990fdf89ff311754391b5c3af4ef040 Ether0.000498776
0xb38c0326d87ce8a931341190d63d74d136064b214e60d59b2d79beac8d2c206146 mins ago0x870eac2766e2b051d739fc4b258069e0fb6372ed  IN   0xa3db33ccfe990fdf89ff311754391b5c3af4ef040 Ether0.000498776
0x77bd4095bdb0009b73a9469ee7ed15b95912dacbeeffe356a663d1a0729b97d546 mins ago0x870eac2766e2b051d739fc4b258069e0fb6372ed  IN   0xa3db33ccfe990fdf89ff311754391b5c3af4ef040 Ether0.000498776
0x947a9d6e45aec26c0873d75bb75714a5787091f99c8ca6b0ccb04d8708183ed546 mins ago0x870eac2766e2b051d739fc4b258069e0fb6372ed  IN   0xa3db33ccfe990fdf89ff311754391b5c3af4ef040 Ether0.000498776
0x637fc6e09d8f690725e53d32ea89e235081c10fa2b22f5306b88bd6079d734aa46 mins ago0x870eac2766e2b051d739fc4b258069e0fb6372ed  IN   0xa3db33ccfe990fdf89ff311754391b5c3af4ef040 Ether0.000498776
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 1 Internal Transaction

ParentTxHash Block Age From To Value
0x9ab48ee549cb8cfbf06ddd52a6dd0d62b8b0baff253899cddb4432112b4840ff648463869 days 22 hrs ago0xbf95d4957d481473e39c70d3bc08896740e3ca96  Contract Creation0 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: CvcProxy
Compiler Text: v0.4.24+commit.e67f0147
Optimization Enabled: No
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.24;

// File: contracts/upgradeability/ImplementationStorage.sol

/**
 * @title ImplementationStorage
 * @dev This contract stores proxy implementation address.
 */
contract ImplementationStorage {

    /**
     * @dev Storage slot with the address of the current implementation.
     * This is the keccak-256 hash of "cvc.proxy.implementation", and is validated in the constructor.
     */
    bytes32 internal constant IMPLEMENTATION_SLOT = 0xa490aab0d89837371982f93f57ffd20c47991f88066ef92475bc8233036969bb;

    /**
    * @dev Constructor
    */
    constructor() public {
        assert(IMPLEMENTATION_SLOT == keccak256("cvc.proxy.implementation"));
    }

    /**
     * @dev Returns the current implementation.
     * @return Address of the current implementation
     */
    function implementation() public view returns (address impl) {
        bytes32 slot = IMPLEMENTATION_SLOT;
        assembly {
            impl := sload(slot)
        }
    }
}

// File: openzeppelin-solidity/contracts/AddressUtils.sol

/**
 * Utility library of inline functions on addresses
 */
library AddressUtils {

  /**
   * Returns whether the target address is a contract
   * @dev This function will return false if invoked during the constructor of a contract,
   *  as the code is not actually created until after the constructor finishes.
   * @param addr address to check
   * @return whether the target address is a contract
   */
  function isContract(address addr) internal view returns (bool) {
    uint256 size;
    // XXX Currently there is no better way to check if there is a contract in an address
    // than to check the size of the code at that address.
    // See https://ethereum.stackexchange.com/a/14016/36603
    // for more details about how this works.
    // TODO Check this again before the Serenity release, because all addresses will be
    // contracts then.
    // solium-disable-next-line security/no-inline-assembly
    assembly { size := extcodesize(addr) }
    return size > 0;
  }

}

// File: contracts/upgradeability/CvcProxy.sol

/**
 * @title CvcProxy
 * @dev Transparent proxy with upgradeability functions and authorization control.
 */
contract CvcProxy is ImplementationStorage {

    /**
     * @dev Emitted when the implementation is upgraded.
     * @param implementation Address of the new implementation.
     */
    event Upgraded(address implementation);

    /**
     * @dev Emitted when the administration has been transferred.
     * @param previousAdmin Address of the previous admin.
     * @param newAdmin Address of the new admin.
     */
    event AdminChanged(address previousAdmin, address newAdmin);

    /**
     * @dev Storage slot with the admin of the contract.
     * This is the keccak-256 hash of "cvc.proxy.admin", and is validated in the constructor.
     */
    bytes32 private constant ADMIN_SLOT = 0x2bbac3e52eee27be250d682577104e2abe776c40160cd3167b24633933100433;

    /**
     * @dev Modifier to check whether the `msg.sender` is the admin.
     * It executes the function if called by admin. Otherwise, it will delegate the call to the implementation.
     */
    modifier ifAdmin() {
        if (msg.sender == currentAdmin()) {
            _;
        } else {
            delegate(implementation());
        }
    }

    /**
     * Contract constructor.
     * It sets the `msg.sender` as the proxy admin.
     */
    constructor() public {
        assert(ADMIN_SLOT == keccak256("cvc.proxy.admin"));
        setAdmin(msg.sender);
    }

    /**
     * @dev Fallback function.
     */
    function() external payable {
        require(msg.sender != currentAdmin(), "Message sender is not contract admin");
        delegate(implementation());
    }

    /**
     * @dev Changes the admin of the proxy.
     * Only the current admin can call this function.
     * @param _newAdmin Address to transfer proxy administration to.
     */
    function changeAdmin(address _newAdmin) external ifAdmin {
        require(_newAdmin != address(0), "Cannot change contract admin to zero address");
        emit AdminChanged(currentAdmin(), _newAdmin);
        setAdmin(_newAdmin);
    }

    /**
     * @dev Allows the proxy owner to upgrade the current version of the proxy.
     * @param _implementation the address of the new implementation to be set.
     */
    function upgradeTo(address _implementation) external ifAdmin {
        upgradeImplementation(_implementation);
    }

    /**
     * @dev Allows the proxy owner to upgrade and call the new implementation
     * to initialize whatever is needed through a low level call.
     * @param _implementation the address of the new implementation to be set.
     * @param _data the msg.data to bet sent in the low level call. This parameter may include the function
     * signature of the implementation to be called with the needed payload.
     */
    function upgradeToAndCall(address _implementation, bytes _data) external payable ifAdmin {
        upgradeImplementation(_implementation);
        //solium-disable-next-line security/no-call-value
        require(address(this).call.value(msg.value)(_data), "Upgrade error: initialization method call failed");
    }

    /**
     * @dev Returns the Address of the proxy admin.
     * @return address
     */
    function admin() external view ifAdmin returns (address) {
        return currentAdmin();
    }

    /**
     * @dev Upgrades the implementation address.
     * @param _newImplementation the address of the new implementation to be set
     */
    function upgradeImplementation(address _newImplementation) private {
        address currentImplementation = implementation();
        require(currentImplementation != _newImplementation, "Upgrade error: proxy contract already uses specified implementation");
        setImplementation(_newImplementation);
        emit Upgraded(_newImplementation);
    }

    /**
     * @dev Delegates execution to an implementation contract.
     * This is a low level function that doesn't return to its internal call site.
     * It will return to the external caller whatever the implementation returns.
     * @param _implementation Address to delegate.
     */
    function delegate(address _implementation) private {
        assembly {
            // Copy msg.data.
            calldatacopy(0, 0, calldatasize)

            // Call current implementation passing proxy calldata.
            let result := delegatecall(gas, _implementation, 0, calldatasize, 0, 0)

            // Copy the returned data.
            returndatacopy(0, 0, returndatasize)

            // Propagate result (delegatecall returns 0 on error).
            switch result
            case 0 {revert(0, returndatasize)}
            default {return (0, returndatasize)}
        }
    }

    /**
     * @return The admin slot.
     */
    function currentAdmin() private view returns (address proxyAdmin) {
        bytes32 slot = ADMIN_SLOT;
        assembly {
            proxyAdmin := sload(slot)
        }
    }

    /**
     * @dev Sets the address of the proxy admin.
     * @param _newAdmin Address of the new proxy admin.
     */
    function setAdmin(address _newAdmin) private {
        bytes32 slot = ADMIN_SLOT;
        assembly {
            sstore(slot, _newAdmin)
        }
    }

    /**
     * @dev Sets the implementation address of the proxy.
     * @param _newImplementation Address of the new implementation.
     */
    function setImplementation(address _newImplementation) private {
        require(
            AddressUtils.isContract(_newImplementation),
            "Cannot set new implementation: no contract code at contract address"
        );
        bytes32 slot = IMPLEMENTATION_SLOT;
        assembly {
            sstore(slot, _newImplementation)
        }
    }

}

    Contract ABI  
[{"constant":false,"inputs":[{"name":"_implementation","type":"address"}],"name":"upgradeTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_implementation","type":"address"},{"name":"_data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"implementation","outputs":[{"name":"impl","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newAdmin","type":"address"}],"name":"changeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"admin","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"previousAdmin","type":"address"},{"indexed":false,"name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"}]

  Contract Creation Code Switch To Opcodes View
608060405234801561001057600080fd5b5060405180807f6376632e70726f78792e696d706c656d656e746174696f6e000000000000000081525060180190506040518091039020600019167fa490aab0d89837371982f93f57ffd20c47991f88066ef92475bc8233036969bb6001026000191614151561007c57fe5b60405180807f6376632e70726f78792e61646d696e0000000000000000000000000000000000815250600f0190506040518091039020600019167f2bbac3e52eee27be250d682577104e2abe776c40160cd3167b24633933100433600102600019161415156100e757fe5b6100ff33610104640100000000026401000000009004565b610133565b60007f2bbac3e52eee27be250d682577104e2abe776c40160cd3167b2463393310043360010290508181555050565b6109e6806101426000396000f30060806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633659cfe6146101505780634f1ef286146101935780635c60da1b146101e15780638f28397014610238578063f851a4401461027b575b6100756102d2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561013e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f4d6573736167652073656e646572206973206e6f7420636f6e7472616374206181526020017f646d696e0000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61014e610149610303565b610334565b005b34801561015c57600080fd5b50610191600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061035a565b005b6101df600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019082018035906020019190919293919293905050506103b7565b005b3480156101ed57600080fd5b506101f6610303565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561024457600080fd5b50610279600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104ee565b005b34801561028757600080fd5b506102906106b4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000807f2bbac3e52eee27be250d682577104e2abe776c40160cd3167b246339331004336001029050805491505090565b6000807fa490aab0d89837371982f93f57ffd20c47991f88066ef92475bc8233036969bb6001029050805491505090565b3660008037600080366000845af43d6000803e8060008114610355573d6000f35b3d6000fd5b6103626102d2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156103a35761039e81610714565b6103b4565b6103b36103ae610303565b610334565b5b50565b6103bf6102d2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156104d8576103fb83610714565b3073ffffffffffffffffffffffffffffffffffffffff163483836040518083838082843782019150509250505060006040518083038185875af19250505015156104d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f55706772616465206572726f723a20696e697469616c697a6174696f6e206d6581526020017f74686f642063616c6c206661696c65640000000000000000000000000000000081525060400191505060405180910390fd5b6104e9565b6104e86104e3610303565b610334565b5b505050565b6104f66102d2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156106a057600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156105f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f43616e6e6f74206368616e676520636f6e74726163742061646d696e20746f2081526020017f7a65726f2061646472657373000000000000000000000000000000000000000081525060400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61061d6102d2565b82604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a161069b81610880565b6106b1565b6106b06106ab610303565b610334565b5b50565b60006106be6102d2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610700576106f96102d2565b9050610711565b61071061070b610303565b610334565b5b90565b600061071e610303565b90508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610810576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260438152602001807f55706772616465206572726f723a2070726f787920636f6e747261637420616c81526020017f726561647920757365732073706563696669656420696d706c656d656e74617481526020017f696f6e000000000000000000000000000000000000000000000000000000000081525060600191505060405180910390fd5b610819826108af565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b60007f2bbac3e52eee27be250d682577104e2abe776c40160cd3167b2463393310043360010290508181555050565b60006108ba826109a7565b151561097a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260438152602001807f43616e6e6f7420736574206e657720696d706c656d656e746174696f6e3a206e81526020017f6f20636f6e747261637420636f646520617420636f6e7472616374206164647281526020017f657373000000000000000000000000000000000000000000000000000000000081525060600191505060405180910390fd5b7fa490aab0d89837371982f93f57ffd20c47991f88066ef92475bc8233036969bb60010290508181555050565b600080823b9050600081119150509190505600a165627a7a72305820217a0189de99c2ae3f5c53cbbfaa4b7eab27fae03ef8b58703719d284bb86dcc0029

   Swarm Source:
bzzr://217a0189de99c2ae3f5c53cbbfaa4b7eab27fae03ef8b58703719d284bb86dcc

 

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.