Contract 0x078f358208685046a11c85e8ad32895ded33a249 5

 

Contract Overview

Aave: aWBTC Token V3
Balance:
0 ETH

ETH Value:
$0.00

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xd8830b9b9cf67d07676cc64b80bd6192fee6b0c6c9042366be08a7ad17e68f70Approve267426142022-09-26 6:58:203 hrs 32 mins ago0x1d0f6a5f3c1d50ef16d03ab1c00352274cba8481 IN Aave: aWBTC Token V30 ETH0.00001152
0x862e9e6c0d3387788fc95018e0928485bbd7a4d1bb71e7e33214f32645978b1dApprove265244312022-09-25 7:01:321 day 3 hrs ago0x870b38a932d7a8a888643e301717c1343b512467 IN Aave: aWBTC Token V30 ETH0.00000976
0x71ec5685a6a46b0780bd401d27cec5f4103a98de5eaa8489c7cb19d5eb002909Approve264531782022-09-24 20:35:161 day 13 hrs ago0xb3a1817d3a3df428daf62d094e7464c1bfa9c8bc IN Aave: aWBTC Token V30 ETH0.00001191
0x4b3b29159f711b0a810c385b95f918bfcda2efe6955c8eb88c1acb8bae492a11Approve263297632022-09-24 6:20:222 days 4 hrs ago0x1c54c331ac240cbc5e8ab94937ce42729fc85d75 IN Aave: aWBTC Token V30 ETH0.00000966
0x7857638717d5744d0608cff13e225a70b22a825a287f1c090a5b62c22298dbf4Approve262394872022-09-23 17:42:282 days 16 hrs ago0x5796f85dde9abfc2bbb28d086dee994d970a4561 IN Aave: aWBTC Token V30 ETH0.0000173
0x61bf1e746059f351504c54ae24f080eeed85f04cf7943365db30297e0170d651Approve262331462022-09-23 17:02:292 days 17 hrs ago0x5f73a24771940b8c80b3570694072f606df913cc IN Aave: aWBTC Token V30 ETH0.00001959
0x58b9232dddfd15a8c553c7b5824d7b61eafd4890cd34b601e6bfda9fd0f08121Approve261836462022-09-23 12:59:502 days 21 hrs ago0xc16b76c25b60e5970ace61c719ca263133ccc1b3 IN Aave: aWBTC Token V30 ETH0.00001407
0xd585af4b03db8f9ff8d64d60ed1dab5ef4447e3a544c8f40184f64b8e749c85bApprove261664882022-09-23 11:27:532 days 23 hrs ago0x0e0a6480f96024fa55805f7321f2b11cf09a3f4b IN Aave: aWBTC Token V30 ETH0.00001051
0xeb782ae3bfaff23f5a22f87dd2644a4d73207d63a06d8a97fa43b0773049551eApprove259665512022-09-22 13:16:453 days 21 hrs ago0x5e59123b53bfaa4632183b115c9f93fb71fb2bae IN Aave: aWBTC Token V30 ETH0.00001507
0xfefa493e92aae8234172a35c84d70ecdc1a58811eebda96a5440a179f355bbc4Approve259002322022-09-22 7:17:114 days 3 hrs ago0x68fe51b31845f208c39668fca7b683fb6e58fbcb IN Aave: aWBTC Token V30 ETH0.00000759
0x27261a7bcc6a36287ec759da25a6566a441b4e44026dc4d426b1140292ff435bApprove257556662022-09-21 18:31:524 days 15 hrs ago0xd2024a7c947dada411cb2b51dfd140eb358fd8d9 IN Aave: aWBTC Token V30 ETH0.00017423
0x0e8c2f059740c03ee2ba883011687e06043c00e672d748aaa98eaf6c68538e2dApprove255795672022-09-20 22:58:465 days 11 hrs ago0x8fc45d41d38e892552951c0cad384359e9d60496 IN Aave: aWBTC Token V30 ETH0.00002815
0xa40402eed41822018f3c437eadaa16969854a05dfe31ff12754be2cd510a215eTransfer253772542022-09-20 2:36:476 days 7 hrs ago0x3e9c43f09834250b7623058b3369c9209221280b IN Aave: aWBTC Token V30 ETH0.0000194
0xbaaeac77d57dc82b2ca1f95b217fd411502af7a8b38f7bd7c40077f8a7842d23Approve251812422022-09-18 22:00:337 days 12 hrs ago0x5b708f57a450b2843ad56e23412310c32cafc33e IN Aave: aWBTC Token V30 ETH0.00001063
0xe7e0db6845774a019107e7a69084734747b6407f7dd926fc4e58f440d7267f08Approve250881382022-09-18 7:15:118 days 3 hrs ago0xd95689c3ffca42f91fd347164c4eb6558ba96d18 IN Aave: aWBTC Token V30 ETH0.00000895
0x4cae29becb199d911ff7592ea3757e1533dc8fe3e3c37b9609ee5e09ddcdc814Approve248544952022-09-16 8:24:2610 days 2 hrs ago0x4a410f7bb57edf9dd0aff761781e5c2e9f8b62ac IN Aave: aWBTC Token V30 ETH0.00000785
0xf6f46569329a2bc5e81f710fdd1e2f63f723b5cd76b93ecf3542f50b4616f6b2Approve246569592022-09-14 21:51:4011 days 12 hrs ago0x4944b51e22d94840b0e86551b4dfb0b67d1cd487 IN Aave: aWBTC Token V30 ETH0.000046
0x129b0d3fa911890f8a9099887e99effdada6a3b4e40057959535074e42191965Approve245074672022-09-13 22:25:3912 days 12 hrs ago0xd3e9af5b0c1fc2edd6a7907076cd9c79e67de6ac IN Aave: aWBTC Token V30 ETH0.00002722
0x22dc802b9fcaa814a06b85851cd01489b7dd8500a791534405f12f4afdad572cApprove245070202022-09-13 22:20:1912 days 12 hrs ago0x2b35714bb72b6e2fb7a016ade91b14496f9c3344 IN Aave: aWBTC Token V30 ETH0.00002787
0xea2b4fcd8d0550fa1511569f62c54ef5d49287f3cc4cebd4dff106fef4eb12f7Approve244432262022-09-13 15:04:3612 days 19 hrs ago0xdb16225f58b78856ea43085b725cfb9d3481ed33 IN Aave: aWBTC Token V30 ETH0.00005852
0x1db0398016aa27a3c2b7eee17c873e371cd525761e2f367631e40e8bae64364bApprove242846592022-09-12 17:01:4513 days 17 hrs ago0xd3e9af5b0c1fc2edd6a7907076cd9c79e67de6ac IN Aave: aWBTC Token V30 ETH0.00007992
0xb4c4f25b428b05853792a57b3ad7b53b0681488f7e024868363641462d7431d6Approve242742162022-09-12 15:46:0313 days 18 hrs ago0x4944b51e22d94840b0e86551b4dfb0b67d1cd487 IN Aave: aWBTC Token V30 ETH0.00013845
0x4f8d4f9f89f13a8edce078ade0c53367609f5b98a10f6d0959b3f0946d071222Approve242485802022-09-12 12:14:3213 days 22 hrs ago0x1e73f00a984d4f221ce638a6dbfdb7cce155cc6d IN Aave: aWBTC Token V30 ETH0.00002367
0x39c0473e13ae16742173e39f2bd5a682244454beefdd4a2394f353d40f5ed546Approve241941042022-09-12 6:25:5814 days 4 hrs ago0x1fad0c3908687432d497138202b289d4198d8cd0 IN Aave: aWBTC Token V30 ETH0.00001251
0xc094294b8f4a827e5c3540e5f9ac3897d87549277b8bb7f0b80c5d12d7b209e8Approve241410762022-09-11 19:52:5814 days 14 hrs ago0x609f2d0d8da7c4cc010fc0c3fd62f7979330364d IN Aave: aWBTC Token V30 ETH0.00044642
[ 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
0xcb0281fe1b6d73beb1a2358f8cf0ea6dbb3aa2da598fedf54b66aad15389c6b6267831652022-09-26 10:25:005 mins ago Aave: aWBTC Token V30xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 ETH
0xcb0281fe1b6d73beb1a2358f8cf0ea6dbb3aa2da598fedf54b66aad15389c6b6267831652022-09-26 10:25:005 mins ago Aave: Pool V3Aave: aWBTC Token V30 ETH
0x891c1c64e33c29ed28f46014c5fe60ce7c4c6e328ca9be42ba8bf3db2ab9beff267820132022-09-26 10:10:0420 mins ago Aave: aWBTC Token V30xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 ETH
0x891c1c64e33c29ed28f46014c5fe60ce7c4c6e328ca9be42ba8bf3db2ab9beff267820132022-09-26 10:10:0420 mins ago Aave: Pool V3Aave: aWBTC Token V30 ETH
0x23f8c8059fa321631028ec098db872067797bce367ff287b5dca4e8203a0d908267819952022-09-26 10:09:4520 mins ago Aave: aWBTC Token V3Aave: Incentives V30 ETH
0x23f8c8059fa321631028ec098db872067797bce367ff287b5dca4e8203a0d908267819952022-09-26 10:09:4520 mins ago Aave: aWBTC Token V30xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 ETH
0x23f8c8059fa321631028ec098db872067797bce367ff287b5dca4e8203a0d908267819952022-09-26 10:09:4520 mins ago Aave: Pool V3Aave: aWBTC Token V30 ETH
0x0eba9518731507432be5b90eedde83ad4359cd5c3e83f6bb5e9f9f9d3bc19955267769982022-09-26 9:40:0650 mins ago Aave: aWBTC Token V3Aave: Incentives V30 ETH
0x0eba9518731507432be5b90eedde83ad4359cd5c3e83f6bb5e9f9f9d3bc19955267769982022-09-26 9:40:0650 mins ago Aave: aWBTC Token V30xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 ETH
0x0eba9518731507432be5b90eedde83ad4359cd5c3e83f6bb5e9f9f9d3bc19955267769982022-09-26 9:40:0650 mins ago Aave: Pool V3Aave: aWBTC Token V30 ETH
0xb207501caeb2d428e58c027fdc00a144f3384904d4845956a205f925fbe83fd9267734312022-09-26 9:21:211 hr 9 mins ago Aave: aWBTC Token V30xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 ETH
0xb207501caeb2d428e58c027fdc00a144f3384904d4845956a205f925fbe83fd9267734312022-09-26 9:21:211 hr 9 mins ago Aave: Pool V3Aave: aWBTC Token V30 ETH
0x0dae05f9557b62e638e30614e225d1e1e97eab06ede232f71c4c67da540bac45267692172022-09-26 8:59:471 hr 30 mins ago Aave: aWBTC Token V30x2f2a2543b76a4166549f7aab2e75bef0aefc5b0f0 ETH
0x0dae05f9557b62e638e30614e225d1e1e97eab06ede232f71c4c67da540bac45267692172022-09-26 8:59:471 hr 30 mins ago Aave: aWBTC Token V30xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 ETH
0x0dae05f9557b62e638e30614e225d1e1e97eab06ede232f71c4c67da540bac45267692172022-09-26 8:59:471 hr 30 mins ago Aave: Pool V3Aave: aWBTC Token V30 ETH
0xda0bd5e36b6cedcc52913a3526c96779b7a3c402f744e89a4beaea788bf0787f267619962022-09-26 8:25:542 hrs 4 mins ago Aave: aWBTC Token V3Aave: Incentives V30 ETH
0xda0bd5e36b6cedcc52913a3526c96779b7a3c402f744e89a4beaea788bf0787f267619962022-09-26 8:25:542 hrs 4 mins ago Aave: aWBTC Token V30xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 ETH
0xda0bd5e36b6cedcc52913a3526c96779b7a3c402f744e89a4beaea788bf0787f267619962022-09-26 8:25:542 hrs 4 mins ago Aave: Pool V3Aave: aWBTC Token V30 ETH
0xcc5c08f1eba8b80c215b47ab8f850f07266c985159172650061d03e413b4a585267605242022-09-26 8:19:352 hrs 11 mins ago Aave: aWBTC Token V30xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 ETH
0xcc5c08f1eba8b80c215b47ab8f850f07266c985159172650061d03e413b4a585267605242022-09-26 8:19:352 hrs 11 mins ago Aave: Pool V3Aave: aWBTC Token V30 ETH
0x3189d3f2961d3fd9f5ba301f59d072e8896322e7e3d0b319887d1004bc0a040c267594602022-09-26 8:15:172 hrs 15 mins ago Aave: aWBTC Token V30xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 ETH
0x3189d3f2961d3fd9f5ba301f59d072e8896322e7e3d0b319887d1004bc0a040c267594602022-09-26 8:15:172 hrs 15 mins ago Aave: Pool V3Aave: aWBTC Token V30 ETH
0x9dbef1d1d3998dd1165b1c65dd200e9b2e017a43483bd5230942f8b00b69b045267592722022-09-26 8:14:312 hrs 16 mins ago Aave: aWBTC Token V30xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 ETH
0x9dbef1d1d3998dd1165b1c65dd200e9b2e017a43483bd5230942f8b00b69b045267592722022-09-26 8:14:312 hrs 16 mins ago Aave: Pool V3Aave: aWBTC Token V30 ETH
0x65da35b764d007d4e00a45bc9bd1d35f4ac2f74a12461e33ea9cfab32936149c267589502022-09-26 8:13:112 hrs 17 mins ago Aave: aWBTC Token V30xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 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.