Contract 0x0c84331e39d6658cd6e6b9ba04736cc4c4734351 4

Aave 
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x05f0fb967e113cb8dfbfe5e18f2259259e135b2ea239ae19ccd047b2514da4c7Approve Delegati...280846432022-10-03 2:16:559 hrs 16 mins ago0xd12dc5bdfa94c4b5c4a413eedb2d539c4cd42224 IN Aave: vWETH Token V30 ETH0.00001452
0x0528a9ea24e228cb8dbba1db55a60bb8561d77393a9c7feb3d53323be1a65be7Approve Delegati...280176162022-10-02 15:05:5420 hrs 27 mins ago0x7b9d755f474412a8c84a15b8395714e3382d0851 IN Aave: vWETH Token V30 ETH0.00001122
0xc12c1544db5cb5c4a587f8174d7ab32c73a0179139f9860651590a5132de4559Approve Delegati...280137942022-10-02 14:43:5020 hrs 49 mins ago0xefdf537b67ad151ce8e6ec9e4f2f7b9233d3617e IN Aave: vWETH Token V30 ETH0.00001133
0x62145a26d0b6895fb7ac185409f4f27d09de4d0db5152a824f441be23edf7991Approve Delegati...280129972022-10-02 14:38:0820 hrs 55 mins ago0xe17b279d3891b48c36ef616a5f70a586e80b5b98 IN Aave: vWETH Token V30 ETH0.00001083
0xf7d516aa578cd1f3934ce5e54d643925d6fddc1079084237a6b89d2408feca2bApprove Delegati...280029912022-10-02 13:40:5421 hrs 52 mins ago0x42e3c555b060b3a4c6b3f623edc5fc40d87ff9ed IN Aave: vWETH Token V30 ETH0.00001011
0x1ed793425433b8d71664fab8c4bc93980559a9b239e457d4a657caa8e0f208a2Approve Delegati...279631092022-10-02 10:26:131 day 1 hr ago0xb28cfe82641446a4d80ca3610e1e062c9fdc9d77 IN Aave: vWETH Token V30 ETH0.00000888
0x17c5bb4e8232320d5925676b65003f6e93a0e1430a425d87a44f7bd294d2ad67Approve Delegati...279074852022-10-02 5:22:131 day 6 hrs ago0x9fed457758d8f47781d55f1a7d2645f417c18ea9 IN Aave: vWETH Token V30 ETH0.0000096
0x38f8f18479ed510a95df566d99522b416a6f160f15a63e51aa7d514fdeac8ad7Approve Delegati...278947762022-10-02 3:53:351 day 7 hrs ago0xe881c551dc9edafee27630e81c5d00c06c855655 IN Aave: vWETH Token V30 ETH0.00001014
0xfc728081a9acb06ae8f3894e9dbf8f08f0b86bc8ecc1beae925289565a789d34Approve Delegati...278788412022-10-02 1:57:071 day 9 hrs ago0xc3a0a3dd9d954ede6ba93bfcd0c9e70b92e0b266 IN Aave: vWETH Token V30 ETH0.00001151
0x89b3769c9e5d23450ac58784fbeb3c2c482ecb1679dce96382636e46e258ec7bApprove Delegati...277935232022-10-01 14:10:251 day 21 hrs ago0x1867716cb75ceb4475ba76fbbf718d37b5618021 IN Aave: vWETH Token V30 ETH0.00001721
0x3d0e1038f23e877615728ebec8a3dd5daa7e338389da0c5574c8a91b8a5707c5Approve Delegati...277510932022-10-01 9:45:422 days 1 hr ago0xd2aa9428257667576d42fd6641d4a492b79009c0 IN Aave: vWETH Token V30 ETH0.00001083
0x05a1f95d8f09dc35471ae0e60aacb2a32d3c5313ed167260797caad5fd39c6b6Approve Delegati...277432732022-10-01 9:01:182 days 2 hrs ago0x685a49183dbda00bb7b8b9e90d4c152b9db9ee33 IN Aave: vWETH Token V30 ETH0.00001136
0xfb73bb83f8e36c0113b10b3bcf7bd451cbd11800d51f1a4ced231f5f045a5dbbApprove Delegati...276977022022-10-01 3:19:042 days 8 hrs ago0xf5bce02e24313618ed2e8318dee2b86bf53cd53c IN Aave: vWETH Token V30 ETH0.0000162
0x45eebb5a0bddfbee67dff9ff0f0462d1b5422c698c65891e4f9b09f21b92b23cApprove Delegati...276772722022-09-30 23:26:572 days 12 hrs ago0x835d49bf406bb7aac82fb114d316d9dc7456a2bb IN Aave: vWETH Token V30 ETH0.00002549
0x6ed9c0055008c358662194be8c6883c15d34dcdaedbdf44e3fc359ed78ad734aApprove Delegati...276351662022-09-30 16:17:132 days 19 hrs ago0x0577207634a90e6f48d7a279f398653b74128540 IN Aave: vWETH Token V30 ETH0.00004189
0xa7cf3462c64694f8bddb1aae664505b235cc8d213dc04c0b5d5ba510c1fa0b2aApprove Delegati...276081162022-09-30 13:37:442 days 21 hrs ago0x5524c33467183c56d37d701b6d90c1773049f16e IN Aave: vWETH Token V30 ETH0.00002659
0x4d0514d6d0e2a9fd649cf78fe1fc85d93974612d3df4c5bc7b7e21d7285ce7d8Approve Delegati...276002222022-09-30 12:49:292 days 22 hrs ago0x0c093ef6b99554c9fe2dbd2faee75da4584b75cc IN Aave: vWETH Token V30 ETH0.00001929
0x1a1838c7ac340f9306525573029ba87c75c13a5b56a84a36356692c144ac85c5Approve Delegati...275931072022-09-30 12:09:292 days 23 hrs ago0xbe16892ed5185cbd69f3f2708de5263645240a65 IN Aave: vWETH Token V30 ETH0.00001638
0x8a1ce41bedb2310e3314c3b990d950e61a95246f0242b4f715f8a3c44f9f1affApprove Delegati...275483332022-09-30 7:16:383 days 4 hrs ago0x7279f93a1c383743fbcbb0730d9c7623bac7e3a4 IN Aave: vWETH Token V30 ETH0.00001668
0x470f45134e0626c2e77ef61d66324d2141966b3a5189cefd580e9549135aa2f4Approve Delegati...275468402022-09-30 7:08:163 days 4 hrs ago0x3a8d75b79a27d75107c697301e8120d6ee47535d IN Aave: vWETH Token V30 ETH0.00001746
0x89d13c0d30e04e25ac8e945afdb90f93d85f2a0193d0f2d5fef94bf8e5678404Approve Delegati...275451362022-09-30 6:58:053 days 4 hrs ago0xf3a11f948ffc1ec0becf7961d9a0c013249a573c IN Aave: vWETH Token V30 ETH0.00001671
0x91fe53ec30defa4a492f6aba3b3923ac6eaab23c754f8fb3b91f0b4627262b39Approve Delegati...275426772022-09-30 6:43:323 days 4 hrs ago0xe452d49486a37247040c7fe045eba3a55338fc70 IN Aave: vWETH Token V30 ETH0.00001723
0xab2e052a43cf21b594f014c72e1184fe63f8b1b4ca1eaf1d707abde1e050bc82Approve Delegati...275411212022-09-30 6:33:433 days 4 hrs ago0x5c149318e8295f398bb555de04fe8753688782c8 IN Aave: vWETH Token V30 ETH0.00001847
0xc4875b2af8abd86650ac57acb1d7c8af2a7ece04e69f1a7a51766540760eff53Approve Delegati...275321652022-09-30 5:29:333 days 6 hrs ago0x017120d0988a5173a6363d07f5409df2feabb237 IN Aave: vWETH Token V30 ETH0.00002187
0x21a106e0156f074853db111beb630d67c35ef651bb0713ff8d6256a59e8b9c33Approve Delegati...275109592022-09-30 2:32:173 days 9 hrs ago0xf64e6706abd2f5e27c3467fa41c60941acdef219 IN Aave: vWETH Token V30 ETH0.000018
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xb32c6748b3f1f603b9e6990a8dec158834cdcfdf6456d9fdc82219312171fbce281544102022-10-03 11:32:2755 secs ago Aave: vWETH Token V30x81387c40eb75acb02757c1ae55d5936e78c9ded30 ETH
0xb32c6748b3f1f603b9e6990a8dec158834cdcfdf6456d9fdc82219312171fbce281544102022-10-03 11:32:2755 secs ago Aave: Pool V3Aave: vWETH Token V30 ETH
0xa94341262eb2169e7dc7bbb99ff83543c7ad00ea2b930b91b89d9b8fe46ac3de281543562022-10-03 11:32:041 min ago Aave: vWETH Token V30x81387c40eb75acb02757c1ae55d5936e78c9ded30 ETH
0xa94341262eb2169e7dc7bbb99ff83543c7ad00ea2b930b91b89d9b8fe46ac3de281543562022-10-03 11:32:041 min ago Aave: Pool V3Aave: vWETH Token V30 ETH
0x60d5a11eee038f6ff9964ef714a22d6184dd9782ed99dc262d8ae1a04b6a0d29281541412022-10-03 11:30:173 mins ago Aave: vWETH Token V30x81387c40eb75acb02757c1ae55d5936e78c9ded30 ETH
0x60d5a11eee038f6ff9964ef714a22d6184dd9782ed99dc262d8ae1a04b6a0d29281541412022-10-03 11:30:173 mins ago Aave: Pool V3Aave: vWETH Token V30 ETH
0x5046795f709ecfeb17363ce0ce35a870e2b8baac9b7e5c76e3b41b224fe75870281540332022-10-03 11:29:253 mins ago Aave: vWETH Token V30x81387c40eb75acb02757c1ae55d5936e78c9ded30 ETH
0x5046795f709ecfeb17363ce0ce35a870e2b8baac9b7e5c76e3b41b224fe75870281540332022-10-03 11:29:253 mins ago Aave: Pool V3Aave: vWETH Token V30 ETH
0xd6e064bb2f988ad5a3fbbf73ebc742a58f00586c92efd89cf3bb86b51bc367bd281533462022-10-03 11:23:419 mins ago Aave: vWETH Token V30x81387c40eb75acb02757c1ae55d5936e78c9ded30 ETH
0xd6e064bb2f988ad5a3fbbf73ebc742a58f00586c92efd89cf3bb86b51bc367bd281533462022-10-03 11:23:419 mins ago Aave: Pool V3Aave: vWETH Token V30 ETH
0xd6e064bb2f988ad5a3fbbf73ebc742a58f00586c92efd89cf3bb86b51bc367bd281533462022-10-03 11:23:419 mins ago Aave: vWETH Token V30x81387c40eb75acb02757c1ae55d5936e78c9ded30 ETH
0xd6e064bb2f988ad5a3fbbf73ebc742a58f00586c92efd89cf3bb86b51bc367bd281533462022-10-03 11:23:419 mins ago Aave: Pool V3Aave: vWETH Token V30 ETH
0xd6e064bb2f988ad5a3fbbf73ebc742a58f00586c92efd89cf3bb86b51bc367bd281533462022-10-03 11:23:419 mins ago Aave: vWETH Token V30x81387c40eb75acb02757c1ae55d5936e78c9ded30 ETH
0xd6e064bb2f988ad5a3fbbf73ebc742a58f00586c92efd89cf3bb86b51bc367bd281533462022-10-03 11:23:419 mins ago Aave: Pool Data Provider V3Aave: vWETH Token V30 ETH
0xd6e064bb2f988ad5a3fbbf73ebc742a58f00586c92efd89cf3bb86b51bc367bd281533462022-10-03 11:23:419 mins ago Aave: vWETH Token V30x81387c40eb75acb02757c1ae55d5936e78c9ded30 ETH
0xd6e064bb2f988ad5a3fbbf73ebc742a58f00586c92efd89cf3bb86b51bc367bd281533462022-10-03 11:23:419 mins ago Aave: Pool Data Provider V3Aave: vWETH Token V30 ETH
0xe1518189e0f364f75bc00a0d2bf799225a487c9c46ec902eff0a662c32f37e7c281528692022-10-03 11:20:0513 mins ago Aave: vWETH Token V30x81387c40eb75acb02757c1ae55d5936e78c9ded30 ETH
0xe1518189e0f364f75bc00a0d2bf799225a487c9c46ec902eff0a662c32f37e7c281528692022-10-03 11:20:0513 mins ago Aave: Pool V3Aave: vWETH Token V30 ETH
0xf62b9083ef0991b6e833010028ca1bfee6f7768ed5510ccf71fc7b20935a5752281527442022-10-03 11:18:5314 mins ago Aave: vWETH Token V30x81387c40eb75acb02757c1ae55d5936e78c9ded30 ETH
0xf62b9083ef0991b6e833010028ca1bfee6f7768ed5510ccf71fc7b20935a5752281527442022-10-03 11:18:5314 mins ago Aave: Pool V3Aave: vWETH Token V30 ETH
0xf24b77eabb6e38d2181e551af089cc93c9b5166bbbf0101dab3013e017669632281525472022-10-03 11:17:0516 mins ago Aave: vWETH Token V30x81387c40eb75acb02757c1ae55d5936e78c9ded30 ETH
0xf24b77eabb6e38d2181e551af089cc93c9b5166bbbf0101dab3013e017669632281525472022-10-03 11:17:0516 mins ago Aave: Pool V3Aave: vWETH Token V30 ETH
0xd567f58097554a57a00378cd3b119698ef897fb90e9974fae0f27f9c773575d9281523622022-10-03 11:15:3917 mins ago Aave: vWETH Token V30x81387c40eb75acb02757c1ae55d5936e78c9ded30 ETH
0xd567f58097554a57a00378cd3b119698ef897fb90e9974fae0f27f9c773575d9281523622022-10-03 11:15:3917 mins ago Aave: Pool V3Aave: vWETH Token V30 ETH
0x618782dcf0c66dcf8ebd33d24cc275041e8d268501a40768915fb269d4581917281521892022-10-03 11:13:5919 mins ago Aave: vWETH Token V3Aave: Incentives V30 ETH
[ 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 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 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.