ETH Price: $3,392.67 (+4.44%)
Gas: 2 Gwei

Contract

0x2D29b490eeEf16F2EBdfC08a637Dd0231DDd5a88
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Proxy Assert142568352022-02-22 16:09:13887 days ago1645546153IN
0x2D29b490...31DDd5a88
0 ETH0.04679789122.76049403
Proxy Assert142543992022-02-22 7:03:10888 days ago1645513390IN
0x2D29b490...31DDd5a88
0 ETH0.0255558367.04453977
Proxy Assert142543772022-02-22 6:58:31888 days ago1645513111IN
0x2D29b490...31DDd5a88
0 ETH0.11684574101.55792196
Proxy Assert142543572022-02-22 6:51:55888 days ago1645512715IN
0x2D29b490...31DDd5a88
0 ETH0.0484362780.60058859
Proxy Assert142540392022-02-22 5:36:45888 days ago1645508205IN
0x2D29b490...31DDd5a88
0 ETH0.1697112975.43515374
Proxy Assert142537582022-02-22 4:33:41888 days ago1645504421IN
0x2D29b490...31DDd5a88
0 ETH0.0238424862.54372797
Proxy Assert142537302022-02-22 4:28:50888 days ago1645504130IN
0x2D29b490...31DDd5a88
0 ETH0.1005212187.36925603
Proxy Assert142536292022-02-22 4:05:01888 days ago1645502701IN
0x2D29b490...31DDd5a88
0 ETH0.04871012127.77667559
Proxy Assert142536042022-02-22 3:58:02888 days ago1645502282IN
0x2D29b490...31DDd5a88
0 ETH0.07218587.96580115
Proxy Assert142535952022-02-22 3:55:52888 days ago1645502152IN
0x2D29b490...31DDd5a88
0 ETH0.1715985576.28216307
Proxy Assert142390892022-02-19 22:11:36890 days ago1645308696IN
0x2D29b490...31DDd5a88
0 ETH0.011958192.30283494
Proxy Assert142390802022-02-19 22:10:07890 days ago1645308607IN
0x2D29b490...31DDd5a88
0 ETH0.0531769384.8757207

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block From To
122001912021-04-08 16:12:261207 days ago1617898346  Contract Creation0 ETH
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x0A08E605...69EA5A5b3
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
OwnableDelegateProxy

Compiler Version
v0.4.23+commit.124ca40d

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2021-12-19
*/

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 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":"proxyOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"implementation","type":"address"}],"name":"upgradeTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"proxyType","outputs":[{"name":"proxyTypeId","type":"uint256"}],"payable":false,"stateMutability":"pure","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":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"upgradeabilityOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferProxyOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"owner","type":"address"},{"name":"initialImplementation","type":"address"},{"name":"calldata","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"previousOwner","type":"address"},{"indexed":false,"name":"newOwner","type":"address"}],"name":"ProxyOwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"implementation","type":"address"}],"name":"Upgraded","type":"event"}]

Deployed Bytecode

0x6080604052600436106100825763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663025313a281146100c85780633659cfe6146100f95780634555d5c91461011c5780634f1ef286146101435780635c60da1b1461019d5780636fde8202146101b2578063f1739cae146101c7575b600061008c6101e8565b9050600160a060020a03811615156100a357600080fd5b60405136600082376000803683855af43d806000843e8180156100c4578184f35b8184fd5b3480156100d457600080fd5b506100dd6101f7565b60408051600160a060020a039092168252519081900360200190f35b34801561010557600080fd5b5061011a600160a060020a0360043516610206565b005b34801561012857600080fd5b50610131610239565b60408051918252519081900360200190f35b60408051602060046024803582810135601f810185900485028601850190965285855261011a958335600160a060020a031695369560449491939091019190819084018382808284375094975061023e9650505050505050565b3480156101a957600080fd5b506100dd6101e8565b3480156101be57600080fd5b506100dd6102f2565b3480156101d357600080fd5b5061011a600160a060020a0360043516610301565b600054600160a060020a031690565b60006102016102f2565b905090565b61020e6101f7565b600160a060020a031633600160a060020a031614151561022d57600080fd5b61023681610391565b50565b600290565b6102466101f7565b600160a060020a031633600160a060020a031614151561026557600080fd5b61026e82610206565b30600160a060020a03168160405180828051906020019080838360005b838110156102a357818101518382015260200161028b565b50505050905090810190601f1680156102d05780820380516001836020036101000a031916815260200191505b50915050600060405180830381855af491505015156102ee57600080fd5b5050565b600154600160a060020a031690565b6103096101f7565b600160a060020a031633600160a060020a031614151561032857600080fd5b600160a060020a038116151561033d57600080fd5b7f5a3e66efaa1e445ebd894728a69d6959842ea1e97bd79b892797106e270efcd96103666101f7565b60408051600160a060020a03928316815291841660208301528051918290030190a161023681610401565b600054600160a060020a03828116911614156103ac57600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316908117825560405190917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b91a250565b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a723058205f26049bbc794226b505f589b2ee1130db54310d79dd8a635c6f6c61e305a7770029

Deployed Bytecode Sourcemap

4682:323:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1637:13;1653:16;:14;:16::i;:::-;1637:32;-1:-1:-1;;;;;;1684:19:0;;;;1676:28;;;;;;1748:4;1742:11;1782:12;1779:1;1774:3;1761:34;1864:1;1861;1847:12;1842:3;1835:5;1830:3;1817:49;1886:14;1931:4;1928:1;1923:3;1908:28;1953:6;1967:28;;;;2025:4;2020:3;2013:17;1967:28;1988:4;1983:3;1976:17;3248:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3248:93:0;;;;;;;;-1:-1:-1;;;;;3248:93:0;;;;;;;;;;;;;;3929:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3929:104:0;-1:-1:-1;;;;;3929:104:0;;;;;;;897:84;;8:9:-1;5:2;;;30:1;27;20:12;5:2;897:84:0;;;;;;;;;;;;;;;;;;;;4495:178;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4495:178:0;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4495:178:0;;-1:-1:-1;4495:178:0;;-1:-1:-1;;;;;;;4495:178:0;698:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;698:91:0;;;;277:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;277:101:0;;;;3508:216;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3508:216:0;-1:-1:-1;;;;;3508:216:0;;;;;698:91;745:7;768:15;-1:-1:-1;;;;;768:15:0;698:91;:::o;3248:93::-;3291:7;3314:21;:19;:21::i;:::-;3307:28;;3248:93;:::o;3929:104::-;3108:12;:10;:12::i;:::-;-1:-1:-1;;;;;3094:26:0;:10;-1:-1:-1;;;;;3094:26:0;;3086:35;;;;;;;;4001:26;4012:14;4001:10;:26::i;:::-;3929:104;:::o;897:84::-;974:1;897:84;:::o;4495:178::-;3108:12;:10;:12::i;:::-;-1:-1:-1;;;;;3094:26:0;:10;-1:-1:-1;;;;;3094:26:0;;3086:35;;;;;;;;4594:25;4604:14;4594:9;:25::i;:::-;4642:4;-1:-1:-1;;;;;4634:26:0;4661:4;4634:32;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4634:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4626:41;;;;;;;;4495:178;;:::o;277:101::-;352:20;;-1:-1:-1;;;;;352:20:0;277:101;:::o;3508:216::-;3108:12;:10;:12::i;:::-;-1:-1:-1;;;;;3094:26:0;:10;-1:-1:-1;;;;;3094:26:0;;3086:35;;;;;;;;-1:-1:-1;;;;;3595:22:0;;;;3587:31;;;;;;3630:49;3656:12;:10;:12::i;:::-;3630:49;;;-1:-1:-1;;;;;3630:49:0;;;;;;;;;;;;;;;;;;;;;3686:32;3709:8;3686:22;:32::i;2787:183::-;2855:15;;-1:-1:-1;;;;;2855:33:0;;;:15;;:33;;2847:42;;;;;;2896:15;:32;;-1:-1:-1;;2896:32:0;-1:-1:-1;;;;;2896:32:0;;;;;;;2940:24;;2896:32;;2940:24;;;2787:183;:::o;439:131::-;519:20;:45;;-1:-1:-1;;519:45:0;-1:-1:-1;;;;;519:45:0;;;;;;;;;;439:131::o

Swarm Source

bzzr://5f26049bbc794226b505f589b2ee1130db54310d79dd8a635c6f6c61e305a777

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
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.