Contract 0xe50fA9b3c56FfB159cB0FCA61F5c9D750e8128c8 6

 

Contract Overview

Aave: aWETH Token V3
Balance:
0 Ether

EtherValue:
$0.00

Token:
Txn Hash Method
Index
From
To
Value
0xd00a0659b1507ea3abcbe6ebeacf4e45d85164b7170b6dd83dbc5c8c44241f61Approve265772702022-09-30 21:32:0210 mins ago0xe60362529abdaf4bec9784594395d70dcaafeb69 IN  Aave: aWETH Token V30 Ether0.000047719570.001
0xa4c3e95f523fb00e7c1f40b0d3b6f6f6b2fdaad4e79edc7c3aa9879dd136ae0bApprove265728612022-09-30 20:46:0156 mins ago0x9717c235671c6ae5e0fbed26cc20fd1ff7ea3817 IN  Aave: aWETH Token V30 Ether0.0000868549830.0012
0xd331dfe75cf479e1ad1c72f99dcb3e33ae1da02310396d996e5ec09beba661a6Approve265721262022-09-30 20:40:231 hr 2 mins ago0x7e33bb2995697f898bc429548a8c9731aca65c38 IN  Aave: aWETH Token V30 Ether0.0000992669680.001
0x3b13b4206a4f4e69cfc3bfdf1c200b8da41c0f8284350321a4998a206d3dccecApprove265692522022-09-30 20:15:251 hr 26 mins ago0x4405bd33792d43088b998052637f92b36879a666 IN  Aave: aWETH Token V30 Ether0.0000967830520.001
0x36cfa602c9ecbe472e32cbd5a5b7a026a28908ff7b658e3633507abf69371502Approve265692022022-09-30 20:14:551 hr 27 mins ago0xdc885850d72c3269aa2d2bcb32c70e2080b3acf1 IN  Aave: aWETH Token V30 Ether0.0000971129120.001
0x112e68e6d5e0cd6f60f97eafd27930455b95053840ed2be565905ad8d13d00e5Approve265615542022-09-30 19:23:452 hrs 18 mins ago0x07faa0594e8ff9cd431ba1e3aebc1976c1dfc1eb IN  Aave: aWETH Token V30 Ether0.0000618969420.001
0x43f65975f1f8f38b5b8bf1442d8b4d1d80735cdc5cb6d12a0a0d482c743d6312Approve265613782022-09-30 19:22:142 hrs 20 mins ago0x07faa0594e8ff9cd431ba1e3aebc1976c1dfc1eb IN  Aave: aWETH Token V30 Ether0.0000641340680.001
0x240fd2bc9ce7ccfee72d269d41cd3b8039b0a6df1319d2564a9dc7d068202561Approve265597192022-09-30 19:08:232 hrs 34 mins ago0x96743c432222a5b611e9a4b5c8da527d25a6770f IN  Aave: aWETH Token V30 Ether0.0000679468630.001
0x7e3027fa99251154948e6d23ca5e3cdb6e0f19ddcebec01bfe70ff5c0114cf1cApprove265491982022-09-30 17:44:223 hrs 58 mins ago0x7241c18533acf5f786c5a0b5f9c2c370620c5c6f IN  Aave: aWETH Token V30 Ether0.0000987985760.001
0xb7f85f965e49af7daa58cb5d05d6d36c3449a42080e66edb250b8e22e6105f22Approve265465152022-09-30 17:25:314 hrs 16 mins ago0xc50d67d7229fcb41670e5d023b43f156d997223b IN  Aave: aWETH Token V30 Ether0.0000819874570.001
0x2f0c18ec74afe76d65be289ac41ec1bb304e09b0d7ad7767749be8f5d60a5376Approve265459042022-09-30 17:20:584 hrs 21 mins ago 0xa284ea907e102dc60d7ab9fab58fa046565b436d IN  Aave: aWETH Token V30 Ether0.0000794188410.001
0xfb32962594a9dd0f25213659e828250d851f2d5c43fd15210d658266fd7e6fc2Approve265442572022-09-30 17:06:474 hrs 35 mins ago0x4c6996f712f5ba388c0f2930d05fc8746a2cdb0d IN  Aave: aWETH Token V30 Ether0.0001044505650.001
0xc197b0c1669c08b969d71107a69bf5d85012d8377d38aae334aa4b51c859df3fApprove265440382022-09-30 17:05:014 hrs 37 mins ago0xe08b63f5b87372e0bb92535ad32c2720344e25d2 IN  Aave: aWETH Token V30 Ether0.0000952610920.001
0xac73788886eaa4a922bdc063d6eadfe2cce9c507422395d2a6f6edae76bc08d4Approve265431242022-09-30 16:58:384 hrs 43 mins ago0xcc231e2c7e7f21cb12477543aa9fcd882f6fe159 IN  Aave: aWETH Token V30 Ether0.0000963840010.001
0x0b561d2ed68a6a440cf606ea511529d6ff3cc854bf2ba21d19b82c7372e7d50cApprove265416752022-09-30 16:48:024 hrs 54 mins ago0xf8aebed4f7bdafc229f1c626460f2dbed95fc86a IN  Aave: aWETH Token V30 Ether0.0000994818910.001
0x8af8bab770ea0d825dd15cc8748179e796cd3db2a68ff416ae659de2e6c51027Approve265404312022-09-30 16:38:395 hrs 3 mins ago 0xe782657a1043062087232b3c20c4d25e2a982cb3 IN  Aave: aWETH Token V30 Ether0.0001028811020.001
0xa672c725531f4a7a2142c34203a973469ffc8beb53b4b9dd068d07dcdd0741a2Approve265361442022-09-30 16:13:325 hrs 28 mins ago0x0c057aff99c65850563f2a4c13f24feca525a6b7 IN  Aave: aWETH Token V30 Ether0.0001444102170.001
0xd1e3ad8585d91363b78ba4a5fd2a647ff615723ca934683e8a8072b777c397beApprove265305272022-09-30 15:39:506 hrs 2 mins ago0x93c631f40f1eeef0edf4809b9b31b600f622e47f IN  Aave: aWETH Token V30 Ether0.0001202164070.001
0xa155a0f42a64b5ac8b3e41c01449bebca0379008f5631419c8dee58d590a59e4Approve265276292022-09-30 15:27:496 hrs 14 mins ago0xb05f373d9951fe9acdfd3cabe73efc164888a47e IN  Aave: aWETH Token V30 Ether0.0000980163530.001
0x961ba6304e972cb111b04283adf39c830d0fb474f6b6514e92fde3a34b46f04dApprove265275342022-09-30 15:27:046 hrs 15 mins ago0xe08b63f5b87372e0bb92535ad32c2720344e25d2 IN  Aave: aWETH Token V30 Ether0.0000971007820.001
0xf547b1550172a7631e8630c11a720eea5a7a0984e4b2bbde2076bfb772bf8fb3Approve265270062022-09-30 15:24:326 hrs 17 mins ago0xe08b63f5b87372e0bb92535ad32c2720344e25d2 IN  Aave: aWETH Token V30 Ether0.0000812224280.001
0xb07252c37fe27fe937a30831e20162cc4993849bd7f9ed0c918adb4e93b98859Approve265156972022-09-30 14:47:296 hrs 54 mins ago0x68811b7700b567f31e33004b04fbaa33b78dc57d IN  Aave: aWETH Token V30 Ether0.0000779962190.001
0x6e602059496d048eb9b5e66db827ab80ad683551766024b212e1371dd211429bApprove265098122022-09-30 14:22:397 hrs 19 mins ago0x8318990fba5fd78d7c963924fc4f4eaade5c3df9 IN  Aave: aWETH Token V30 Ether0.0000658535790.001
0x0d44e055402a4c1937632706f442172e34fb6b906f0fbe9ec3f96bb24dcb06faApprove265096522022-09-30 14:21:547 hrs 20 mins ago0x6f62b316f561877828d432d6121a0e03d6d410c2 IN  Aave: aWETH Token V30 Ether0.0000658535790.001
0x839d581ebbbfa6d1afe8340b41cccf006373b285660266d313c081910fe0e1f9Approve265059802022-09-30 14:07:217 hrs 35 mins ago0x8d3ec18dc2c96dafcd0924afe7273892bf4c1652 IN  Aave: aWETH Token V30 Ether0.0000883497070.001
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x648447c537bd618d5433244f8d966ee586566a0687e081ad6d1770f68651671d265782372022-09-30 21:42:0024 secs ago Aave: aWETH Token V3 Aave: Incentives V30 Ether
0x648447c537bd618d5433244f8d966ee586566a0687e081ad6d1770f68651671d265782372022-09-30 21:42:0024 secs ago Aave: aWETH Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x648447c537bd618d5433244f8d966ee586566a0687e081ad6d1770f68651671d265782372022-09-30 21:42:0024 secs ago Aave: Pool V3 Aave: aWETH Token V30 Ether
0x1e87df471bcbda83704432868cdc81284ba5317227abb37cf5ac4ddeaa847566265781882022-09-30 21:41:3054 secs ago Aave: aWETH Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x1e87df471bcbda83704432868cdc81284ba5317227abb37cf5ac4ddeaa847566265781882022-09-30 21:41:3054 secs ago Aave: Pool V3 Aave: aWETH Token V30 Ether
0xa7c584e38365ebb0141077266dab028b702113a297323280390ba23eab652b33265780642022-09-30 21:40:301 min ago Aave: aWETH Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0xa7c584e38365ebb0141077266dab028b702113a297323280390ba23eab652b33265780642022-09-30 21:40:301 min ago Aave: Pool V3 Aave: aWETH Token V30 Ether
0xe6a6ec313a3e2bd57261beb8644eb9272d89c60b3b6daa3041b99011336bd46a265779732022-09-30 21:39:452 mins ago Aave: aWETH Token V3 Aave: Pool V30 Ether
0xe6a6ec313a3e2bd57261beb8644eb9272d89c60b3b6daa3041b99011336bd46a265779732022-09-30 21:39:452 mins ago Aave: aWETH Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0xe6a6ec313a3e2bd57261beb8644eb9272d89c60b3b6daa3041b99011336bd46a265779732022-09-30 21:39:452 mins ago Aave: Pool Data Provider V3 Aave: aWETH Token V30 Ether
0xe6a6ec313a3e2bd57261beb8644eb9272d89c60b3b6daa3041b99011336bd46a265779732022-09-30 21:39:452 mins ago Aave: aWETH Token V3 Aave: Pool V30 Ether
0xe6a6ec313a3e2bd57261beb8644eb9272d89c60b3b6daa3041b99011336bd46a265779732022-09-30 21:39:452 mins ago Aave: aWETH Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0xe6a6ec313a3e2bd57261beb8644eb9272d89c60b3b6daa3041b99011336bd46a265779732022-09-30 21:39:452 mins ago Aave: Pool Data Provider V3 Aave: aWETH Token V30 Ether
0xe6a6ec313a3e2bd57261beb8644eb9272d89c60b3b6daa3041b99011336bd46a265779732022-09-30 21:39:452 mins ago Aave: aWETH Token V3 Aave: Incentives V30 Ether
0xe6a6ec313a3e2bd57261beb8644eb9272d89c60b3b6daa3041b99011336bd46a265779732022-09-30 21:39:452 mins ago Aave: aWETH Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0xe6a6ec313a3e2bd57261beb8644eb9272d89c60b3b6daa3041b99011336bd46a265779732022-09-30 21:39:452 mins ago Aave: Pool V3 Aave: aWETH Token V30 Ether
0xe6a6ec313a3e2bd57261beb8644eb9272d89c60b3b6daa3041b99011336bd46a265779732022-09-30 21:39:452 mins ago Aave: aWETH Token V3 Aave: Pool V30 Ether
0xe6a6ec313a3e2bd57261beb8644eb9272d89c60b3b6daa3041b99011336bd46a265779732022-09-30 21:39:452 mins ago Aave: aWETH Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0xe6a6ec313a3e2bd57261beb8644eb9272d89c60b3b6daa3041b99011336bd46a265779732022-09-30 21:39:452 mins ago Aave: Pool Data Provider V3 Aave: aWETH Token V30 Ether
0xe6a6ec313a3e2bd57261beb8644eb9272d89c60b3b6daa3041b99011336bd46a265779732022-09-30 21:39:452 mins ago Aave: aWETH Token V3 Aave: Pool V30 Ether
0xe6a6ec313a3e2bd57261beb8644eb9272d89c60b3b6daa3041b99011336bd46a265779732022-09-30 21:39:452 mins ago Aave: aWETH Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0xe6a6ec313a3e2bd57261beb8644eb9272d89c60b3b6daa3041b99011336bd46a265779732022-09-30 21:39:452 mins ago Aave: Pool Data Provider V3 Aave: aWETH Token V30 Ether
0xe6a6ec313a3e2bd57261beb8644eb9272d89c60b3b6daa3041b99011336bd46a265779732022-09-30 21:39:452 mins ago Aave: aWETH Token V3 Aave: Pool V30 Ether
0xe6a6ec313a3e2bd57261beb8644eb9272d89c60b3b6daa3041b99011336bd46a265779732022-09-30 21:39:452 mins ago Aave: aWETH Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0xe6a6ec313a3e2bd57261beb8644eb9272d89c60b3b6daa3041b99011336bd46a265779732022-09-30 21:39:452 mins ago Aave: Pool Data Provider V3 Aave: aWETH Token V30 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
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.