ETH Price: $2,737.32 (-1.33%)

Contract

0xa5409ec958C83C3f309868babACA7c86DCB077c1
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Transaction Hash
Method
Block
From
To
0xeffca78d4de45968b83a607d01c750ab5a632b34bb5287d2efe9db1e0bd47c45 Register Proxy(pending)2025-02-06 15:29:403 mins ago1738855780IN
OpenSea: Registry
0 ETH(Pending)(Pending)
0x398a31519d890fc03574a55cc63e275608c572c125346ee02c84d18721e565bc Register Proxy(pending)2025-02-06 15:02:3930 mins ago1738854159IN
OpenSea: Registry
0 ETH(Pending)(Pending)
0xf694baae0e3827282d5272990194537633fb660e34bad7fd453fb228daba03cd Register Proxy(pending)2025-02-06 14:54:5438 mins ago1738853694IN
OpenSea: Registry
0 ETH(Pending)(Pending)
0x2b8228f6dc9343214cf5adbb07b6bc68c16754025cc5b1456c1bb174b9f3502b Register Proxy(pending)2025-02-06 14:54:5438 mins ago1738853694IN
OpenSea: Registry
0 ETH(Pending)(Pending)
0x4e59018eea9d3d451f5000d4a384a84bd5f77f3b8595cd506ce0503a08904737 Register Proxy(pending)2025-02-06 14:51:4141 mins ago1738853501IN
OpenSea: Registry
0 ETH(Pending)(Pending)
0x28587fc078dc7722269387197a8fbac3200de902e9b4f3f48bf1fb25725240e1 Register Proxy(pending)2025-02-06 14:47:0545 mins ago1738853225IN
OpenSea: Registry
0 ETH(Pending)(Pending)
0xec719018f2ebd9289bda6bc79fee1fd279a4a959e5f1a1d866f4a155d85b9147 Register Proxy(pending)2025-02-06 14:34:4158 mins ago1738852481IN
OpenSea: Registry
0 ETH(Pending)(Pending)
0x45e2ed887564f9a64f191154071ceceeccd3c58135cbb5e509e90078ea0a4595 Register Proxy(pending)2025-02-06 14:33:291 hrs ago1738852409IN
OpenSea: Registry
0 ETH(Pending)(Pending)
0x7263865c64ba14a119c4d83cddd799ccaf8403179adacbbd9fb9c00ffde715ae Register Proxy(pending)2025-02-06 14:31:411 hr ago1738852301IN
OpenSea: Registry
0 ETH(Pending)(Pending)
0x48badbc7170e8c9cec10048ca875291080a00744f71ebbe8af239c3ea3f5f88f Register Proxy(pending)2025-02-06 14:23:521 hr ago1738851832IN
OpenSea: Registry
0 ETH(Pending)(Pending)
0xeaf9d84ea7e6e5bb078cf0fd658ee584f901c9157ed1a12464bb6ed473ff1ed3 Register Proxy(pending)2025-02-06 14:20:541 hr ago1738851654IN
OpenSea: Registry
0 ETH(Pending)(Pending)
0x78ba7fd43e2a5c2817fd24c6b271cc27ba760d8bd8f732baf3429755ecaf18fe Register Proxy(pending)2025-02-06 14:20:541 hr ago1738851654IN
OpenSea: Registry
0 ETH(Pending)(Pending)
0x7508f2f9e96edb811896d4181c1d2f11cf8848d9bfdc0b7952d1b53527fc07cb Register Proxy(pending)2025-02-06 14:18:171 hr ago1738851497IN
OpenSea: Registry
0 ETH(Pending)(Pending)
0x0a1f7100fdcca6c3a8d18920cdab5e5b338aa2973d9ed35fd8b64668c07eea16 Register Proxy(pending)2025-02-06 14:17:531 hr ago1738851473IN
OpenSea: Registry
0 ETH(Pending)(Pending)
0xb1cf45d38a270a462e81553872621a38d52ce3a55c0aabc140e70546a0a133eb Register Proxy(pending)2025-02-06 14:08:561 hr ago1738850936IN
OpenSea: Registry
0 ETH(Pending)(Pending)
0x452557bba2f18f1b3eba83a329523b26120f952d7ca77949667a71ae56985c5d Register Proxy(pending)2025-02-06 14:07:391 hr ago1738850859IN
OpenSea: Registry
0 ETH(Pending)(Pending)
0xfb614c2d3f491b8a88905177824f4a33554ccf9d5fde5b29a79acdbab02ea9be Register Proxy(pending)2025-02-06 14:00:151 hr ago1738850415IN
OpenSea: Registry
0 ETH(Pending)(Pending)
0x262b41c70d092bad666f5aa8a119026887530eb6a9bdb53acd71d5e50a31c7ed Register Proxy(pending)2025-02-06 13:56:321 hr ago1738850192IN
OpenSea: Registry
0 ETH(Pending)(Pending)
0x6d30deea9def9b8ff3e6a46dd7ec68a9ed24ef46b41ed5fa34461fa36484bd6d Register Proxy(pending)2025-02-06 13:55:411 hr ago1738850141IN
OpenSea: Registry
0 ETH(Pending)(Pending)
0x3b10fb9fff9527b8f948d9ccae24744072755de9ddff957891518b4c88f7cc3d Register Proxy(pending)2025-02-06 13:47:551 hr ago1738849675IN
OpenSea: Registry
0 ETH(Pending)(Pending)
0xd365adead3a587ff41b9712f74ad3bc87c03e9c986120fb420574993ff22a1c5 Register Proxy(pending)2025-02-06 13:45:311 hr ago1738849531IN
OpenSea: Registry
0 ETH(Pending)(Pending)
0x7ef7727ebf86a3b79df0368ba67986a703c69ade4e2ff732ba56e092de62463a Register Proxy(pending)2025-02-06 13:43:421 hr ago1738849422IN
OpenSea: Registry
0 ETH(Pending)(Pending)
0x32f9714bfe7c159f58e520227e0166dd404fe0906d7b68519a7eb3170405c08b Register Proxy(pending)2025-02-06 13:38:161 hr ago1738849096IN
OpenSea: Registry
0 ETH(Pending)(Pending)
0x2b85ae81437995a2bd7f40e96a1f41d341c55e9a779ad31b4b82a975248359a9 Register Proxy(pending)2025-02-06 13:37:181 hr ago1738849038IN
OpenSea: Registry
0 ETH(Pending)(Pending)
0x9c44e9c24a9a1313bc8f004a9f787e12e6e5e7de92d1a7e355708af6d50dbc2b Register Proxy(pending)2025-02-06 13:35:191 hr ago1738848919IN
OpenSea: Registry
0 ETH(Pending)(Pending)
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
217835512025-02-05 23:22:1116 hrs ago1738797731
OpenSea: Registry
 Contract Creation0 ETH
217835182025-02-05 23:15:3516 hrs ago1738797335
OpenSea: Registry
 Contract Creation0 ETH
217785102025-02-05 6:29:3533 hrs ago1738736975
OpenSea: Registry
 Contract Creation0 ETH
217543182025-02-01 21:20:474 days ago1738444847
OpenSea: Registry
 Contract Creation0 ETH
215248562024-12-31 20:32:1136 days ago1735677131
OpenSea: Registry
 Contract Creation0 ETH
214355482024-12-19 9:03:2349 days ago1734599003
OpenSea: Registry
 Contract Creation0 ETH
213067262024-12-01 9:20:4767 days ago1733044847
OpenSea: Registry
 Contract Creation0 ETH
211706042024-11-12 9:07:4786 days ago1731402467
OpenSea: Registry
 Contract Creation0 ETH
210541572024-10-27 3:04:35102 days ago1729998275
OpenSea: Registry
 Contract Creation0 ETH
206603022024-09-02 3:49:35157 days ago1725248975
OpenSea: Registry
 Contract Creation0 ETH
206595682024-09-02 1:22:23157 days ago1725240143
OpenSea: Registry
 Contract Creation0 ETH
206595432024-09-02 1:17:23157 days ago1725239843
OpenSea: Registry
 Contract Creation0 ETH
206595432024-09-02 1:17:23157 days ago1725239843
OpenSea: Registry
 Contract Creation0 ETH
206595432024-09-02 1:17:23157 days ago1725239843
OpenSea: Registry
 Contract Creation0 ETH
206593162024-09-02 0:31:47157 days ago1725237107
OpenSea: Registry
 Contract Creation0 ETH
206593162024-09-02 0:31:47157 days ago1725237107
OpenSea: Registry
 Contract Creation0 ETH
206593162024-09-02 0:31:47157 days ago1725237107
OpenSea: Registry
 Contract Creation0 ETH
206593162024-09-02 0:31:47157 days ago1725237107
OpenSea: Registry
 Contract Creation0 ETH
206549682024-09-01 9:56:47158 days ago1725184607
OpenSea: Registry
 Contract Creation0 ETH
206518612024-08-31 23:33:35158 days ago1725147215
OpenSea: Registry
 Contract Creation0 ETH
206518612024-08-31 23:33:35158 days ago1725147215
OpenSea: Registry
 Contract Creation0 ETH
206518602024-08-31 23:33:23158 days ago1725147203
OpenSea: Registry
 Contract Creation0 ETH
206518602024-08-31 23:33:23158 days ago1725147203
OpenSea: Registry
 Contract Creation0 ETH
206518592024-08-31 23:33:11158 days ago1725147191
OpenSea: Registry
 Contract Creation0 ETH
206510582024-08-31 20:52:11158 days ago1725137531
OpenSea: Registry
 Contract Creation0 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
WyvernProxyRegistry

Compiler Version
v0.4.23+commit.124ca40d

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-06-12
*/

pragma solidity ^0.4.13;

contract Ownable {
  address public owner;


  event OwnershipRenounced(address indexed previousOwner);
  event OwnershipTransferred(
    address indexed previousOwner,
    address indexed newOwner
  );


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  constructor() public {
    owner = msg.sender;
  }

  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }

  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function transferOwnership(address newOwner) public onlyOwner {
    require(newOwner != address(0));
    emit OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }

  /**
   * @dev Allows the current owner to relinquish control of the contract.
   */
  function renounceOwnership() public onlyOwner {
    emit OwnershipRenounced(owner);
    owner = address(0);
  }
}

contract ERC20Basic {
  function totalSupply() public view returns (uint256);
  function balanceOf(address who) public view returns (uint256);
  function transfer(address to, uint256 value) public returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
}

contract ERC20 is ERC20Basic {
  function allowance(address owner, address spender)
    public view returns (uint256);

  function transferFrom(address from, address to, uint256 value)
    public returns (bool);

  function approve(address spender, uint256 value) public returns (bool);
  event Approval(
    address indexed owner,
    address indexed spender,
    uint256 value
  );
}

contract TokenRecipient {
    event ReceivedEther(address indexed sender, uint amount);
    event ReceivedTokens(address indexed from, uint256 value, address indexed token, bytes extraData);

    /**
     * @dev Receive tokens and generate a log event
     * @param from Address from which to transfer tokens
     * @param value Amount of tokens to transfer
     * @param token Address of token
     * @param extraData Additional data to log
     */
    function receiveApproval(address from, uint256 value, address token, bytes extraData) public {
        ERC20 t = ERC20(token);
        require(t.transferFrom(from, this, value));
        emit ReceivedTokens(from, value, token, extraData);
    }

    /**
     * @dev Receive Ether and generate a log event
     */
    function () payable public {
        emit ReceivedEther(msg.sender, msg.value);
    }
}

contract ProxyRegistry is Ownable {

    /* DelegateProxy implementation contract. Must be initialized. */
    address public delegateProxyImplementation;

    /* Authenticated proxies by user. */
    mapping(address => OwnableDelegateProxy) public proxies;

    /* Contracts pending access. */
    mapping(address => uint) public pending;

    /* Contracts allowed to call those proxies. */
    mapping(address => bool) public contracts;

    /* Delay period for adding an authenticated contract.
       This mitigates a particular class of potential attack on the Wyvern DAO (which owns this registry) - if at any point the value of assets held by proxy contracts exceeded the value of half the WYV supply (votes in the DAO),
       a malicious but rational attacker could buy half the Wyvern and grant themselves access to all the proxy contracts. A delay period renders this attack nonthreatening - given two weeks, if that happened, users would have
       plenty of time to notice and transfer their assets.
    */
    uint public DELAY_PERIOD = 2 weeks;

    /**
     * Start the process to enable access for specified contract. Subject to delay period.
     *
     * @dev ProxyRegistry owner only
     * @param addr Address to which to grant permissions
     */
    function startGrantAuthentication (address addr)
        public
        onlyOwner
    {
        require(!contracts[addr] && pending[addr] == 0);
        pending[addr] = now;
    }

    /**
     * End the process to nable access for specified contract after delay period has passed.
     *
     * @dev ProxyRegistry owner only
     * @param addr Address to which to grant permissions
     */
    function endGrantAuthentication (address addr)
        public
        onlyOwner
    {
        require(!contracts[addr] && pending[addr] != 0 && ((pending[addr] + DELAY_PERIOD) < now));
        pending[addr] = 0;
        contracts[addr] = true;
    }

    /**
     * Revoke access for specified contract. Can be done instantly.
     *
     * @dev ProxyRegistry owner only
     * @param addr Address of which to revoke permissions
     */    
    function revokeAuthentication (address addr)
        public
        onlyOwner
    {
        contracts[addr] = false;
    }

    /**
     * Register a proxy contract with this registry
     *
     * @dev Must be called by the user which the proxy is for, creates a new AuthenticatedProxy
     * @return New AuthenticatedProxy contract
     */
    function registerProxy()
        public
        returns (OwnableDelegateProxy proxy)
    {
        require(proxies[msg.sender] == address(0));
        proxy = new OwnableDelegateProxy(msg.sender, delegateProxyImplementation, abi.encodeWithSignature("initialize(address,address)", msg.sender, address(this)));
        proxies[msg.sender] = proxy;
        return proxy;
    }

}

contract WyvernProxyRegistry is ProxyRegistry {

    string public constant name = "Project Wyvern Proxy Registry";

    /* Whether the initial auth address has been set. */
    bool public initialAddressSet = false;

    constructor ()
        public
    {
        delegateProxyImplementation = new AuthenticatedProxy();
    }

    /** 
     * Grant authentication to the initial Exchange protocol contract
     *
     * @dev No delay, can only be called once - after that the standard registry process with a delay must be used
     * @param authAddress Address of the contract to grant authentication
     */
    function grantInitialAuthentication (address authAddress)
        onlyOwner
        public
    {
        require(!initialAddressSet);
        initialAddressSet = true;
        contracts[authAddress] = true;
    }

}

contract OwnedUpgradeabilityStorage {

  // Current implementation
  address internal _implementation;

  // Owner of the contract
  address private _upgradeabilityOwner;

  /**
   * @dev Tells the address of the owner
   * @return the address of the owner
   */
  function upgradeabilityOwner() public view returns (address) {
    return _upgradeabilityOwner;
  }

  /**
   * @dev Sets the address of the owner
   */
  function setUpgradeabilityOwner(address newUpgradeabilityOwner) internal {
    _upgradeabilityOwner = newUpgradeabilityOwner;
  }

  /**
  * @dev Tells the address of the current implementation
  * @return address of the current implementation
  */
  function implementation() public view returns (address) {
    return _implementation;
  }

  /**
  * @dev Tells the proxy type (EIP 897)
  * @return Proxy type, 2 for forwarding proxy
  */
  function proxyType() public pure returns (uint256 proxyTypeId) {
    return 2;
  }
}

contract AuthenticatedProxy is TokenRecipient, OwnedUpgradeabilityStorage {

    /* Whether initialized. */
    bool initialized = false;

    /* Address which owns this proxy. */
    address public user;

    /* Associated registry with contract authentication information. */
    ProxyRegistry public registry;

    /* Whether access has been revoked. */
    bool public revoked;

    /* Delegate call could be used to atomically transfer multiple assets owned by the proxy contract with one order. */
    enum HowToCall { Call, DelegateCall }

    /* Event fired when the proxy access is revoked or unrevoked. */
    event Revoked(bool revoked);

    /**
     * Initialize an AuthenticatedProxy
     *
     * @param addrUser Address of user on whose behalf this proxy will act
     * @param addrRegistry Address of ProxyRegistry contract which will manage this proxy
     */
    function initialize (address addrUser, ProxyRegistry addrRegistry)
        public
    {
        require(!initialized);
        initialized = true;
        user = addrUser;
        registry = addrRegistry;
    }

    /**
     * Set the revoked flag (allows a user to revoke ProxyRegistry access)
     *
     * @dev Can be called by the user only
     * @param revoke Whether or not to revoke access
     */
    function setRevoke(bool revoke)
        public
    {
        require(msg.sender == user);
        revoked = revoke;
        emit Revoked(revoke);
    }

    /**
     * Execute a message call from the proxy contract
     *
     * @dev Can be called by the user, or by a contract authorized by the registry as long as the user has not revoked access
     * @param dest Address to which the call will be sent
     * @param howToCall Which kind of call to make
     * @param calldata Calldata to send
     * @return Result of the call (success or failure)
     */
    function proxy(address dest, HowToCall howToCall, bytes calldata)
        public
        returns (bool result)
    {
        require(msg.sender == user || (!revoked && registry.contracts(msg.sender)));
        if (howToCall == HowToCall.Call) {
            result = dest.call(calldata);
        } else if (howToCall == HowToCall.DelegateCall) {
            result = dest.delegatecall(calldata);
        }
        return result;
    }

    /**
     * Execute a message call and assert success
     * 
     * @dev Same functionality as `proxy`, just asserts the return value
     * @param dest Address to which the call will be sent
     * @param howToCall What kind of call to make
     * @param calldata Calldata to send
     */
    function proxyAssert(address dest, HowToCall howToCall, bytes calldata)
        public
    {
        require(proxy(dest, howToCall, calldata));
    }

}

contract Proxy {

  /**
  * @dev Tells the address of the implementation where every call will be delegated.
  * @return address of the implementation to which it will be delegated
  */
  function implementation() public view returns (address);

  /**
  * @dev Tells the type of proxy (EIP 897)
  * @return Type of proxy, 2 for upgradeable proxy
  */
  function proxyType() public pure returns (uint256 proxyTypeId);

  /**
  * @dev Fallback function allowing to perform a delegatecall to the given implementation.
  * This function will return whatever the implementation call returns
  */
  function () payable public {
    address _impl = implementation();
    require(_impl != address(0));

    assembly {
      let ptr := mload(0x40)
      calldatacopy(ptr, 0, calldatasize)
      let result := delegatecall(gas, _impl, ptr, calldatasize, 0, 0)
      let size := returndatasize
      returndatacopy(ptr, 0, size)

      switch result
      case 0 { revert(ptr, size) }
      default { return(ptr, size) }
    }
  }
}

contract OwnedUpgradeabilityProxy is Proxy, OwnedUpgradeabilityStorage {
  /**
  * @dev Event to show ownership has been transferred
  * @param previousOwner representing the address of the previous owner
  * @param newOwner representing the address of the new owner
  */
  event ProxyOwnershipTransferred(address previousOwner, address newOwner);

  /**
  * @dev This event will be emitted every time the implementation gets upgraded
  * @param implementation representing the address of the upgraded implementation
  */
  event Upgraded(address indexed implementation);

  /**
  * @dev Upgrades the implementation address
  * @param implementation representing the address of the new implementation to be set
  */
  function _upgradeTo(address implementation) internal {
    require(_implementation != implementation);
    _implementation = implementation;
    emit Upgraded(implementation);
  }

  /**
  * @dev Throws if called by any account other than the owner.
  */
  modifier onlyProxyOwner() {
    require(msg.sender == proxyOwner());
    _;
  }

  /**
   * @dev Tells the address of the proxy owner
   * @return the address of the proxy owner
   */
  function proxyOwner() public view returns (address) {
    return upgradeabilityOwner();
  }

  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function transferProxyOwnership(address newOwner) public onlyProxyOwner {
    require(newOwner != address(0));
    emit ProxyOwnershipTransferred(proxyOwner(), newOwner);
    setUpgradeabilityOwner(newOwner);
  }

  /**
   * @dev Allows the upgradeability owner to upgrade the current implementation of the proxy.
   * @param implementation representing the address of the new implementation to be set.
   */
  function upgradeTo(address implementation) public onlyProxyOwner {
    _upgradeTo(implementation);
  }

  /**
   * @dev Allows the upgradeability owner to upgrade the current implementation of the proxy
   * and delegatecall the new implementation for initialization.
   * @param implementation representing the address of the new implementation to be set.
   * @param data represents 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) payable public onlyProxyOwner {
    upgradeTo(implementation);
    require(address(this).delegatecall(data));
  }
}

contract OwnableDelegateProxy is OwnedUpgradeabilityProxy {

    constructor(address owner, address initialImplementation, bytes calldata)
        public
    {
        setUpgradeabilityOwner(owner);
        _upgradeTo(initialImplementation);
        require(initialImplementation.delegatecall(calldata));
    }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"initialAddressSet","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"endGrantAuthentication","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"revokeAuthentication","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"pending","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"contracts","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"delegateProxyImplementation","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"proxies","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"startGrantAuthentication","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"registerProxy","outputs":[{"name":"proxy","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"DELAY_PERIOD","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"authAddress","type":"address"}],"name":"grantInitialAuthentication","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

6080604052621275006005556006805460ff1916905534801561002157600080fd5b5060008054600160a060020a03191633600160a060020a0316179055610045610087565b604051809103906000f080158015610061573d6000803e3d6000fd5b5060018054600160a060020a031916600160a060020a0392909216919091179055610097565b60405161085280610f1f83390190565b610e79806100a66000396000f3006080604052600436106100da5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100df5780631a86ac4f1461016957806338b6e4071461019257806353376d1f146101b55780635eebea20146101d657806369dc9ff314610209578063715018a61461022a5780638da5cb5b1461023f57806397204d8e14610270578063c455279114610285578063d4e8e063146102a6578063ddd81f82146102c7578063e71a02e1146102dc578063ef7f3834146102f1578063f2fde38b14610312575b600080fd5b3480156100eb57600080fd5b506100f4610333565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012e578181015183820152602001610116565b50505050905090810190601f16801561015b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561017557600080fd5b5061017e61036a565b604080519115158252519081900360200190f35b34801561019e57600080fd5b506101b3600160a060020a0360043516610373565b005b3480156101c157600080fd5b506101b3600160a060020a0360043516610432565b3480156101e257600080fd5b506101f7600160a060020a036004351661046e565b60408051918252519081900360200190f35b34801561021557600080fd5b5061017e600160a060020a0360043516610480565b34801561023657600080fd5b506101b3610495565b34801561024b57600080fd5b50610254610505565b60408051600160a060020a039092168252519081900360200190f35b34801561027c57600080fd5b50610254610514565b34801561029157600080fd5b50610254600160a060020a0360043516610523565b3480156102b257600080fd5b506101b3600160a060020a036004351661053e565b3480156102d357600080fd5b506102546105bf565b3480156102e857600080fd5b506101f761076f565b3480156102fd57600080fd5b506101b3600160a060020a0360043516610775565b34801561031e57600080fd5b506101b3600160a060020a03600435166107d5565b60408051808201909152601d81527f50726f6a6563742057797665726e2050726f7879205265676973747279000000602082015281565b60065460ff1681565b60005433600160a060020a0390811691161461038e57600080fd5b600160a060020a03811660009081526004602052604090205460ff161580156103ce5750600160a060020a03811660009081526003602052604090205415155b80156103f65750600554600160a060020a038216600090815260036020526040902054429101105b151561040157600080fd5b600160a060020a0316600090815260036020908152604080832083905560049091529020805460ff19166001179055565b60005433600160a060020a0390811691161461044d57600080fd5b600160a060020a03166000908152600460205260409020805460ff19169055565b60036020526000908152604090205481565b60046020526000908152604090205460ff1681565b60005433600160a060020a039081169116146104b057600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a031681565b600154600160a060020a031681565b600260205260009081526040902054600160a060020a031681565b60005433600160a060020a0390811691161461055957600080fd5b600160a060020a03811660009081526004602052604090205460ff161580156105985750600160a060020a038116600090815260036020526040902054155b15156105a357600080fd5b600160a060020a03166000908152600360205260409020429055565b600160a060020a03338116600090815260026020526040812054909116156105e657600080fd5b60015460408051600160a060020a033381811660248401523082166044808501919091528451808503909101815260649093019093526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f485cc955000000000000000000000000000000000000000000000000000000001790529192919091169061067361086d565b8084600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156106dd5781810151838201526020016106c5565b50505050905090810190601f16801561070a5780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f08015801561072d573d6000803e3d6000fd5b5033600160a060020a039081166000908152600260205260409020805473ffffffffffffffffffffffffffffffffffffffff1916918316919091179055919050565b60055481565b60005433600160a060020a0390811691161461079057600080fd5b60065460ff16156107a057600080fd5b6006805460ff199081166001908117909255600160a060020a0390921660009081526004602052604090208054909216179055565b60005433600160a060020a039081169116146107f057600080fd5b600160a060020a038116151561080557600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6040516105d08061087e833901905600608060405234801561001057600080fd5b506040516105d03803806105d08339810160409081528151602083015191830151909201610046836401000000006100e0810204565b61005882640100000000610102810204565b81600160a060020a03168160405180828051906020019080838360005b8381101561008d578181015183820152602001610075565b50505050905090810190601f1680156100ba5780820380516001836020036101000a031916815260200191505b50915050600060405180830381855af491505015156100d857600080fd5b505050610165565b60018054600160a060020a031916600160a060020a0392909216919091179055565b600054600160a060020a038281169116141561011d57600080fd5b60008054600160a060020a031916600160a060020a038316908117825560405190917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b91a250565b61045c806101746000396000f3006080604052600436106100825763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663025313a281146100c85780633659cfe6146100f95780634555d5c91461011c5780634f1ef286146101435780635c60da1b1461019d5780636fde8202146101b2578063f1739cae146101c7575b600061008c6101e8565b9050600160a060020a03811615156100a357600080fd5b60405136600082376000803683855af43d806000843e8180156100c4578184f35b8184fd5b3480156100d457600080fd5b506100dd6101f7565b60408051600160a060020a039092168252519081900360200190f35b34801561010557600080fd5b5061011a600160a060020a0360043516610206565b005b34801561012857600080fd5b50610131610239565b60408051918252519081900360200190f35b60408051602060046024803582810135601f810185900485028601850190965285855261011a958335600160a060020a031695369560449491939091019190819084018382808284375094975061023e9650505050505050565b3480156101a957600080fd5b506100dd6101e8565b3480156101be57600080fd5b506100dd6102f2565b3480156101d357600080fd5b5061011a600160a060020a0360043516610301565b600054600160a060020a031690565b60006102016102f2565b905090565b61020e6101f7565b600160a060020a031633600160a060020a031614151561022d57600080fd5b61023681610391565b50565b600290565b6102466101f7565b600160a060020a031633600160a060020a031614151561026557600080fd5b61026e82610206565b30600160a060020a03168160405180828051906020019080838360005b838110156102a357818101518382015260200161028b565b50505050905090810190601f1680156102d05780820380516001836020036101000a031916815260200191505b50915050600060405180830381855af491505015156102ee57600080fd5b5050565b600154600160a060020a031690565b6103096101f7565b600160a060020a031633600160a060020a031614151561032857600080fd5b600160a060020a038116151561033d57600080fd5b7f5a3e66efaa1e445ebd894728a69d6959842ea1e97bd79b892797106e270efcd96103666101f7565b60408051600160a060020a03928316815291841660208301528051918290030190a161023681610401565b600054600160a060020a03828116911614156103ac57600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316908117825560405190917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b91a250565b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a723058205f26049bbc794226b505f589b2ee1130db54310d79dd8a635c6f6c61e305a7770029a165627a7a72305820dc2224d4fbbe72fcce86b562cbff0e67b6f5393b5032e7aab849f3b282ad198f002960806040526001805460a060020a60ff021916905534801561002057600080fd5b50610822806100306000396000f3006080604052600436106100ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631b0f7ba981146100ef5780633f801f911461016f5780634555d5c9146101dd578063485cc955146102045780634c93505f1461022b5780634f8632ba146102455780635c60da1b1461027657806363d256ce1461028b5780636fde8202146102a05780637b103999146102b55780638f4ffcb1146102ca575b604080513481529051600160a060020a033316917fa419615bc8fda4c87663805ee2a3597a6d71c1d476911d9892f340d965bc7bf1919081900360200190a2005b3480156100fb57600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261015b948235600160a060020a0316946024803560ff169536959460649492019190819084018382808284375094975061033a9650505050505050565b604080519115158252519081900360200190f35b34801561017b57600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526101db948235600160a060020a0316946024803560ff169536959460649492019190819084018382808284375094975061052e9650505050505050565b005b3480156101e957600080fd5b506101f2610549565b60408051918252519081900360200190f35b34801561021057600080fd5b506101db600160a060020a036004358116906024351661054e565b34801561023757600080fd5b506101db60043515156105c4565b34801561025157600080fd5b5061025a610643565b60408051600160a060020a039092168252519081900360200190f35b34801561028257600080fd5b5061025a610652565b34801561029757600080fd5b5061015b610661565b3480156102ac57600080fd5b5061025a610671565b3480156102c157600080fd5b5061025a610680565b3480156102d657600080fd5b50604080516020601f6064356004818101359283018490048402850184019095528184526101db94600160a060020a0381358116956024803596604435909316953695608494920191819084018382808284375094975061068f9650505050505050565b60025460009033600160a060020a03908116911614806103ff575060035460a060020a900460ff161580156103ff5750600354604080517f69dc9ff3000000000000000000000000000000000000000000000000000000008152600160a060020a033381166004830152915191909216916369dc9ff39160248083019260209291908290030181600087803b1580156103d257600080fd5b505af11580156103e6573d6000803e3d6000fd5b505050506040513d60208110156103fc57600080fd5b50515b151561040a57600080fd5b600083600181111561041857fe5b141561049c5783600160a060020a03168260405180828051906020019080838360005b8381101561045357818101518382015260200161043b565b50505050905090810190601f1680156104805780820380516001836020036101000a031916815260200191505b509150506000604051808303816000865af19150509050610527565b60018360018111156104aa57fe5b14156105275783600160a060020a03168260405180828051906020019080838360005b838110156104e55781810151838201526020016104cd565b50505050905090810190601f1680156105125780820380516001836020036101000a031916815260200191505b50915050600060405180830381855af4925050505b9392505050565b61053983838361033a565b151561054457600080fd5b505050565b600290565b60015460a060020a900460ff161561056557600080fd5b6001805474ff0000000000000000000000000000000000000000191660a060020a17905560028054600160a060020a0393841673ffffffffffffffffffffffffffffffffffffffff199182161790915560038054929093169116179055565b60025433600160a060020a039081169116146105df57600080fd5b6003805482151560a060020a810274ff0000000000000000000000000000000000000000199092169190911790915560408051918252517f2165014523a6f4135deffed62d70149aad59b64de5aac51e3abbcbe2a83e2f7e9181900360200190a150565b600254600160a060020a031681565b600054600160a060020a031690565b60035460a060020a900460ff1681565b600154600160a060020a031690565b600354600160a060020a031681565b604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038681166004830152308116602483015260448201869052915184928316916323b872dd9160648083019260209291908290030181600087803b15801561070357600080fd5b505af1158015610717573d6000803e3d6000fd5b505050506040513d602081101561072d57600080fd5b5051151561073a57600080fd5b82600160a060020a031685600160a060020a03167fd65b48fd35864b3528d38e44760be5553248f89bf3ff6b06cca57817cc2650bf86856040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156107b457818101518382015260200161079c565b50505050905090810190601f1680156107e15780820380516001836020036101000a031916815260200191505b50935050505060405180910390a350505050505600a165627a7a72305820081159724a86e228bc0881bf8e78a8d241b156f02531306a6dc375bfb55144a60029

Deployed Bytecode

0x6080604052600436106100da5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100df5780631a86ac4f1461016957806338b6e4071461019257806353376d1f146101b55780635eebea20146101d657806369dc9ff314610209578063715018a61461022a5780638da5cb5b1461023f57806397204d8e14610270578063c455279114610285578063d4e8e063146102a6578063ddd81f82146102c7578063e71a02e1146102dc578063ef7f3834146102f1578063f2fde38b14610312575b600080fd5b3480156100eb57600080fd5b506100f4610333565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012e578181015183820152602001610116565b50505050905090810190601f16801561015b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561017557600080fd5b5061017e61036a565b604080519115158252519081900360200190f35b34801561019e57600080fd5b506101b3600160a060020a0360043516610373565b005b3480156101c157600080fd5b506101b3600160a060020a0360043516610432565b3480156101e257600080fd5b506101f7600160a060020a036004351661046e565b60408051918252519081900360200190f35b34801561021557600080fd5b5061017e600160a060020a0360043516610480565b34801561023657600080fd5b506101b3610495565b34801561024b57600080fd5b50610254610505565b60408051600160a060020a039092168252519081900360200190f35b34801561027c57600080fd5b50610254610514565b34801561029157600080fd5b50610254600160a060020a0360043516610523565b3480156102b257600080fd5b506101b3600160a060020a036004351661053e565b3480156102d357600080fd5b506102546105bf565b3480156102e857600080fd5b506101f761076f565b3480156102fd57600080fd5b506101b3600160a060020a0360043516610775565b34801561031e57600080fd5b506101b3600160a060020a03600435166107d5565b60408051808201909152601d81527f50726f6a6563742057797665726e2050726f7879205265676973747279000000602082015281565b60065460ff1681565b60005433600160a060020a0390811691161461038e57600080fd5b600160a060020a03811660009081526004602052604090205460ff161580156103ce5750600160a060020a03811660009081526003602052604090205415155b80156103f65750600554600160a060020a038216600090815260036020526040902054429101105b151561040157600080fd5b600160a060020a0316600090815260036020908152604080832083905560049091529020805460ff19166001179055565b60005433600160a060020a0390811691161461044d57600080fd5b600160a060020a03166000908152600460205260409020805460ff19169055565b60036020526000908152604090205481565b60046020526000908152604090205460ff1681565b60005433600160a060020a039081169116146104b057600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a031681565b600154600160a060020a031681565b600260205260009081526040902054600160a060020a031681565b60005433600160a060020a0390811691161461055957600080fd5b600160a060020a03811660009081526004602052604090205460ff161580156105985750600160a060020a038116600090815260036020526040902054155b15156105a357600080fd5b600160a060020a03166000908152600360205260409020429055565b600160a060020a03338116600090815260026020526040812054909116156105e657600080fd5b60015460408051600160a060020a033381811660248401523082166044808501919091528451808503909101815260649093019093526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f485cc955000000000000000000000000000000000000000000000000000000001790529192919091169061067361086d565b8084600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156106dd5781810151838201526020016106c5565b50505050905090810190601f16801561070a5780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f08015801561072d573d6000803e3d6000fd5b5033600160a060020a039081166000908152600260205260409020805473ffffffffffffffffffffffffffffffffffffffff1916918316919091179055919050565b60055481565b60005433600160a060020a0390811691161461079057600080fd5b60065460ff16156107a057600080fd5b6006805460ff199081166001908117909255600160a060020a0390921660009081526004602052604090208054909216179055565b60005433600160a060020a039081169116146107f057600080fd5b600160a060020a038116151561080557600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6040516105d08061087e833901905600608060405234801561001057600080fd5b506040516105d03803806105d08339810160409081528151602083015191830151909201610046836401000000006100e0810204565b61005882640100000000610102810204565b81600160a060020a03168160405180828051906020019080838360005b8381101561008d578181015183820152602001610075565b50505050905090810190601f1680156100ba5780820380516001836020036101000a031916815260200191505b50915050600060405180830381855af491505015156100d857600080fd5b505050610165565b60018054600160a060020a031916600160a060020a0392909216919091179055565b600054600160a060020a038281169116141561011d57600080fd5b60008054600160a060020a031916600160a060020a038316908117825560405190917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b91a250565b61045c806101746000396000f3006080604052600436106100825763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663025313a281146100c85780633659cfe6146100f95780634555d5c91461011c5780634f1ef286146101435780635c60da1b1461019d5780636fde8202146101b2578063f1739cae146101c7575b600061008c6101e8565b9050600160a060020a03811615156100a357600080fd5b60405136600082376000803683855af43d806000843e8180156100c4578184f35b8184fd5b3480156100d457600080fd5b506100dd6101f7565b60408051600160a060020a039092168252519081900360200190f35b34801561010557600080fd5b5061011a600160a060020a0360043516610206565b005b34801561012857600080fd5b50610131610239565b60408051918252519081900360200190f35b60408051602060046024803582810135601f810185900485028601850190965285855261011a958335600160a060020a031695369560449491939091019190819084018382808284375094975061023e9650505050505050565b3480156101a957600080fd5b506100dd6101e8565b3480156101be57600080fd5b506100dd6102f2565b3480156101d357600080fd5b5061011a600160a060020a0360043516610301565b600054600160a060020a031690565b60006102016102f2565b905090565b61020e6101f7565b600160a060020a031633600160a060020a031614151561022d57600080fd5b61023681610391565b50565b600290565b6102466101f7565b600160a060020a031633600160a060020a031614151561026557600080fd5b61026e82610206565b30600160a060020a03168160405180828051906020019080838360005b838110156102a357818101518382015260200161028b565b50505050905090810190601f1680156102d05780820380516001836020036101000a031916815260200191505b50915050600060405180830381855af491505015156102ee57600080fd5b5050565b600154600160a060020a031690565b6103096101f7565b600160a060020a031633600160a060020a031614151561032857600080fd5b600160a060020a038116151561033d57600080fd5b7f5a3e66efaa1e445ebd894728a69d6959842ea1e97bd79b892797106e270efcd96103666101f7565b60408051600160a060020a03928316815291841660208301528051918290030190a161023681610401565b600054600160a060020a03828116911614156103ac57600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316908117825560405190917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b91a250565b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a723058205f26049bbc794226b505f589b2ee1130db54310d79dd8a635c6f6c61e305a7770029a165627a7a72305820dc2224d4fbbe72fcce86b562cbff0e67b6f5393b5032e7aab849f3b282ad198f0029

Swarm Source

bzzr://081159724a86e228bc0881bf8e78a8d241b156f02531306a6dc375bfb55144a6

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Chain Token Portfolio % Price Amount Value
BSC54.74%$0.00010867,504,500,000$7,272,259.79
BSC44.70%$0.00031618,800,000,000$5,939,074.16
BSC0.08%$575.9517.4132$10,029.21
BSC0.04%$2,755.982.1154$5,830.01
BSC<0.01%$0.04632310,000$463.23
BSC<0.01%$0.02563310,000$256.33
BSC<0.01%$1158.6$158.6
BSC<0.01%$0.45406510$4.54
BSC<0.01%$0.000005804,828$3.97
BSC<0.01%$1.842.1154$3.89
BSC<0.01%$0.09884322.0188$2.18
BSC<0.01%$0.3039961.0584$0.3217
BSC<0.01%$0.0278093.8105$0.1059
ETH0.12%$0.28597155,338.0743$15,825.06
ETH0.10%$2,730.034.8927$13,357.26
ETH0.08%$0.99973610,907.5078$10,904.63
ETH0.04%$26.53198.3746$5,262.88
ETH0.03%$14,091.8276$4,091.83
ETH0.01%$11,910.2636$1,910.26
ETH<0.01%$0.2142723,683.682$789.31
ETH<0.01%$0.3031281,859.2877$563.6
ETH<0.01%$0.446377737.1704$329.06
ETH<0.01%$0.995166321.0961$319.54
ETH<0.01%$1.47184.9209$271.03
ETH<0.01%$0.661022400$264.41
ETH<0.01%$0.00001516,500,022.2631$251.96
ETH<0.01%$19.0111.8518$225.3
ETH<0.01%$0.00760426,433.3333$200.99
ETH<0.01%$579.130.1731$100.27
ETH<0.01%$0.314909264.7102$83.36
ETH<0.01%$0.0215293,462.5699$74.55
ETH<0.01%$48.770.97$47.31
ETH<0.01%$0.068547294.6931$20.2
ETH<0.01%$0.099122133.49$13.23
ETH<0.01%$0.02667435.9276$11.63
ETH<0.01%$3.980.9526$3.79
ETH<0.01%$0.019923165.209$3.29
ETH<0.01%$0.01107199$1.1
ETH<0.01%$0.7771041.3473$1.05
ETH<0.01%$0.009332100$0.9331
ETH<0.01%$0.001022739.3131$0.7558
ETH<0.01%$0.000006100,000$0.636
ETH<0.01%<$0.00000177,053,420.0918$0.6089
POL<0.01%$2,744.420.4621$1,268.1
POL<0.01%$0.300722272.2688$81.88
POL<0.01%$116.9362$16.94
ARB<0.01%$2,729.450.2201$600.7
AVAX<0.01%$25.265.1417$129.88
FTM<0.01%$0.443404142.4401$63.16
CRONOS<0.01%$135.7849$35.78
CRONOS<0.01%$0.0983772$0.196754
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.