Contract 0xe50fa9b3c56ffb159cb0fca61f5c9d750e8128c8 5

 

Contract Overview

Aave: aWETH Token V3
Balance:
0 Ether

EtherValue:
$0.00

Token:
Txn Hash Method
Block
From
To
Value
0xc5bd5bee50486d31dcd56894eae66030d16e61a0b588012afd297bf068099d45Approve469821942022-12-09 3:54:201 hr 27 mins ago0x2ccb1cb25695af8f4ff38352c2696a0af8297d01 IN  Aave: aWETH Token V30 Ether0.0000662827110.001
0xed03acf4d9764b6e7a8391d989debf1ba0debf9ad1638f88060a083f5495d225Approve469807552022-12-09 3:48:201 hr 33 mins ago0xe7c26a12f3d8660e248e400a49b910ac2a29728a IN  Aave: aWETH Token V30 Ether0.0000573050660.001
0xf7c42f378168862e782e453bd079f67411f7ede6a3a8dbb389ffb41b0785a9afApprove469807492022-12-09 3:48:201 hr 33 mins ago0xeb411d7daa4136831d391559588e31ea5bdfd225 IN  Aave: aWETH Token V30 Ether0.0000573050660.001
0x9c03d5ee8d4c4596d96adbf3d3f5539973998420bb2c9a316787ee39986c8ae8Approve469644332022-12-09 2:53:452 hrs 27 mins ago0x853641368a6cd41ace5ab6db303ae6eb81a14edd IN  Aave: aWETH Token V30 Ether0.000053527390.0011
0x01e2963636e17096203a69c2c35e22c057cf945c152a1a61ac27d35585b0b2a6Approve469637622022-12-09 2:51:302 hrs 29 mins ago0xc47903af6d8e42585a67c258f78a10abed0d6e6c IN  Aave: aWETH Token V30 Ether0.0000583437640.001
0x85de65d09bebe6057b56598414eb7a177c7c1d1ba5e015a4dddd98d6d0dfa0d1Approve469564082022-12-09 2:27:442 hrs 53 mins ago0x056be921a2670eaef12850fe6f9a23baeababe4d IN  Aave: aWETH Token V30 Ether0.000068634690.001
0x4c3d11b3c309fef74ae3337e1a4f9000737fca8b29deea85340400e289850e91Approve469545682022-12-09 2:20:293 hrs ago0x2097dc0ca4188863273bcc42880db589dfea12e4 IN  Aave: aWETH Token V30 Ether0.0000600378950.001
0xa6017cc7de192a018daea1a877664544efe98b3058fda1a976aca2d0ccaf9d61Approve469516372022-12-09 2:09:273 hrs 11 mins ago0x5158d3dae80ca1274dc95f1f8ad467dc149644bd IN  Aave: aWETH Token V30 Ether0.0000590442870.001
0xb093e165db8386ffa8a1c54c8934e7aa8e62073bc52c5040cbd01a6f26492c8cApprove469476322022-12-09 1:54:253 hrs 26 mins ago0xec6270eda11bd51bbfe19b215abed676b9398e58 IN  Aave: aWETH Token V30 Ether0.0000590442870.001
0xd4d8c5bf0e241725e4b32162d0320a034a93db675608a73109c02dd974ecaecfApprove469469892022-12-09 1:51:393 hrs 29 mins ago0x714591ac21caa84f0936f82ac4c5dc046523b083 IN  Aave: aWETH Token V30 Ether0.0000590442870.001
0x8d1538db92a7844c1c4d7b17827cbd754470151a36686d1361ae8d4790cbbea8Approve469451232022-12-09 1:43:073 hrs 38 mins ago0xf519c88594e40d4fb6997262fd0834e435bcaee4 IN  Aave: aWETH Token V30 Ether0.0000621976280.001
0xa21557c8344ea2d8d79be83041190b691dddc4af8252ffb991acf21a35795dc9Approve469447832022-12-09 1:41:223 hrs 40 mins ago0xe51e85818ade37291f21fa6ff5bb8044223b7eba IN  Aave: aWETH Token V30 Ether0.0000599492430.001
0x735f67d10c27e80e0f9bfc3868a602d31dad19700235431f905c5256654ad8eeApprove469426602022-12-09 1:32:223 hrs 49 mins ago0xaabdc5e3dfdda78712ee2a12610d343ffcf6a347 IN  Aave: aWETH Token V30 Ether0.0000677778830.001
0x7e8ee05b13401af6d57d0e64632126171b3847cbcab364efab491ce6e7dabe4aApprove469388952022-12-09 1:13:154 hrs 8 mins ago0xe8431cd0895a164da5e2eb9d632589762ccf181c IN  Aave: aWETH Token V30 Ether0.0000605027740.001
0x5a89c818a68cb6f377f97672312500ac7e9ed80abbd2654ae91c9522593f1850Approve469383712022-12-09 1:09:274 hrs 11 mins ago0x829ecaf02161808ee29a5dbdfa826a617146e495 IN  Aave: aWETH Token V30 Ether0.0000605027740.001
0x0f6841af8ccbd608226d26406cc91bd0b1b62a437442b653d6b00907324a9523Approve469381962022-12-09 1:08:124 hrs 13 mins ago0x6f16152562b8e6e78fd3409035cce0bd3b26d2bb IN  Aave: aWETH Token V30 Ether0.0000605027740.001
0x218867b0ae70b6f696fed39a28123e3c3628176955df66dbb1d76c8de8bf0190Approve469367602022-12-09 0:57:194 hrs 24 mins ago0xb9dd7b23b89e9b53fb1e0184687fe0eb29fb4adb IN  Aave: aWETH Token V30 Ether0.0000607925990.001
0x734c0b92915df4b1416089bad0ffc3b9e44db483efe43c0a9a69acb3c9508476Approve469312292022-12-09 0:15:525 hrs 5 mins ago0x17ddda717155785cd2972ca21386e068739dbc6f IN  Aave: aWETH Token V30 Ether0.0000597713860.001
0xf1ae6b90f11df5ce47421a895031c5193622a90d1899d292556f81f22fd49559Approve469293192022-12-08 23:59:445 hrs 21 mins ago0xcad12da0c724dfc7b9699ebd3d1928e531887d49 IN  Aave: aWETH Token V30 Ether0.0000564138080.001
0xdad34b9db1ac903d5d87dae2a744499fee14d1657d25e7b6edafc4606474c833Approve469280402022-12-08 23:47:185 hrs 34 mins ago0x026d41f89df628b0eab57062893a60a07cdf8822 IN  Aave: aWETH Token V30 Ether0.0000597960860.001
0x714b43e23d4969f7564f7122be7c20f324a39bb3f6aa25bfdb1bbcf3aac9a0e8Approve469264392022-12-08 23:33:565 hrs 47 mins ago0x6cb331b379368ebc31c845e3c6d4a5ba6c8cdce8 IN  Aave: aWETH Token V30 Ether0.000062782810.001
0x8c3994bc7d038f8cde1aee7137a7fe708152396313b16bbc13215ed37f539413Approve469261612022-12-08 23:31:355 hrs 49 mins ago0x977bd85baf94df45d0829b8d72a1b0ac1c44dc13 IN  Aave: aWETH Token V30 Ether0.0000728374390.001
0xf7b69997010c9144deea631ff7f7c7831175df0a7a49dedc0bd0eb80fb5b7534Approve469210702022-12-08 22:54:466 hrs 26 mins ago0xa88298675efc26416939c372ff3c627fabaec82f IN  Aave: aWETH Token V30 Ether0.0000563216980.001
0x5efb6cf7f4876152bdc744ef85c211f1858effade2f762f9be2b10788ed61a7cApprove469197342022-12-08 22:45:576 hrs 35 mins ago0xb39053b5455520e1990550aeb90da91aadbb66c5 IN  Aave: aWETH Token V30 Ether0.0000615814070.001
0x99879eecc83a9b78138f151c2a82b49383439bb9b8fd7d93bf65ad5a49387e98Approve469191652022-12-08 22:42:086 hrs 39 mins ago0x71d8a1691c92a68544b4777756820cdc83e8c34a IN  Aave: aWETH Token V30 Ether0.0000611646090.001
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x352949e1a6780cefb7aaddccde3c165a96b940428d76163c1e8e4e773bc55790470044832022-12-09 5:17:583 mins ago Aave: aWETH Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x352949e1a6780cefb7aaddccde3c165a96b940428d76163c1e8e4e773bc55790470044832022-12-09 5:17:583 mins ago Aave: Pool V3 Aave: aWETH Token V30 Ether
0xa353f1bc268101d5d78ab67be94cc044648e9e0e56f9db1925b80767f4f33631470044602022-12-09 5:17:583 mins ago Aave: aWETH Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0xa353f1bc268101d5d78ab67be94cc044648e9e0e56f9db1925b80767f4f33631470044602022-12-09 5:17:583 mins ago Aave: Pool V3 Aave: aWETH Token V30 Ether
0x8793ce054863b88944ba8f65c24c2489afa7d8beeb82cde46d1b3d3b4ae09253470044202022-12-09 5:17:583 mins ago Aave: aWETH Token V3 Aave: Incentives V30 Ether
0x8793ce054863b88944ba8f65c24c2489afa7d8beeb82cde46d1b3d3b4ae09253470044202022-12-09 5:17:583 mins ago Aave: aWETH Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x8793ce054863b88944ba8f65c24c2489afa7d8beeb82cde46d1b3d3b4ae09253470044202022-12-09 5:17:583 mins ago Aave: Pool V3 Aave: aWETH Token V30 Ether
0x247db119ee037211352b22fc64b84e6f9b8ffd2144dc6810b976fdbc9c362963470034792022-12-09 5:15:285 mins ago Aave: aWETH Token V3 Aave: Incentives V30 Ether
0x247db119ee037211352b22fc64b84e6f9b8ffd2144dc6810b976fdbc9c362963470034792022-12-09 5:15:285 mins ago Aave: aWETH Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x247db119ee037211352b22fc64b84e6f9b8ffd2144dc6810b976fdbc9c362963470034792022-12-09 5:15:285 mins ago Aave: Pool V3 Aave: aWETH Token V30 Ether
0xaa58581b4acc42603641c9bfbea1b4a0d8aa8182f0dd59564db8ce7cc2819423470031242022-12-09 5:14:286 mins ago Aave: aWETH Token V3 Aave: Incentives V30 Ether
0xaa58581b4acc42603641c9bfbea1b4a0d8aa8182f0dd59564db8ce7cc2819423470031242022-12-09 5:14:286 mins ago Aave: aWETH Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0xaa58581b4acc42603641c9bfbea1b4a0d8aa8182f0dd59564db8ce7cc2819423470031242022-12-09 5:14:286 mins ago Aave: Pool V3 Aave: aWETH Token V30 Ether
0x8e3b9a522995a5c2c56262bbac6757a64091ae2b4fd0a5b750d7b3d4aa63639c470020932022-12-09 5:11:1310 mins ago Aave: aWETH Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x8e3b9a522995a5c2c56262bbac6757a64091ae2b4fd0a5b750d7b3d4aa63639c470020932022-12-09 5:11:1310 mins ago Aave: Pool V3 Aave: aWETH Token V30 Ether
0xa217f536301038d756c755efd846c6e309b06eed466b8c39ad8e6df7be108f45470019112022-12-09 5:10:2810 mins ago Aave: aWETH Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0xa217f536301038d756c755efd846c6e309b06eed466b8c39ad8e6df7be108f45470019112022-12-09 5:10:2810 mins ago Aave: Pool V3 Aave: aWETH Token V30 Ether
0xec28e80c0d4cd0ea9cefba2542f4a76686b272c89fb20dd68bb28b26d6802695470018082022-12-09 5:10:1311 mins ago Aave: aWETH Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0xec28e80c0d4cd0ea9cefba2542f4a76686b272c89fb20dd68bb28b26d6802695470018082022-12-09 5:10:1311 mins ago Aave: Pool V3 Aave: aWETH Token V30 Ether
0xec28e80c0d4cd0ea9cefba2542f4a76686b272c89fb20dd68bb28b26d6802695470018082022-12-09 5:10:1311 mins ago Aave: aWETH Token V3 Aave: Pool V30 Ether
0xec28e80c0d4cd0ea9cefba2542f4a76686b272c89fb20dd68bb28b26d6802695470018082022-12-09 5:10:1311 mins ago Aave: aWETH Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0xec28e80c0d4cd0ea9cefba2542f4a76686b272c89fb20dd68bb28b26d6802695470018082022-12-09 5:10:1311 mins ago Aave: Pool V3 Aave: aWETH Token V30 Ether
0xec28e80c0d4cd0ea9cefba2542f4a76686b272c89fb20dd68bb28b26d6802695470018082022-12-09 5:10:1311 mins ago Aave: aWETH Token V3Wrapped Ether0 Ether
0xec28e80c0d4cd0ea9cefba2542f4a76686b272c89fb20dd68bb28b26d6802695470018082022-12-09 5:10:1311 mins ago Aave: aWETH Token V3 Aave: Incentives V30 Ether
0xec28e80c0d4cd0ea9cefba2542f4a76686b272c89fb20dd68bb28b26d6802695470018082022-12-09 5:10:1311 mins ago Aave: aWETH Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
[ Download CSV Export 
Loading

Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0xf329e36C7bF6E5E86ce2150875a84Ce77f477375

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 Security Audit

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"}]

60a060405234801561001057600080fd5b50604051610a0e380380610a0e83398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b6080516109606100ae6000396000818161014f015281816101a101528181610274015281816104110152818161043a01526105ab01526109606000f3fe60806040526004361061005a5760003560e01c80635c60da1b116100435780635c60da1b14610097578063d1f57894146100d5578063f851a440146100e85761005a565b80633659cfe6146100645780634f1ef28614610084575b6100626100fd565b005b34801561007057600080fd5b5061006261007f3660046106be565b610137565b6100626100923660046106e0565b610189565b3480156100a357600080fd5b506100ac61025a565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100626100e3366004610792565b6102cb565b3480156100f457600080fd5b506100ac6103f7565b61010561045c565b6101356101307f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b610464565b565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614156101815761017e81610488565b50565b61017e6100fd565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016141561024d576101d083610488565b60008373ffffffffffffffffffffffffffffffffffffffff1683836040516101f9929190610872565b600060405180830381855af49150503d8060008114610234576040519150601f19603f3d011682016040523d82523d6000602084013e610239565b606091505b505090508061024757600080fd5b50505050565b6102556100fd565b505050565b60003373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614156102c057507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6102c86100fd565b90565b60006102f57f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b73ffffffffffffffffffffffffffffffffffffffff161461031557600080fd5b61034060017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd610882565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc1461036e5761036e6108c0565b610377826104d5565b8051156103f35760008273ffffffffffffffffffffffffffffffffffffffff16826040516103a591906108ef565b600060405180830381855af49150503d80600081146103e0576040519150601f19603f3d011682016040523d82523d6000602084013e6103e5565b606091505b505090508061025557600080fd5b5050565b60003373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614156102c057507f000000000000000000000000000000000000000000000000000000000000000090565b610135610593565b3660008037600080366000845af43d6000803e808015610483573d6000f35b3d6000fd5b610491816104d5565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6104de81610659565b61056f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f60448201527f6e20746f2061206e6f6e2d636f6e74726163742061646472657373000000000060648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161415610135576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e20667260448201527f6f6d207468652070726f78792061646d696e00000000000000000000000000006064820152608401610566565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061068d57508115155b949350505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146106b957600080fd5b919050565b6000602082840312156106d057600080fd5b6106d982610695565b9392505050565b6000806000604084860312156106f557600080fd5b6106fe84610695565b9250602084013567ffffffffffffffff8082111561071b57600080fd5b818601915086601f83011261072f57600080fd5b81358181111561073e57600080fd5b87602082850101111561075057600080fd5b6020830194508093505050509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156107a557600080fd5b6107ae83610695565b9150602083013567ffffffffffffffff808211156107cb57600080fd5b818501915085601f8301126107df57600080fd5b8135818111156107f1576107f1610763565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561083757610837610763565b8160405282815288602084870101111561085057600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b8183823760009101908152919050565b6000828210156108bb577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b6000825160005b8181101561091057602081860181015185830152016108f6565b8181111561091f576000828501525b50919091019291505056fea26469706673582212207698a80201d2f92a3290973c99527c6e810eaf731191e18abe2c96acab47dca764736f6c634300080a00330000000000000000000000008145edddf43f50276641b55bd3ad95944510021e

Block Transaction Difficulty Gas Used Reward
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.