Contract 0x078f358208685046a11C85e8ad32895DED33A249 5

 

Contract Overview

Aave: aWBTC Token V3
Balance:
0 Ether

EtherValue:
$0.00

Token:
Txn Hash Method
Index
From
To
Value
0x491cf7218049d395238ad7f0ad90cd27fd40289c335a896e5e10140b907d0e92Approve263363132022-09-29 21:08:091 day 1 hr ago0xc74b4e5c59c75af10b2e41e22605c9a7e4cf1ebf IN  Aave: aWBTC Token V30 Ether0.0000738633190.00100155
0x7782e9137917e5e991a987818c9d653e73254e474db06ffe05319a27c6ba94fbApprove261003882022-09-28 21:57:132 days 20 mins ago0x01b0927399c8ca623b7bfa29e926017b9eadc470 IN  Aave: aWBTC Token V30 Ether0.0001451545550.00100155
0x68acb742e9b4b30f3e79bc051ba3fd67b211194053a135c1851ec38a414c7f2bApprove257954132022-09-27 16:51:063 days 5 hrs ago0xc55b1708c1bd4c17348be40822c99028a5cdb550 IN  Aave: aWBTC Token V30 Ether0.0001941756590.00100155
0x670496d6ab43ac5a6d2231a8341f2f136e60f7e0f819d2ce1ec57a1e0e35dccbApprove256863672022-09-27 5:06:403 days 17 hrs ago0x4f309d4318a268732727f61846ea5a6094507ab1 IN  Aave: aWBTC Token V30 Ether0.0000333048490.00100155
0x52a901dd3a46eb1441c14054df1d8a1cc451fa722097e195aac851f75ab61cadApprove256166382022-09-26 18:27:184 days 3 hrs ago0x482a82761710aeaf04665bb28e32fb256b4a7bc8 IN  Aave: aWBTC Token V30 Ether0.0001045177870.00100155
0x1e6198c0bce131514c6b59750561124bffe69632f1f367ccbf268a4f12c8323eApprove256165612022-09-26 18:26:164 days 3 hrs ago0x482a82761710aeaf04665bb28e32fb256b4a7bc8 IN  Aave: aWBTC Token V30 Ether0.000087691470.00100155
0xa9c74450bdb32909027699c0f1499d480b6e15653d39763d204e310dff90c13cApprove255986252022-09-26 15:56:014 days 6 hrs ago0xaa981a7cc1e434c692a5d716cc0aa40dda117581 IN  Aave: aWBTC Token V30 Ether0.0000999166820.00100155
0x9c2117894b500795ccdc1eb5d33ffb280e639097fab1bf8977230dd0a6ee2a20Approve254052232022-09-25 21:40:255 days 37 mins ago0x3d2b82224267d25d6038184cd628d8feb2b1d7d8 IN  Aave: aWBTC Token V30 Ether0.0000485529520.00100155
0x44f20243ebf1dad48239f8e2f40d20801c654eb89277d9b132138d89a4baa329Approve251646452022-09-24 17:59:506 days 4 hrs ago0xc4f24fa48d6df95097b2577cac2caf186bc92a00 IN  Aave: aWBTC Token V30 Ether0.0000201122660.00100155
0x8db0b0b84ee73a8149108980d30cf9393f19d1e23718511571a286435d3c2e66Approve248638072022-09-23 13:33:117 days 8 hrs ago0xbe9efe8c2f21f71fc8b46442273b386ed4063951 IN  Aave: aWBTC Token V30 Ether0.0000392591670.00100155
0x3cf269d7ac5bcffa65944bd8f70316030dba0ec2c73b8a1ff582a1bed83dda40Approve243976172022-09-22 0:19:328 days 21 hrs ago0x7245a2b04b3360456c997fc79fa9d8881b82b8db IN  Aave: aWBTC Token V30 Ether0.0000464938120.00100155
0x4029acaa70d457d57941fc51b606fd5aac3040ed8d7329c9838da51f323315e0Approve243211552022-09-21 18:43:399 days 3 hrs ago0x9b1c0a061efa8e07b7a120d78fd800e9ee11167d IN  Aave: aWBTC Token V30 Ether0.0001250560780.0012
0x197b9791f57b923b92461659df785cfcaa03486614208557514818b87ee68cd9Approve242938362022-09-21 17:49:529 days 4 hrs ago0x4225fc4876c4fcda39c12e237df5437b81dd1869 IN  Aave: aWBTC Token V30 Ether0.0001070571220.001
0xa6fd8fcd477814715409c1d7f0fddf9d691d88b06542f7be6bb978c8a0656e58Approve237942302022-09-19 19:36:1011 days 2 hrs ago0xbdec7287c08c0c153f9843c4796d59e3bf7178e4 IN  Aave: aWBTC Token V30 Ether0.0000790998440.001
0xeee335a85f49e1c461fe8e4fdac4dfcd2cc4cdcf25dbf4da149218c91374dcd4Approve237592052022-09-19 13:58:3211 days 8 hrs ago0x40fccca8bf2a2eb8e1cadf03dad124113a75c744 IN  Aave: aWBTC Token V30 Ether0.0000586222190.001
0xb4431cf4b02e50b180e68882622fe6c269a495666ff7fb524e3724dca99c32a1Approve237025822022-09-19 5:00:1611 days 17 hrs ago0x4d3869e2451d28bb4f03aeda60322eaf01e912db IN  Aave: aWBTC Token V30 Ether0.0000123906020.0012
0x335e75adf9518e5c06bfef56cb9bdb3a03d365a5a0be23e8e7bde905add163d7Approve236910102022-09-19 2:50:0211 days 19 hrs ago0xa74fc1f2598d26524e4e9f8c422863031e0420a5 IN  Aave: aWBTC Token V30 Ether0.0000399949150.001
0xac654dd828ba62626af359a28e14e9eabc0058f6d9e509d127b963f3a199c068Approve235829692022-09-18 7:05:1012 days 15 hrs ago0xd95689c3ffca42f91fd347164c4eb6558ba96d18 IN  Aave: aWBTC Token V30 Ether0.0000191250380.001
0x28f8084da693567c1e0c5c21aaa4bc7a1d76958187988d505066648f1d9597baApprove234112462022-09-16 11:05:5214 days 11 hrs ago0x08abb2e7b586d80543b61daa91a9d134234d26d5 IN  Aave: aWBTC Token V30 Ether0.0000204615540.001
0x3821f6d5ebafe1a203b5634dd95bfce4113673a02f3fd7cbc048eb7f5f4805a5Approve234043992022-09-16 9:37:3314 days 12 hrs ago0x88b0ea576428da635d0fa9deb686765c90cfde2e IN  Aave: aWBTC Token V30 Ether0.0000254634030.001
0x684857cd9d26e06c333bb469937a4e288fd6b6aa927f5f81c5922f1f370be1ebApprove233581252022-09-16 0:36:4114 days 21 hrs ago0xc55bc0c260272888fc1ce04f18e3e0e460739601 IN  Aave: aWBTC Token V30 Ether0.0000329012320.001
0xd93c54385aafa1e2f44ab2f192c62d0efe05929182778a299db820bb35f08ca5Approve233421022022-09-15 22:27:2514 days 23 hrs ago0xbf9b4d7fbd072a17d39df9f2a51f764ef047f457 IN  Aave: aWBTC Token V30 Ether0.0000408216730.001
0x1e7b0a618f55097bab5bea1249af8e2c93a61bbdd1612a1bb84755545c28a0caApprove232047842022-09-15 4:33:4315 days 17 hrs ago0x0be33f55aaa6e827a29a9b889f5c1e4863b88342 IN  Aave: aWBTC Token V30 Ether0.0000414457630.001
0xf98c08f5a50dd14ce97f4afccb277d86dd2f5b2616c1e1a57ca7dd0219a60e4aApprove231446392022-09-14 17:44:4216 days 4 hrs ago0x6be25de24b32951bd284408cf71f0cf5822a1dec IN  Aave: aWBTC Token V30 Ether0.0001032129080.001
0xecb0e16cf54bec6e035b0d58d179024086d16576845eaad30f4a54a2a4235f58Approve230343782022-09-13 21:19:2917 days 58 mins ago0xf9aa490e4581a4029762a170e9b16959f846afcf IN  Aave: aWBTC Token V30 Ether0.0000664117190.001
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x5ecdaeb7066308ca7f590c3e60096ba0f8e6c38a0e37139551df6122f0e7fce8265827552022-09-30 22:15:531 min ago Aave: aWBTC Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x5ecdaeb7066308ca7f590c3e60096ba0f8e6c38a0e37139551df6122f0e7fce8265827552022-09-30 22:15:531 min ago Aave: Incentives V3 Aave: aWBTC Token V30 Ether
0xcddfc19d54c2231330f7aba7a4f224997d624c820f21c71854fdfca865faf231265814502022-09-30 22:07:1110 mins ago Aave: aWBTC Token V3 Wrapped BTC: WBTC Token0 Ether
0xcddfc19d54c2231330f7aba7a4f224997d624c820f21c71854fdfca865faf231265814502022-09-30 22:07:1110 mins ago Aave: aWBTC Token V3 Aave: Incentives V30 Ether
0xcddfc19d54c2231330f7aba7a4f224997d624c820f21c71854fdfca865faf231265814502022-09-30 22:07:1110 mins ago Aave: aWBTC Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0xcddfc19d54c2231330f7aba7a4f224997d624c820f21c71854fdfca865faf231265814502022-09-30 22:07:1110 mins ago Aave: Pool V3 Aave: aWBTC Token V30 Ether
0xcddfc19d54c2231330f7aba7a4f224997d624c820f21c71854fdfca865faf231265814502022-09-30 22:07:1110 mins ago Aave: aWBTC Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0xcddfc19d54c2231330f7aba7a4f224997d624c820f21c71854fdfca865faf231265814502022-09-30 22:07:1110 mins ago Aave: Pool V3 Aave: aWBTC Token V30 Ether
0xcddfc19d54c2231330f7aba7a4f224997d624c820f21c71854fdfca865faf231265814502022-09-30 22:07:1110 mins ago Aave: aWBTC Token V3 Aave: Pool V30 Ether
0xcddfc19d54c2231330f7aba7a4f224997d624c820f21c71854fdfca865faf231265814502022-09-30 22:07:1110 mins ago Aave: aWBTC Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0xcddfc19d54c2231330f7aba7a4f224997d624c820f21c71854fdfca865faf231265814502022-09-30 22:07:1110 mins ago 0x75783716eab35f41b53112c77576bf4fc638a837 Aave: aWBTC Token V30 Ether
0xcddfc19d54c2231330f7aba7a4f224997d624c820f21c71854fdfca865faf231265814502022-09-30 22:07:1110 mins ago Aave: aWBTC Token V3 Aave: Pool V30 Ether
0xcddfc19d54c2231330f7aba7a4f224997d624c820f21c71854fdfca865faf231265814502022-09-30 22:07:1110 mins ago Aave: aWBTC Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0xcddfc19d54c2231330f7aba7a4f224997d624c820f21c71854fdfca865faf231265814502022-09-30 22:07:1110 mins ago 0x75783716eab35f41b53112c77576bf4fc638a837 Aave: aWBTC Token V30 Ether
0x47161a1d593863c356c1ec7de6571b2e55058769f266f606be21c26e58d1da8f265801572022-09-30 21:59:2618 mins ago Aave: aWBTC Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x47161a1d593863c356c1ec7de6571b2e55058769f266f606be21c26e58d1da8f265801572022-09-30 21:59:2618 mins ago Aave: Pool V3 Aave: aWBTC Token V30 Ether
0x7ae695289aba2404ff92bf0b60f12c3f6ccb4a2f6d34a46bdc91a0fc7c0e8f31265784882022-09-30 21:44:1833 mins ago Aave: aWBTC Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x7ae695289aba2404ff92bf0b60f12c3f6ccb4a2f6d34a46bdc91a0fc7c0e8f31265784882022-09-30 21:44:1833 mins ago Aave: Pool V3 Aave: aWBTC Token V30 Ether
0x7ae695289aba2404ff92bf0b60f12c3f6ccb4a2f6d34a46bdc91a0fc7c0e8f31265784882022-09-30 21:44:1833 mins ago Aave: aWBTC Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x7ae695289aba2404ff92bf0b60f12c3f6ccb4a2f6d34a46bdc91a0fc7c0e8f31265784882022-09-30 21:44:1833 mins ago Aave: Pool V3 Aave: aWBTC Token V30 Ether
0x7ae695289aba2404ff92bf0b60f12c3f6ccb4a2f6d34a46bdc91a0fc7c0e8f31265784882022-09-30 21:44:1833 mins ago Aave: aWBTC Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x7ae695289aba2404ff92bf0b60f12c3f6ccb4a2f6d34a46bdc91a0fc7c0e8f31265784882022-09-30 21:44:1833 mins ago Aave: Pool V3 Aave: aWBTC Token V30 Ether
0x7ae695289aba2404ff92bf0b60f12c3f6ccb4a2f6d34a46bdc91a0fc7c0e8f31265784882022-09-30 21:44:1833 mins ago Aave: aWBTC Token V3 Aave: Incentives V30 Ether
0x7ae695289aba2404ff92bf0b60f12c3f6ccb4a2f6d34a46bdc91a0fc7c0e8f31265784882022-09-30 21:44:1833 mins ago Aave: aWBTC Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x7ae695289aba2404ff92bf0b60f12c3f6ccb4a2f6d34a46bdc91a0fc7c0e8f31265784882022-09-30 21:44:1833 mins ago Aave: Pool V3 Aave: aWBTC 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.