Contract 0xe50fa9b3c56ffb159cb0fca61f5c9d750e8128c8 19

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x47837e1ab6510ef3acc1b902a1b5526d59dcdf2852b64ad38f3c72c03f1d4b1bApprove1859449192024-03-01 7:44:097 mins ago0xfa21539b77e22840a0e8cddef774e8a023015a7f IN  Aave: aWETH Token V30 ETH0.00007867 0.1
0xa012f4ba0064ebb7271f8ba0a1a6fc0affc76acd539de01368d18c36d973f33aApprove1859445102024-03-01 7:42:289 mins ago0xfa21539b77e22840a0e8cddef774e8a023015a7f IN  Aave: aWETH Token V30 ETH0.00008283 0.1
0x8b0e20dc882e05c1431b67e105b52095676b2c6f66945915c71385bd090c985fApprove1859437202024-03-01 7:39:0912 mins ago0x0c29e4841f5855ee81151ac2d82a9c5c85723f70 IN  Aave: aWETH Token V30 ETH0.00008285 0.1
0x0e8bb5be68df8e33935c6c353538f72d94a7b0dd4e9070252c8decfdaa3f7196Approve1859420972024-03-01 7:32:2019 mins ago0xd75938521b5fd24ab6c256efeff2683debab5454 IN  Aave: aWETH Token V30 ETH0.00006541 0.1
0x83547afd0e7fa8bac646751167b23561e8ce2bea4288ec292f764413f670a7dfApprove1859374052024-03-01 7:12:4139 mins ago0xeb40d71b26e3df076883da87345c05a3b880acda IN  Aave: aWETH Token V30 ETH0.000079570.1
0x56d9109329238254ba8709f5fc22c08c547e1fb03f86c4f3f0b6f0cf476f87f4Approve1859359262024-03-01 7:06:2145 mins ago0x421785a7416b8e840d3c4d9df3c8a5d5aabefad9 IN  Aave: aWETH Token V30 ETH0.00009929 0.1
0x5b67967634da4b955c496a91dd6c4f439285012947bc7ade330d946e921100adApprove1859313012024-03-01 6:46:391 hr 5 mins ago0x25bec626a68d58c8a4286c4a728b5ffe8007fc13 IN  Aave: aWETH Token V30 ETH0.00010535 0.1
0x12dcf49ef5854803617c91e08cdf768f12439bf70f870ec8a6aa20de8ffd99ebApprove1859310042024-03-01 6:45:221 hr 6 mins ago0x25bec626a68d58c8a4286c4a728b5ffe8007fc13 IN  Aave: aWETH Token V30 ETH0.00010706 0.1
0x15254d031857e06d6e21cd85cd0bd00aefffcb4a691cc7b78f2ab25c8df6c078Approve1859291292024-03-01 6:37:251 hr 14 mins ago0x9823f563c2e460567873ec05c240e3a4a4f1eeae IN  Aave: aWETH Token V30 ETH0.000107170.1
0xd4d605f85aaee5e5bd58e6bdc839f9f4522bee076ecfc8c2960b4ec82ae06341Approve1859266992024-03-01 6:26:561 hr 24 mins ago0x33fe073706f83d94cddbb35d3016f640f3446b3a IN  Aave: aWETH Token V30 ETH0.00010315 0.1
0x2d840669d9356ec1661a1eff717573f1ff3bb7965ad5005cc801050a5c97202bApprove1859263402024-03-01 6:25:261 hr 26 mins ago0x33fe073706f83d94cddbb35d3016f640f3446b3a IN  Aave: aWETH Token V30 ETH0.00006565 0.1
0x49a87236bd23bb2e0b8ee5b723c4397127a660ae32d8248d7c5b9bc0d6c3e4adApprove1859261272024-03-01 6:24:321 hr 27 mins ago0x33fe073706f83d94cddbb35d3016f640f3446b3a IN  Aave: aWETH Token V30 ETH0.00006565 0.1
0x695d4384ae67aa49d255782caa0a8e3a1985f8896e9ae02fdf9ca7b02413ea4aApprove1859190182024-03-01 5:54:191 hr 57 mins ago0x0aa54ab10c4591455248144805e38079fd0b63fe IN  Aave: aWETH Token V30 ETH0.00008472 0.1
0xa5ffc6e38d1a908cda2f65ab4706be84a356778cdb8b6240b41ee7094c48bb82Approve1859164362024-03-01 5:43:022 hrs 8 mins ago0x263713cd16072b993b8734c63fe9fe1898511bdd IN  Aave: aWETH Token V30 ETH0.00009007 0.1
0x50e8df8727b63814731026eb4caa19bf925754c9b255c10d4a23943ec82e1e49Approve1859145402024-03-01 5:34:432 hrs 17 mins ago0x6587c148bd075587d90646c4e66b03b70a4d5ff6 IN  Aave: aWETH Token V30 ETH0.00009751 0.1
0xe9687465e6498a1dfb0f6d598aec50900c0978b2bd6bb4872e290dbdc6cf9d8eApprove1859127272024-03-01 5:26:462 hrs 24 mins ago0x9824697f7c12cabada9b57842060931c48dea969 IN  Aave: aWETH Token V30 ETH0.000101810.1
0x754885df8326a86e60b43e5312d92bcd3df94e667ac4288cb61fdd188676789fApprove1859002752024-03-01 4:31:403 hrs 20 mins ago0xe864c17133f63c830e79d6da381e054ddf5f9f83 IN  Aave: aWETH Token V30 ETH0.00007887 0.1
0x9ed761e145b2dec5c688651b7cec332df9f9df4068b2c677b6975a43a0acdc28Approve1858999772024-03-01 4:30:273 hrs 21 mins ago0xae572d5dd067b8c47941008a8abfcc337580893e IN  Aave: aWETH Token V30 ETH0.00008063 0.1
0xf4f123e191b52c8ceaed435f84c6b6a42edbe1cdc87a2bf805013900314dfaddApprove1858996652024-03-01 4:29:083 hrs 22 mins ago0x6d1cb5da5f00cd3c9aef83a30222e65bea2aa2c3 IN  Aave: aWETH Token V30 ETH0.00008143 0.1
0xb4d86ff19d93448e7a1eb6043f61e740605e262e17777833088750d6e127a4bbApprove1858950892024-03-01 4:09:433 hrs 42 mins ago0x7a9b8ba150ea81b4f767a54a39a2329525bb7cf7 IN  Aave: aWETH Token V30 ETH0.00010934 0.1
0xedaf955b2961fe84ff1c201dd5b7c17408bd50455a764c1372dfcb7bc7e9cdd9Approve1858937952024-03-01 4:04:053 hrs 47 mins ago0xec7c7007253941c47898b9ba49c0a4b04bfa8a47 IN  Aave: aWETH Token V30 ETH0.000101030.1
0x0b998b71b31047ca04d5b3118599d6297e1378ddc87926af72716c686efcac12Approve1858896172024-03-01 3:46:024 hrs 5 mins ago0x07c0d25e056fcba77e900992b4a00f0b6b40a44a IN  Aave: aWETH Token V30 ETH0.00010374 0.1
0xa27c5b59189a5861c70f9071c1aebcfcb87f0c06d5ae44b9e24b457992f53441Approve1858893162024-03-01 3:44:484 hrs 6 mins ago0xec7c7007253941c47898b9ba49c0a4b04bfa8a47 IN  Aave: aWETH Token V30 ETH0.000090160.1
0x6fe5906a3666c5a79f82a3b29e8e6a3a23537efc9991c29b54c311b35ddfbf08Approve1858892622024-03-01 3:44:344 hrs 7 mins ago0xc0f46cd265249918bf9b80e5d811351df1130e68 IN  Aave: aWETH Token V30 ETH0.00009159 0.1
0x2316552ec5a75b08d24b6f86e099a470f450e9e11229961e78aa0b79d2dab3cbApprove1858746492024-03-01 2:42:115 hrs 9 mins ago0x45ee4d7ca506ef5edacea2c6e216c921280d4e31 IN  Aave: aWETH Token V30 ETH0.00009987 0.1
[ Download CSV Export 

OVERVIEW

Aave is a decentralized non-custodial liquidity protocol where users can participate as depositors or borrowers

Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x1587263ea82d031c18b0318bbf18c3cefe92a7ea65c186cc3a02da1b9622da1c720861072023-03-21 10:16:31345 days 21 hrs ago Aave: aWETH Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 ETH
0x1587263ea82d031c18b0318bbf18c3cefe92a7ea65c186cc3a02da1b9622da1c720861072023-03-21 10:16:31345 days 21 hrs ago Aave: Pool V3 Aave: aWETH Token V30 ETH
0x590190d96b991de67973f06752f31e2d75ad9c4f85396ecc6083aac011218f5c720860892023-03-21 10:16:27345 days 21 hrs ago Aave: aWETH Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 ETH
0x590190d96b991de67973f06752f31e2d75ad9c4f85396ecc6083aac011218f5c720860892023-03-21 10:16:27345 days 21 hrs ago 0x6cb48ade65fe10fd55231b661adbb00ab4a7d8bb Aave: aWETH Token V30 ETH
0x590190d96b991de67973f06752f31e2d75ad9c4f85396ecc6083aac011218f5c720860892023-03-21 10:16:27345 days 21 hrs ago Aave: aWETH Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 ETH
0x590190d96b991de67973f06752f31e2d75ad9c4f85396ecc6083aac011218f5c720860892023-03-21 10:16:27345 days 21 hrs ago 0xc0ac97a0ea320aa1e32e9ded16fb580ef3c078da Aave: aWETH Token V30 ETH
0x590190d96b991de67973f06752f31e2d75ad9c4f85396ecc6083aac011218f5c720860892023-03-21 10:16:27345 days 21 hrs ago Aave: aWETH Token V3 Aave: Pool V30 ETH
0x590190d96b991de67973f06752f31e2d75ad9c4f85396ecc6083aac011218f5c720860892023-03-21 10:16:27345 days 21 hrs ago Aave: aWETH Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 ETH
0x590190d96b991de67973f06752f31e2d75ad9c4f85396ecc6083aac011218f5c720860892023-03-21 10:16:27345 days 21 hrs ago 0xc0ac97a0ea320aa1e32e9ded16fb580ef3c078da Aave: aWETH Token V30 ETH
0x0a27efc180a06cc9d4a1f469faba33fd65dff7479bab68778b502186cfb8eb39720860672023-03-21 10:16:20345 days 21 hrs ago Aave: aWETH Token V3 Wrapped Ether0 ETH
0x0a27efc180a06cc9d4a1f469faba33fd65dff7479bab68778b502186cfb8eb39720860672023-03-21 10:16:20345 days 21 hrs ago Aave: aWETH Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 ETH
0x0a27efc180a06cc9d4a1f469faba33fd65dff7479bab68778b502186cfb8eb39720860672023-03-21 10:16:20345 days 21 hrs ago Aave: Pool V3 Aave: aWETH Token V30 ETH
0x3b785a1026c06581786fcb968d00528298455a7abb2a598ad63dad8c761c0b14720860672023-03-21 10:16:20345 days 21 hrs ago Aave: aWETH Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 ETH
0x3b785a1026c06581786fcb968d00528298455a7abb2a598ad63dad8c761c0b14720860672023-03-21 10:16:20345 days 21 hrs ago 0x6cb48ade65fe10fd55231b661adbb00ab4a7d8bb Aave: aWETH Token V30 ETH
0x3b785a1026c06581786fcb968d00528298455a7abb2a598ad63dad8c761c0b14720860672023-03-21 10:16:20345 days 21 hrs ago Aave: aWETH Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 ETH
0x3b785a1026c06581786fcb968d00528298455a7abb2a598ad63dad8c761c0b14720860672023-03-21 10:16:20345 days 21 hrs ago 0xc0ac97a0ea320aa1e32e9ded16fb580ef3c078da Aave: aWETH Token V30 ETH
0x3b785a1026c06581786fcb968d00528298455a7abb2a598ad63dad8c761c0b14720860672023-03-21 10:16:20345 days 21 hrs ago Aave: aWETH Token V3 Aave: Pool V30 ETH
0x3b785a1026c06581786fcb968d00528298455a7abb2a598ad63dad8c761c0b14720860672023-03-21 10:16:20345 days 21 hrs ago Aave: aWETH Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 ETH
0x3b785a1026c06581786fcb968d00528298455a7abb2a598ad63dad8c761c0b14720860672023-03-21 10:16:20345 days 21 hrs ago 0xc0ac97a0ea320aa1e32e9ded16fb580ef3c078da Aave: aWETH Token V30 ETH
0x0ae0d71f2b8802217e0bf251af8271c4034f944a2a0c44915fa0b47246c148b5720860562023-03-21 10:16:18345 days 21 hrs ago Aave: aWETH Token V3 Wrapped Ether0 ETH
0x0ae0d71f2b8802217e0bf251af8271c4034f944a2a0c44915fa0b47246c148b5720860562023-03-21 10:16:18345 days 21 hrs ago Aave: aWETH Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 ETH
0x0ae0d71f2b8802217e0bf251af8271c4034f944a2a0c44915fa0b47246c148b5720860562023-03-21 10:16:18345 days 21 hrs ago Aave: Pool V3 Aave: aWETH Token V30 ETH
0x7d0b64f79a2e210ae63deda3cf34dd7988cf115b02d7a5717571535e352dabdf720859982023-03-21 10:16:03345 days 21 hrs ago Aave: aWETH Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 ETH
0x7d0b64f79a2e210ae63deda3cf34dd7988cf115b02d7a5717571535e352dabdf720859982023-03-21 10:16:03345 days 21 hrs ago Aave: Pool V3 Aave: aWETH Token V30 ETH
0x7a55bea28dbc32ae6ae84d360905bdc6bed99d6cb2f078b1f5ba12094db56050720859942023-03-21 10:16:02345 days 21 hrs ago Aave: aWETH Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 ETH
[ Download CSV Export 
Latest 9 Deposits
L2 Txn Hash L1 Deposit Txn Value Token
0xabf752175713c60853b485931493852a86e9fc629e37a79dc32ca1a73f69caa42024-01-13 11:48:1147 days 20 hrs ago0xf1236b16b16f072e4e3ce2050ee2d1dc94af9ef784023d2e6d06f06c5b84eeaa0.00698 Wrapped Ethe... (WETH)
0x3f39f6836b6815be0c1b678035f39659505a15adfe456c198693ab2734690ef42023-12-12 18:24:2379 days 13 hrs ago0xb0c2489d1acf7bcbec2504e7e94fbdbaf7a5fb977502440d2c8febb6ecc6f3660.1966 Wrapped Ethe... (WETH)
0xca4b7df82513f7ce9323959acf73bf35f1f6bd20ef7242d65b479803402cb6a42023-12-04 19:58:1187 days 11 hrs ago0x8c6bafb17c99eb38f907bcadaa017cd0ac6ec3c8a8f742c8f9d0f8c0ce2d84c70.2465 Wrapped Ethe... (WETH)
0x978ee73d2e50c99b8eae1a134921ce896b30ec839ccc56ef9204fbee9dd9f7192023-11-22 1:21:23100 days 6 hrs ago0x6f8d2f3363327118426ef1d1bf954d3c9cd38dd29dd2478927997c1700acc21e0.022489875564455161 Wrapped Ethe... (WETH)
0x4bd740902f7962e95532836fc8a6051164b3efe0f2a639beacb3518555e59c642023-11-20 19:51:59101 days 11 hrs ago0x209bd47401f6e948c3638176909d8af05f4d642a8504946851ea661603b9a13f0.00199 Wrapped Ethe... (WETH)
0x5bef3139cc9711f35abe44943da74a8d1d3f1516dff7da10a6aa1608bab792742023-10-18 21:34:23134 days 10 hrs ago0x50d92d1f2f9a271a319f7b9ffcf218a7c92c65dfd69e557921d3de4d5bf8d5d80.007 Wrapped Ethe... (WETH)
0xfe7b9a93b1d527c12b01bf993670564d9fe863f051ea93432dd11f8826916ffc2023-10-03 16:37:11149 days 15 hrs ago0x8e32332addabeb28d8458be32da076d0b3098de7fdb4cc8916b5d171667d57e40.247 Wrapped Ethe... (WETH)
0x149d7435838e64e70e5ee66ab949a1a49400fb18a44c7c07661a1c3608d5760d2023-10-02 16:45:35150 days 15 hrs ago0x9cd50e2c4265a2a27815899fd2facb76c49db9a09f12a956aea3ed84313fad200.247 Wrapped Ethe... (WETH)
0x49eceda472e795e060ee7979b49158b33790f639f773018cda04a1e2255742f52023-09-29 22:02:47153 days 9 hrs ago0x6b32fd236241c9f79f1bfefe8dbafc67a9ea81eb3f34246420e6fc7a89f107d80.097 Wrapped Ethe... (WETH)
[ Download CSV Export 
Loading

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

Contract Name:
InitializableImmutableAdminUpgradeabilityProxy

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 100000 runs

Other Settings:
default evmVersion
File 1 of 6 : InitializableImmutableAdminUpgradeabilityProxy.sol
// SPDX-License-Identifier: AGPL-3.0
pragma solidity 0.8.10;

import {InitializableUpgradeabilityProxy} from '../../../dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol';
import {Proxy} from '../../../dependencies/openzeppelin/upgradeability/Proxy.sol';
import {BaseImmutableAdminUpgradeabilityProxy} from './BaseImmutableAdminUpgradeabilityProxy.sol';

/**
 * @title InitializableAdminUpgradeabilityProxy
 * @author Aave
 * @dev Extends BaseAdminUpgradeabilityProxy with an initializer function
 */
contract InitializableImmutableAdminUpgradeabilityProxy is
  BaseImmutableAdminUpgradeabilityProxy,
  InitializableUpgradeabilityProxy
{
  /**
   * @dev Constructor.
   * @param admin The address of the admin
   */
  constructor(address admin) BaseImmutableAdminUpgradeabilityProxy(admin) {
    // Intentionally left blank
  }

  /// @inheritdoc BaseImmutableAdminUpgradeabilityProxy
  function _willFallback() internal override(BaseImmutableAdminUpgradeabilityProxy, Proxy) {
    BaseImmutableAdminUpgradeabilityProxy._willFallback();
  }
}

File 2 of 6 : InitializableUpgradeabilityProxy.sol
// SPDX-License-Identifier: agpl-3.0
pragma solidity 0.8.10;

import './BaseUpgradeabilityProxy.sol';

/**
 * @title InitializableUpgradeabilityProxy
 * @dev Extends BaseUpgradeabilityProxy with an initializer for initializing
 * implementation and init data.
 */
contract InitializableUpgradeabilityProxy is BaseUpgradeabilityProxy {
  /**
   * @dev Contract initializer.
   * @param _logic Address of the initial implementation.
   * @param _data Data to send as msg.data to the implementation to initialize the proxied contract.
   * It should include the signature and the parameters of the function to be called, as described in
   * https://solidity.readthedocs.io/en/v0.4.24/abi-spec.html#function-selector-and-argument-encoding.
   * This parameter is optional, if no data is given the initialization call to proxied contract will be skipped.
   */
  function initialize(address _logic, bytes memory _data) public payable {
    require(_implementation() == address(0));
    assert(IMPLEMENTATION_SLOT == bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1));
    _setImplementation(_logic);
    if (_data.length > 0) {
      (bool success, ) = _logic.delegatecall(_data);
      require(success);
    }
  }
}

File 3 of 6 : Proxy.sol
// SPDX-License-Identifier: agpl-3.0
pragma solidity 0.8.10;

/**
 * @title Proxy
 * @dev Implements delegation of calls to other contracts, with proper
 * forwarding of return values and bubbling of failures.
 * It defines a fallback function that delegates all calls to the address
 * returned by the abstract _implementation() internal function.
 */
abstract contract Proxy {
  /**
   * @dev Fallback function.
   * Will run if no other function in the contract matches the call data.
   * Implemented entirely in `_fallback`.
   */
  fallback() external payable {
    _fallback();
  }

  /**
   * @return The Address of the implementation.
   */
  function _implementation() internal view virtual returns (address);

  /**
   * @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) internal {
    //solium-disable-next-line
    assembly {
      // Copy msg.data. We take full control of memory in this inline assembly
      // block because it will not return to Solidity code. We overwrite the
      // Solidity scratch pad at memory position 0.
      calldatacopy(0, 0, calldatasize())

      // Call the implementation.
      // out and outsize are 0 because we don't know the size yet.
      let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)

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

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

  /**
   * @dev Function that is run as the first thing in the fallback function.
   * Can be redefined in derived contracts to add functionality.
   * Redefinitions must call super._willFallback().
   */
  function _willFallback() internal virtual {}

  /**
   * @dev fallback implementation.
   * Extracted to enable manual triggering.
   */
  function _fallback() internal {
    _willFallback();
    _delegate(_implementation());
  }
}

File 4 of 6 : BaseImmutableAdminUpgradeabilityProxy.sol
// SPDX-License-Identifier: AGPL-3.0
pragma solidity 0.8.10;

import {BaseUpgradeabilityProxy} from '../../../dependencies/openzeppelin/upgradeability/BaseUpgradeabilityProxy.sol';

/**
 * @title BaseImmutableAdminUpgradeabilityProxy
 * @author Aave, inspired by the OpenZeppelin upgradeability proxy pattern
 * @notice This contract combines an upgradeability proxy with an authorization
 * mechanism for administrative tasks.
 * @dev The admin role is stored in an immutable, which helps saving transactions costs
 * All external functions in this contract must be guarded by the
 * `ifAdmin` modifier. See ethereum/solidity#3864 for a Solidity
 * feature proposal that would enable this to be done automatically.
 */
contract BaseImmutableAdminUpgradeabilityProxy is BaseUpgradeabilityProxy {
  address internal immutable _admin;

  /**
   * @dev Constructor.
   * @param admin The address of the admin
   */
  constructor(address admin) {
    _admin = admin;
  }

  modifier ifAdmin() {
    if (msg.sender == _admin) {
      _;
    } else {
      _fallback();
    }
  }

  /**
   * @notice Return the admin address
   * @return The address of the proxy admin.
   */
  function admin() external ifAdmin returns (address) {
    return _admin;
  }

  /**
   * @notice Return the implementation address
   * @return The address of the implementation.
   */
  function implementation() external ifAdmin returns (address) {
    return _implementation();
  }

  /**
   * @notice Upgrade the backing implementation of the proxy.
   * @dev Only the admin can call this function.
   * @param newImplementation The address of the new implementation.
   */
  function upgradeTo(address newImplementation) external ifAdmin {
    _upgradeTo(newImplementation);
  }

  /**
   * @notice Upgrade the backing implementation of the proxy and call a function
   * on the new implementation.
   * @dev This is useful to initialize the proxied contract.
   * @param newImplementation The address of the new implementation.
   * @param data Data to send as msg.data in the low level call.
   * It should include the signature and the parameters of the function to be called, as described in
   * https://solidity.readthedocs.io/en/v0.4.24/abi-spec.html#function-selector-and-argument-encoding.
   */
  function upgradeToAndCall(address newImplementation, bytes calldata data)
    external
    payable
    ifAdmin
  {
    _upgradeTo(newImplementation);
    (bool success, ) = newImplementation.delegatecall(data);
    require(success);
  }

  /**
   * @notice Only fall back when the sender is not the admin.
   */
  function _willFallback() internal virtual override {
    require(msg.sender != _admin, 'Cannot call fallback function from the proxy admin');
    super._willFallback();
  }
}

File 5 of 6 : BaseUpgradeabilityProxy.sol
// SPDX-License-Identifier: agpl-3.0
pragma solidity 0.8.10;

import './Proxy.sol';
import '../contracts/Address.sol';

/**
 * @title BaseUpgradeabilityProxy
 * @dev This contract implements a proxy that allows to change the
 * implementation address to which it will delegate.
 * Such a change is called an implementation upgrade.
 */
contract BaseUpgradeabilityProxy is Proxy {
  /**
   * @dev Emitted when the implementation is upgraded.
   * @param implementation Address of the new implementation.
   */
  event Upgraded(address indexed implementation);

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

  /**
   * @dev Returns the current implementation.
   * @return impl Address of the current implementation
   */
  function _implementation() internal view override returns (address impl) {
    bytes32 slot = IMPLEMENTATION_SLOT;
    //solium-disable-next-line
    assembly {
      impl := sload(slot)
    }
  }

  /**
   * @dev Upgrades the proxy to a new implementation.
   * @param newImplementation Address of the new implementation.
   */
  function _upgradeTo(address newImplementation) internal {
    _setImplementation(newImplementation);
    emit Upgraded(newImplementation);
  }

  /**
   * @dev Sets the implementation address of the proxy.
   * @param newImplementation Address of the new implementation.
   */
  function _setImplementation(address newImplementation) internal {
    require(
      Address.isContract(newImplementation),
      'Cannot set a proxy implementation to a non-contract address'
    );

    bytes32 slot = IMPLEMENTATION_SLOT;

    //solium-disable-next-line
    assembly {
      sstore(slot, newImplementation)
    }
  }
}

File 6 of 6 : Address.sol
// SPDX-License-Identifier: agpl-3.0
pragma solidity 0.8.10;

/**
 * @dev Collection of functions related to the address type
 */
library Address {
  /**
   * @dev Returns true if `account` is a contract.
   *
   * [IMPORTANT]
   * ====
   * It is unsafe to assume that an address for which this function returns
   * false is an externally-owned account (EOA) and not a contract.
   *
   * Among others, `isContract` will return false for the following
   * types of addresses:
   *
   *  - an externally-owned account
   *  - a contract in construction
   *  - an address where a contract will be created
   *  - an address where a contract lived, but was destroyed
   * ====
   */
  function isContract(address account) internal view returns (bool) {
    // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
    // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
    // for accounts without code, i.e. `keccak256('')`
    bytes32 codehash;
    bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
    // solhint-disable-next-line no-inline-assembly
    assembly {
      codehash := extcodehash(account)
    }
    return (codehash != accountHash && codehash != 0x0);
  }

  /**
   * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
   * `recipient`, forwarding all available gas and reverting on errors.
   *
   * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
   * of certain opcodes, possibly making contracts go over the 2300 gas limit
   * imposed by `transfer`, making them unable to receive funds via
   * `transfer`. {sendValue} removes this limitation.
   *
   * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
   *
   * IMPORTANT: because control is transferred to `recipient`, care must be
   * taken to not create reentrancy vulnerabilities. Consider using
   * {ReentrancyGuard} or the
   * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
   */
  function sendValue(address payable recipient, uint256 amount) internal {
    require(address(this).balance >= amount, 'Address: insufficient balance');

    // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
    (bool success, ) = recipient.call{value: amount}('');
    require(success, 'Address: unable to send value, recipient may have reverted');
  }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 100000
  },
  "evmVersion": "berlin",
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "metadata": {
    "useLiteralContent": true
  },
  "libraries": {}
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"admin","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"}]

Deployed Bytecode

0x60806040526004361061005a5760003560e01c80635c60da1b116100435780635c60da1b14610097578063d1f57894146100d5578063f851a440146100e85761005a565b80633659cfe6146100645780634f1ef28614610084575b6100626100fd565b005b34801561007057600080fd5b5061006261007f3660046106be565b610137565b6100626100923660046106e0565b610189565b3480156100a357600080fd5b506100ac61025a565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100626100e3366004610792565b6102cb565b3480156100f457600080fd5b506100ac6103f7565b61010561045c565b6101356101307f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b610464565b565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000008145edddf43f50276641b55bd3ad95944510021e1614156101815761017e81610488565b50565b61017e6100fd565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000008145edddf43f50276641b55bd3ad95944510021e16141561024d576101d083610488565b60008373ffffffffffffffffffffffffffffffffffffffff1683836040516101f9929190610872565b600060405180830381855af49150503d8060008114610234576040519150601f19603f3d011682016040523d82523d6000602084013e610239565b606091505b505090508061024757600080fd5b50505050565b6102556100fd565b505050565b60003373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000008145edddf43f50276641b55bd3ad95944510021e1614156102c057507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6102c86100fd565b90565b60006102f57f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b73ffffffffffffffffffffffffffffffffffffffff161461031557600080fd5b61034060017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd610882565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc1461036e5761036e6108c0565b610377826104d5565b8051156103f35760008273ffffffffffffffffffffffffffffffffffffffff16826040516103a591906108ef565b600060405180830381855af49150503d80600081146103e0576040519150601f19603f3d011682016040523d82523d6000602084013e6103e5565b606091505b505090508061025557600080fd5b5050565b60003373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000008145edddf43f50276641b55bd3ad95944510021e1614156102c057507f0000000000000000000000008145edddf43f50276641b55bd3ad95944510021e90565b610135610593565b3660008037600080366000845af43d6000803e808015610483573d6000f35b3d6000fd5b610491816104d5565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6104de81610659565b61056f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f60448201527f6e20746f2061206e6f6e2d636f6e74726163742061646472657373000000000060648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000008145edddf43f50276641b55bd3ad95944510021e161415610135576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e20667260448201527f6f6d207468652070726f78792061646d696e00000000000000000000000000006064820152608401610566565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061068d57508115155b949350505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146106b957600080fd5b919050565b6000602082840312156106d057600080fd5b6106d982610695565b9392505050565b6000806000604084860312156106f557600080fd5b6106fe84610695565b9250602084013567ffffffffffffffff8082111561071b57600080fd5b818601915086601f83011261072f57600080fd5b81358181111561073e57600080fd5b87602082850101111561075057600080fd5b6020830194508093505050509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156107a557600080fd5b6107ae83610695565b9150602083013567ffffffffffffffff808211156107cb57600080fd5b818501915085601f8301126107df57600080fd5b8135818111156107f1576107f1610763565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561083757610837610763565b8160405282815288602084870101111561085057600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b8183823760009101908152919050565b6000828210156108bb577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b6000825160005b8181101561091057602081860181015185830152016108f6565b8181111561091f576000828501525b50919091019291505056fea26469706673582212207698a80201d2f92a3290973c99527c6e810eaf731191e18abe2c96acab47dca764736f6c634300080a0033

Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.