Contract 0x625E7708f30cA75bfd92586e17077590C60eb4cD 6

 

Contract Overview

Aave: aUSDC Token V3
Balance:
0 Ether

EtherValue:
$0.00

Token:
Txn Hash Method
Index
From
To
Value
0xc29a61a2d6500cb751d9f8d9518447fd1caef6498e9142b9729b5bd09886e865Approve265726482022-09-30 20:44:162 hrs 50 mins ago0x61ab218a4206bb9b2767383aafae7291d58818d8 IN  Aave: aUSDC Token V30 Ether0.0000868446740.001
0x8840d6697ab014c8d18965bc204ce339610e9309bf1f891297789dc1b5b2f8d0Approve265626582022-09-30 19:31:484 hrs 3 mins ago0x5279c6792d38f3c8d7d870178ef3cc26c7ab5d1e IN  Aave: aUSDC Token V30 Ether0.0000677554540.0012
0x0ff484f5acc2931d31c4e931f2c0d2a5ff8f5119f18a566637185322454e4dcaApprove265077482022-09-30 14:13:549 hrs 20 mins ago0xa90f10996354a48bf0e1512428b5f2d0932c479a IN  Aave: aUSDC Token V30 Ether0.0000860592410.001
0x96bb3c49759cabc7b0f3981fbdb5c5d5941dfb6060c79865bd8a1ffca6b1a278Approve265003472022-09-30 13:44:309 hrs 50 mins ago0xa90f10996354a48bf0e1512428b5f2d0932c479a IN  Aave: aUSDC Token V30 Ether0.0000748474020.001
0xc7a85dc4b9e20d700e503191ee524b4a83138f12a59f08da4c7b422c7739c7e0Approve264461152022-09-30 9:40:1413 hrs 54 mins ago0xb0122a3b9151d7e1f5b7e1649f998a6de30c831d IN  Aave: aUSDC Token V30 Ether0.0000465870130.00100155
0xb0e4b5848f3aced06747cdc4d37d5b2fe8723af0576fd7b98628e7f64aaac789Approve263965882022-09-30 5:48:0517 hrs 46 mins ago0xe7294495206c1f5223d7f0c59b004ce971760541 IN  Aave: aUSDC Token V30 Ether0.0000427473420.00100155
0x95353d45e917e692d83bce6f7c9a74ee6f9648f1d663b748bc261376ac9fe353Approve263424252022-09-29 22:19:371 day 1 hr ago0xc74b4e5c59c75af10b2e41e22605c9a7e4cf1ebf IN  Aave: aUSDC Token V30 Ether0.000044205150.00100155
0x6a102ec1cc6688fb51acc520876124b4105ba1cb616c8d7660f863fb26ffbb1dApprove263139092022-09-29 17:40:411 day 5 hrs ago0x9177eb417cd0f2ccd2662e1879af1c67e1d2779c IN  Aave: aUSDC Token V30 Ether0.0000667598680.0011
0x18c814f64ccfe0cacf0dea76631b98ace570391ac33fa4529395adc3a3dfb7cdApprove263006132022-09-29 16:06:351 day 7 hrs ago0x738c5dbca9f2d022174c7abf99da5bec001fc54d IN  Aave: aUSDC Token V30 Ether0.0003590282140.00100155
0x83328b6affa04c5688331831ffc6fa9e06a507eb7543d0998c7940a84624760cApprove262556002022-09-29 12:39:191 day 10 hrs ago0xfbf0736eb2ac1c4bb0193ae54c53e182b18037fc IN  Aave: aUSDC Token V30 Ether0.0000840974970.00100155
0xdcbf37c37bf9dd67a0e918efdb5426bf148cc41f0ab9db81b699e018423e75bbApprove262046342022-09-29 8:21:331 day 15 hrs ago0x981b3bfcc5a237b4d63ff036a11033d745eb3dd1 IN  Aave: aUSDC Token V30 Ether0.0000471173470.00100155
0x9bb086649fbf7676918080590ee7f1a9bb0ae7524b9cb1c0661d9d52aac2ae53Approve260876812022-09-28 20:20:502 days 3 hrs ago 0x2c23f12195077bee4ac4f7d598af30904a5fbf91 IN  Aave: aUSDC Token V30 Ether0.000066370460.00100155
0xc6b0cf8db22932b6f19459eacacf7ceb5a524ff15ad9577c7477afb6c4b3229fApprove259703162022-09-28 10:24:362 days 13 hrs ago0x70b46c55b8330477ff530ca5d8c75c317dbf698e IN  Aave: aUSDC Token V30 Ether0.0000499442890.00100155
0x0ce3287bddd1a1b2bd9e0add97328710f548df7cbb7feefab7e3b66ad2c3d827Approve258657742022-09-28 1:43:342 days 21 hrs ago0xffbaa0de31cd06c0031682e6e991b2515e71192e IN  Aave: aUSDC Token V30 Ether0.0000475213310.00100155
0x67b6918775afceddaeee49a32cad4462637ef257b80c01bd0bd6fae206941486Approve258004902022-09-27 17:11:323 days 6 hrs ago0x65e5071430ad6503364900db11c3309f2e1a122c IN  Aave: aUSDC Token V30 Ether0.0001694812690.00100155
0xff1a64441ca4ccdc10566c9471560591fb03711991b406265779b5354bdb750eApprove257944222022-09-27 16:46:203 days 6 hrs ago0x6be25de24b32951bd284408cf71f0cf5822a1dec IN  Aave: aUSDC Token V30 Ether0.0002149781910.00100155
0x4b0457d101dc26c325ea6e6df385f4d7e759282e67f05cadc0d58d6b31b45836Approve257405372022-09-27 11:19:233 days 12 hrs ago0xf9a9f8e82e9ccda88da7c40558cfb102e8947e5f IN  Aave: aUSDC Token V30 Ether0.0000394796340.00100155
0xd83510b983cc984deaf794da2f677f45919e56d712a4e1fb5176d2a67308ae79Approve256642702022-09-27 2:42:563 days 20 hrs ago0x9c322e8eef8f9015436a33cac1ed787a04b7dfa0 IN  Aave: aUSDC Token V30 Ether0.0000414624780.00100155
0x0733a8ee71b45354adf0cf0e14fe8e9ce3593dcaa0da4e5284f1649bfb50b56aApprove256039232022-09-26 16:33:384 days 7 hrs ago0xafc29c2ae80c368a7350766b882b9c891e0c5a06 IN  Aave: aUSDC Token V30 Ether0.0001322201740.00100155
0xfb4c19a75684311aa3e9b6ee5a6ea3b3cfb903ce1d481624220a07fce7756ba3Approve256027512022-09-26 16:25:344 days 7 hrs ago0xfcc50b34153548199888442a9bac0c58ca31058a IN  Aave: aUSDC Token V30 Ether0.0001952806450.00100155
0x6377242a68d6c553ef47c39665b921babcbe85422e2684515e96183dddccdb20Approve255984472022-09-26 15:54:304 days 7 hrs ago0xdee241dc9edcf16a8d01834b8e44c58b0aa97861 IN  Aave: aUSDC Token V30 Ether0.0001054123820.001251938
0xc72baac55a4149ad9c5263d80f9ddfd4eb8ed3a847e02df10a600b64973822b6Approve255882512022-09-26 14:58:294 days 8 hrs ago0xb28cfe82641446a4d80ca3610e1e062c9fdc9d77 IN  Aave: aUSDC Token V30 Ether0.0000857291450.00100155
0xc22854b81ebfe164a1b1b65fbb17d68d61037051d2eab00c8f1f32dfce23a637Approve255089322022-09-26 8:47:584 days 14 hrs ago0x4e1dc2c15283039d24bfc379952090818e41fd56 IN  Aave: aUSDC Token V30 Ether0.000035953940.00100155
0xd909921ddce5fd49840b0f1dd6bbae6ab3a7669c7d7018ef059adf7cd19ec2f8Approve254390562022-09-26 1:58:254 days 21 hrs ago0x8a3051731666403e53e8f11378e2f85c5b2c5960 IN  Aave: aUSDC Token V30 Ether0.0000241029750.00100155
0x6d3e8d8b821bc0632de2f63f694b6de25443d54aff0bdb90227fd1e6d86eff69Approve253810932022-09-25 18:01:145 days 5 hrs ago0x18677585f024a5f93cf17808313168603f6dc8a4 IN  Aave: aUSDC Token V30 Ether0.0000461164340.00100155
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x63fc4f6ec1f378fe1ce6faf656cd6dcf96746cfa21182c5082f0dcedae26ede2265896272022-09-30 23:33:521 min ago Aave: aUSDC Token V3 0x7f5c764cbc14f9669b88837ca1490cca17c316070 Ether
0x63fc4f6ec1f378fe1ce6faf656cd6dcf96746cfa21182c5082f0dcedae26ede2265896272022-09-30 23:33:521 min ago Aave: aUSDC Token V3 Aave: Incentives V30 Ether
0x63fc4f6ec1f378fe1ce6faf656cd6dcf96746cfa21182c5082f0dcedae26ede2265896272022-09-30 23:33:521 min ago Aave: aUSDC Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x63fc4f6ec1f378fe1ce6faf656cd6dcf96746cfa21182c5082f0dcedae26ede2265896272022-09-30 23:33:521 min ago Aave: Pool V3 Aave: aUSDC Token V30 Ether
0x63fc4f6ec1f378fe1ce6faf656cd6dcf96746cfa21182c5082f0dcedae26ede2265896272022-09-30 23:33:521 min ago Aave: aUSDC Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x63fc4f6ec1f378fe1ce6faf656cd6dcf96746cfa21182c5082f0dcedae26ede2265896272022-09-30 23:33:521 min ago Aave: Pool V3 Aave: aUSDC Token V30 Ether
0x63fc4f6ec1f378fe1ce6faf656cd6dcf96746cfa21182c5082f0dcedae26ede2265896272022-09-30 23:33:521 min ago Aave: aUSDC Token V3 Aave: Pool V30 Ether
0x63fc4f6ec1f378fe1ce6faf656cd6dcf96746cfa21182c5082f0dcedae26ede2265896272022-09-30 23:33:521 min ago Aave: aUSDC Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x63fc4f6ec1f378fe1ce6faf656cd6dcf96746cfa21182c5082f0dcedae26ede2265896272022-09-30 23:33:521 min ago 0x4ecb5300d9ec6bca09d66bfd8dcb532e3192dda1 Aave: aUSDC Token V30 Ether
0x1ede74291fc2f182f4a8830ea1b7b67261f567f1135271fdc9f15add6f904d98265895862022-09-30 23:33:371 min ago Aave: aUSDC Token V3 0x7f5c764cbc14f9669b88837ca1490cca17c316070 Ether
0x1ede74291fc2f182f4a8830ea1b7b67261f567f1135271fdc9f15add6f904d98265895862022-09-30 23:33:371 min ago Aave: aUSDC Token V3 Aave: Incentives V30 Ether
0x1ede74291fc2f182f4a8830ea1b7b67261f567f1135271fdc9f15add6f904d98265895862022-09-30 23:33:371 min ago Aave: aUSDC Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x1ede74291fc2f182f4a8830ea1b7b67261f567f1135271fdc9f15add6f904d98265895862022-09-30 23:33:371 min ago Aave: Pool V3 Aave: aUSDC Token V30 Ether
0x1ede74291fc2f182f4a8830ea1b7b67261f567f1135271fdc9f15add6f904d98265895862022-09-30 23:33:371 min ago Aave: aUSDC Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x1ede74291fc2f182f4a8830ea1b7b67261f567f1135271fdc9f15add6f904d98265895862022-09-30 23:33:371 min ago Aave: Pool V3 Aave: aUSDC Token V30 Ether
0x1ede74291fc2f182f4a8830ea1b7b67261f567f1135271fdc9f15add6f904d98265895862022-09-30 23:33:371 min ago Aave: aUSDC Token V3 Aave: Pool V30 Ether
0x1ede74291fc2f182f4a8830ea1b7b67261f567f1135271fdc9f15add6f904d98265895862022-09-30 23:33:371 min ago Aave: aUSDC Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x1ede74291fc2f182f4a8830ea1b7b67261f567f1135271fdc9f15add6f904d98265895862022-09-30 23:33:371 min ago 0x75783716eab35f41b53112c77576bf4fc638a837 Aave: aUSDC Token V30 Ether
0x1ede74291fc2f182f4a8830ea1b7b67261f567f1135271fdc9f15add6f904d98265895862022-09-30 23:33:371 min ago Aave: aUSDC Token V3 Aave: Pool V30 Ether
0x1ede74291fc2f182f4a8830ea1b7b67261f567f1135271fdc9f15add6f904d98265895862022-09-30 23:33:371 min ago Aave: aUSDC Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x1ede74291fc2f182f4a8830ea1b7b67261f567f1135271fdc9f15add6f904d98265895862022-09-30 23:33:371 min ago 0x75783716eab35f41b53112c77576bf4fc638a837 Aave: aUSDC Token V30 Ether
0x37ad8094ed7a4943470a902d60f80b943e9665a0f576ea9b1d162d3f35b3389d265895452022-09-30 23:33:061 min ago Aave: aUSDC Token V3 Aave: Incentives V30 Ether
0x37ad8094ed7a4943470a902d60f80b943e9665a0f576ea9b1d162d3f35b3389d265895452022-09-30 23:33:061 min ago Aave: aUSDC Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x37ad8094ed7a4943470a902d60f80b943e9665a0f576ea9b1d162d3f35b3389d265895452022-09-30 23:33:061 min ago Aave: Pool V3 Aave: aUSDC Token V30 Ether
0x37ad8094ed7a4943470a902d60f80b943e9665a0f576ea9b1d162d3f35b3389d265895452022-09-30 23:33:061 min ago Aave: aUSDC Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
[ Download CSV Export 
Loading

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

Contract Name:
InitializableImmutableAdminUpgradeabilityProxy

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 100000 runs

Other Settings:
default evmVersion
File 1 of 6 : InitializableImmutableAdminUpgradeabilityProxy.sol
// SPDX-License-Identifier: AGPL-3.0
pragma solidity 0.8.10;

import {InitializableUpgradeabilityProxy} from '../../../dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol';
import {Proxy} from '../../../dependencies/openzeppelin/upgradeability/Proxy.sol';
import {BaseImmutableAdminUpgradeabilityProxy} from './BaseImmutableAdminUpgradeabilityProxy.sol';

/**
 * @title InitializableAdminUpgradeabilityProxy
 * @author Aave
 * @dev Extends BaseAdminUpgradeabilityProxy with an initializer function
 */
contract InitializableImmutableAdminUpgradeabilityProxy is
  BaseImmutableAdminUpgradeabilityProxy,
  InitializableUpgradeabilityProxy
{
  /**
   * @dev Constructor.
   * @param admin The address of the admin
   */
  constructor(address admin) BaseImmutableAdminUpgradeabilityProxy(admin) {
    // Intentionally left blank
  }

  /// @inheritdoc BaseImmutableAdminUpgradeabilityProxy
  function _willFallback() internal override(BaseImmutableAdminUpgradeabilityProxy, Proxy) {
    BaseImmutableAdminUpgradeabilityProxy._willFallback();
  }
}

File 2 of 6 : InitializableUpgradeabilityProxy.sol
// SPDX-License-Identifier: agpl-3.0
pragma solidity 0.8.10;

import './BaseUpgradeabilityProxy.sol';

/**
 * @title InitializableUpgradeabilityProxy
 * @dev Extends BaseUpgradeabilityProxy with an initializer for initializing
 * implementation and init data.
 */
contract InitializableUpgradeabilityProxy is BaseUpgradeabilityProxy {
  /**
   * @dev Contract initializer.
   * @param _logic Address of the initial implementation.
   * @param _data Data to send as msg.data to the implementation to initialize the proxied contract.
   * It should include the signature and the parameters of the function to be called, as described in
   * https://solidity.readthedocs.io/en/v0.4.24/abi-spec.html#function-selector-and-argument-encoding.
   * This parameter is optional, if no data is given the initialization call to proxied contract will be skipped.
   */
  function initialize(address _logic, bytes memory _data) public payable {
    require(_implementation() == address(0));
    assert(IMPLEMENTATION_SLOT == bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1));
    _setImplementation(_logic);
    if (_data.length > 0) {
      (bool success, ) = _logic.delegatecall(_data);
      require(success);
    }
  }
}

File 3 of 6 : Proxy.sol
// SPDX-License-Identifier: agpl-3.0
pragma solidity 0.8.10;

/**
 * @title Proxy
 * @dev Implements delegation of calls to other contracts, with proper
 * forwarding of return values and bubbling of failures.
 * It defines a fallback function that delegates all calls to the address
 * returned by the abstract _implementation() internal function.
 */
abstract contract Proxy {
  /**
   * @dev Fallback function.
   * Will run if no other function in the contract matches the call data.
   * Implemented entirely in `_fallback`.
   */
  fallback() external payable {
    _fallback();
  }

  /**
   * @return The Address of the implementation.
   */
  function _implementation() internal view virtual returns (address);

  /**
   * @dev Delegates execution to an implementation contract.
   * This is a low level function that doesn't return to its internal call site.
   * It will return to the external caller whatever the implementation returns.
   * @param implementation Address to delegate.
   */
  function _delegate(address implementation) internal {
    //solium-disable-next-line
    assembly {
      // Copy msg.data. We take full control of memory in this inline assembly
      // block because it will not return to Solidity code. We overwrite the
      // Solidity scratch pad at memory position 0.
      calldatacopy(0, 0, calldatasize())

      // Call the implementation.
      // out and outsize are 0 because we don't know the size yet.
      let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)

      // Copy the returned data.
      returndatacopy(0, 0, returndatasize())

      switch result
      // delegatecall returns 0 on error.
      case 0 {
        revert(0, returndatasize())
      }
      default {
        return(0, returndatasize())
      }
    }
  }

  /**
   * @dev Function that is run as the first thing in the fallback function.
   * Can be redefined in derived contracts to add functionality.
   * Redefinitions must call super._willFallback().
   */
  function _willFallback() internal virtual {}

  /**
   * @dev fallback implementation.
   * Extracted to enable manual triggering.
   */
  function _fallback() internal {
    _willFallback();
    _delegate(_implementation());
  }
}

File 4 of 6 : BaseImmutableAdminUpgradeabilityProxy.sol
// SPDX-License-Identifier: AGPL-3.0
pragma solidity 0.8.10;

import {BaseUpgradeabilityProxy} from '../../../dependencies/openzeppelin/upgradeability/BaseUpgradeabilityProxy.sol';

/**
 * @title BaseImmutableAdminUpgradeabilityProxy
 * @author Aave, inspired by the OpenZeppelin upgradeability proxy pattern
 * @notice This contract combines an upgradeability proxy with an authorization
 * mechanism for administrative tasks.
 * @dev The admin role is stored in an immutable, which helps saving transactions costs
 * All external functions in this contract must be guarded by the
 * `ifAdmin` modifier. See ethereum/solidity#3864 for a Solidity
 * feature proposal that would enable this to be done automatically.
 */
contract BaseImmutableAdminUpgradeabilityProxy is BaseUpgradeabilityProxy {
  address internal immutable _admin;

  /**
   * @dev Constructor.
   * @param admin The address of the admin
   */
  constructor(address admin) {
    _admin = admin;
  }

  modifier ifAdmin() {
    if (msg.sender == _admin) {
      _;
    } else {
      _fallback();
    }
  }

  /**
   * @notice Return the admin address
   * @return The address of the proxy admin.
   */
  function admin() external ifAdmin returns (address) {
    return _admin;
  }

  /**
   * @notice Return the implementation address
   * @return The address of the implementation.
   */
  function implementation() external ifAdmin returns (address) {
    return _implementation();
  }

  /**
   * @notice Upgrade the backing implementation of the proxy.
   * @dev Only the admin can call this function.
   * @param newImplementation The address of the new implementation.
   */
  function upgradeTo(address newImplementation) external ifAdmin {
    _upgradeTo(newImplementation);
  }

  /**
   * @notice Upgrade the backing implementation of the proxy and call a function
   * on the new implementation.
   * @dev This is useful to initialize the proxied contract.
   * @param newImplementation The address of the new implementation.
   * @param data Data to send as msg.data in the low level call.
   * It should include the signature and the parameters of the function to be called, as described in
   * https://solidity.readthedocs.io/en/v0.4.24/abi-spec.html#function-selector-and-argument-encoding.
   */
  function upgradeToAndCall(address newImplementation, bytes calldata data)
    external
    payable
    ifAdmin
  {
    _upgradeTo(newImplementation);
    (bool success, ) = newImplementation.delegatecall(data);
    require(success);
  }

  /**
   * @notice Only fall back when the sender is not the admin.
   */
  function _willFallback() internal virtual override {
    require(msg.sender != _admin, 'Cannot call fallback function from the proxy admin');
    super._willFallback();
  }
}

File 5 of 6 : BaseUpgradeabilityProxy.sol
// SPDX-License-Identifier: agpl-3.0
pragma solidity 0.8.10;

import './Proxy.sol';
import '../contracts/Address.sol';

/**
 * @title BaseUpgradeabilityProxy
 * @dev This contract implements a proxy that allows to change the
 * implementation address to which it will delegate.
 * Such a change is called an implementation upgrade.
 */
contract BaseUpgradeabilityProxy is Proxy {
  /**
   * @dev Emitted when the implementation is upgraded.
   * @param implementation Address of the new implementation.
   */
  event Upgraded(address indexed implementation);

  /**
   * @dev Storage slot with the address of the current implementation.
   * This is the keccak-256 hash of "eip1967.proxy.implementation" subtracted by 1, and is
   * validated in the constructor.
   */
  bytes32 internal constant IMPLEMENTATION_SLOT =
    0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;

  /**
   * @dev Returns the current implementation.
   * @return impl Address of the current implementation
   */
  function _implementation() internal view override returns (address impl) {
    bytes32 slot = IMPLEMENTATION_SLOT;
    //solium-disable-next-line
    assembly {
      impl := sload(slot)
    }
  }

  /**
   * @dev Upgrades the proxy to a new implementation.
   * @param newImplementation Address of the new implementation.
   */
  function _upgradeTo(address newImplementation) internal {
    _setImplementation(newImplementation);
    emit Upgraded(newImplementation);
  }

  /**
   * @dev Sets the implementation address of the proxy.
   * @param newImplementation Address of the new implementation.
   */
  function _setImplementation(address newImplementation) internal {
    require(
      Address.isContract(newImplementation),
      'Cannot set a proxy implementation to a non-contract address'
    );

    bytes32 slot = IMPLEMENTATION_SLOT;

    //solium-disable-next-line
    assembly {
      sstore(slot, newImplementation)
    }
  }
}

File 6 of 6 : Address.sol
// SPDX-License-Identifier: agpl-3.0
pragma solidity 0.8.10;

/**
 * @dev Collection of functions related to the address type
 */
library Address {
  /**
   * @dev Returns true if `account` is a contract.
   *
   * [IMPORTANT]
   * ====
   * It is unsafe to assume that an address for which this function returns
   * false is an externally-owned account (EOA) and not a contract.
   *
   * Among others, `isContract` will return false for the following
   * types of addresses:
   *
   *  - an externally-owned account
   *  - a contract in construction
   *  - an address where a contract will be created
   *  - an address where a contract lived, but was destroyed
   * ====
   */
  function isContract(address account) internal view returns (bool) {
    // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
    // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
    // for accounts without code, i.e. `keccak256('')`
    bytes32 codehash;
    bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
    // solhint-disable-next-line no-inline-assembly
    assembly {
      codehash := extcodehash(account)
    }
    return (codehash != accountHash && codehash != 0x0);
  }

  /**
   * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
   * `recipient`, forwarding all available gas and reverting on errors.
   *
   * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
   * of certain opcodes, possibly making contracts go over the 2300 gas limit
   * imposed by `transfer`, making them unable to receive funds via
   * `transfer`. {sendValue} removes this limitation.
   *
   * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
   *
   * IMPORTANT: because control is transferred to `recipient`, care must be
   * taken to not create reentrancy vulnerabilities. Consider using
   * {ReentrancyGuard} or the
   * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
   */
  function sendValue(address payable recipient, uint256 amount) internal {
    require(address(this).balance >= amount, 'Address: insufficient balance');

    // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
    (bool success, ) = recipient.call{value: amount}('');
    require(success, 'Address: unable to send value, recipient may have reverted');
  }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 100000
  },
  "evmVersion": "berlin",
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "metadata": {
    "useLiteralContent": true
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"admin","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"}]

60a060405234801561001057600080fd5b50604051610a0e380380610a0e83398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b6080516109606100ae6000396000818161014f015281816101a101528181610274015281816104110152818161043a01526105ab01526109606000f3fe60806040526004361061005a5760003560e01c80635c60da1b116100435780635c60da1b14610097578063d1f57894146100d5578063f851a440146100e85761005a565b80633659cfe6146100645780634f1ef28614610084575b6100626100fd565b005b34801561007057600080fd5b5061006261007f3660046106be565b610137565b6100626100923660046106e0565b610189565b3480156100a357600080fd5b506100ac61025a565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100626100e3366004610792565b6102cb565b3480156100f457600080fd5b506100ac6103f7565b61010561045c565b6101356101307f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b610464565b565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614156101815761017e81610488565b50565b61017e6100fd565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016141561024d576101d083610488565b60008373ffffffffffffffffffffffffffffffffffffffff1683836040516101f9929190610872565b600060405180830381855af49150503d8060008114610234576040519150601f19603f3d011682016040523d82523d6000602084013e610239565b606091505b505090508061024757600080fd5b50505050565b6102556100fd565b505050565b60003373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614156102c057507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6102c86100fd565b90565b60006102f57f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b73ffffffffffffffffffffffffffffffffffffffff161461031557600080fd5b61034060017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd610882565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc1461036e5761036e6108c0565b610377826104d5565b8051156103f35760008273ffffffffffffffffffffffffffffffffffffffff16826040516103a591906108ef565b600060405180830381855af49150503d80600081146103e0576040519150601f19603f3d011682016040523d82523d6000602084013e6103e5565b606091505b505090508061025557600080fd5b5050565b60003373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614156102c057507f000000000000000000000000000000000000000000000000000000000000000090565b610135610593565b3660008037600080366000845af43d6000803e808015610483573d6000f35b3d6000fd5b610491816104d5565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6104de81610659565b61056f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f60448201527f6e20746f2061206e6f6e2d636f6e74726163742061646472657373000000000060648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161415610135576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e20667260448201527f6f6d207468652070726f78792061646d696e00000000000000000000000000006064820152608401610566565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061068d57508115155b949350505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146106b957600080fd5b919050565b6000602082840312156106d057600080fd5b6106d982610695565b9392505050565b6000806000604084860312156106f557600080fd5b6106fe84610695565b9250602084013567ffffffffffffffff8082111561071b57600080fd5b818601915086601f83011261072f57600080fd5b81358181111561073e57600080fd5b87602082850101111561075057600080fd5b6020830194508093505050509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156107a557600080fd5b6107ae83610695565b9150602083013567ffffffffffffffff808211156107cb57600080fd5b818501915085601f8301126107df57600080fd5b8135818111156107f1576107f1610763565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561083757610837610763565b8160405282815288602084870101111561085057600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b8183823760009101908152919050565b6000828210156108bb577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b6000825160005b8181101561091057602081860181015185830152016108f6565b8181111561091f576000828501525b50919091019291505056fea26469706673582212207698a80201d2f92a3290973c99527c6e810eaf731191e18abe2c96acab47dca764736f6c634300080a00330000000000000000000000008145edddf43f50276641b55bd3ad95944510021e

Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.