Contract 0x92b42c66840c7ad907b4bf74879ff3ef7c529473 15

Aave 
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x4907286986669fd6ef68b28c6e30d3aa7db0b524ec2fc69b5f5bbb79330dd3a4Approve Delegati...1830804472024-02-21 18:02:539 days 8 hrs ago0x5efe0c04af29122da0e7579d6493a61ae6b35c48 IN  Aave: vWBTC Token V30 ETH0.000090530.1
0x17238cf319ae36d3012d5e3800d0a04562e335b720e07ca8f00e3d6cda628317Approve Delegati...1830746732024-02-21 17:38:029 days 9 hrs ago0x5efe0c04af29122da0e7579d6493a61ae6b35c48 IN  Aave: vWBTC Token V30 ETH0.000111730.1
0x4af7f8b8c70021358a27ecf5f20807b9f880422e1c60c0fa9f598edee9bd477bApprove Delegati...1830595312024-02-21 16:32:399 days 10 hrs ago0x7d518ee1b17e8f704e0fae6dc9073de35a1138a6 IN  Aave: vWBTC Token V30 ETH0.000114330.1
0xb05156c8fd5ab1dcec254051ec092215e188768f3724a207973f7c0f4dbbe85eApprove Delegati...1829346092024-02-21 7:47:089 days 19 hrs ago0x5efe0c04af29122da0e7579d6493a61ae6b35c48 IN  Aave: vWBTC Token V30 ETH0.000063810.1
0x08696e4950baeed16af7d49888b5f98efd37e33e4f9d53b73b85a51afcef8badApprove Delegati...1829334792024-02-21 7:42:219 days 19 hrs ago0x5efe0c04af29122da0e7579d6493a61ae6b35c48 IN  Aave: vWBTC Token V30 ETH0.000066230.1
0x7676b23c37a84f4841a1d5d514d94c74033d1cac13222f8947b7198b9dfe21a3Approve Delegati...1817174132024-02-17 16:01:5413 days 10 hrs ago0x5efe0c04af29122da0e7579d6493a61ae6b35c48 IN  Aave: vWBTC Token V30 ETH0.000067710.1
0xb59050a2dae1c464e94f6ff9589de2c7a4486935d1fc2a8843bc7ebdd9858564Approve Delegati...1816962692024-02-17 14:32:0313 days 12 hrs ago0x5efe0c04af29122da0e7579d6493a61ae6b35c48 IN  Aave: vWBTC Token V30 ETH0.000046280.1
0xcc5719e4debdcf84718f6255301ca219e2f604388e91d87200fffc44c5ec9dc3Approve Delegati...1810529992024-02-15 16:12:0215 days 10 hrs ago0x5efe0c04af29122da0e7579d6493a61ae6b35c48 IN  Aave: vWBTC Token V30 ETH0.000138590.1
0xf3c9d6e0a9413b25f669301d000c2b44546abbff571920ac86303311fba30529Approve Delegati...1810168872024-02-15 13:39:5315 days 13 hrs ago0x5efe0c04af29122da0e7579d6493a61ae6b35c48 IN  Aave: vWBTC Token V30 ETH0.000082510.1
0x715548d331022319fa288743d876bc43cfc9640db9417f56007c803a5244dfd4Approve Delegati...1806689252024-02-14 12:49:2516 days 14 hrs ago0x5efe0c04af29122da0e7579d6493a61ae6b35c48 IN  Aave: vWBTC Token V30 ETH0.000057170.1
0xa7884968d04938bf00c3b46e4ca2fbbf9314cce720f27101de5101e25ab3c502Approve Delegati...1806352132024-02-14 10:27:2516 days 16 hrs ago0x5efe0c04af29122da0e7579d6493a61ae6b35c48 IN  Aave: vWBTC Token V30 ETH0.000053430.1
0x95a165969140655223d495b92012e0cdd5ac870444f918b22b92724b1161944fApprove Delegati...1803701422024-02-13 15:32:2617 days 11 hrs ago0x5efe0c04af29122da0e7579d6493a61ae6b35c48 IN  Aave: vWBTC Token V30 ETH0.000126910.1
0x4f4cf19cde7a1233fc99b71ee087a6b6ed96294a492464b5f5f5a5c50caee1aeApprove Delegati...1803573202024-02-13 14:38:3317 days 12 hrs ago0xe82c9e36b5febf9fc2d7940d2a13bbbcf1f65ebd IN  Aave: vWBTC Token V30 ETH0.00013827 0.1
0x33c31d9adffcb1daa98d4880ba267117495d49eb616c35edbe9e75bd79961fc1Approve Delegati...1803549322024-02-13 14:28:3117 days 12 hrs ago0xe82c9e36b5febf9fc2d7940d2a13bbbcf1f65ebd IN  Aave: vWBTC Token V30 ETH0.00009528 0.14226
0x0861054215f47215008567e6bdb0dd44e5702298db161ed817aeff35be8d56a9Approve Delegati...1803545042024-02-13 14:26:4317 days 12 hrs ago0xe82c9e36b5febf9fc2d7940d2a13bbbcf1f65ebd IN  Aave: vWBTC Token V30 ETH0.00009924 0.17076
0x181903f3b104e2051ef330d4224e57195512a14c8480b7a58242f8b976c21a9aApprove Delegati...1803439112024-02-13 13:42:2917 days 13 hrs ago0x5efe0c04af29122da0e7579d6493a61ae6b35c48 IN  Aave: vWBTC Token V30 ETH0.000056810.14658
0xc571a9228b399e8a7622f6fb6498dab0f2bf1330da3f745b7007a51d0d6c4024Approve Delegati...1762816042024-02-01 5:01:2329 days 21 hrs ago0x5efe0c04af29122da0e7579d6493a61ae6b35c48 IN  Aave: vWBTC Token V30 ETH0.000040510.1
0xe821c35810dc584866ec66f9fd052521cee8d6dbbb4cdd05fb4fe8598c45a49cApprove Delegati...1761610002024-01-31 20:13:5130 days 6 hrs ago0x5efe0c04af29122da0e7579d6493a61ae6b35c48 IN  Aave: vWBTC Token V30 ETH0.000049640.1
0x2f135159e6906778af9fa1b32a4f8bff90d9b3cfc1436e3b606649f32b98cd60Approve Delegati...1761484842024-01-31 19:20:2830 days 7 hrs ago0x5efe0c04af29122da0e7579d6493a61ae6b35c48 IN  Aave: vWBTC Token V30 ETH0.000043560.1
0xe76988eac9292fafee2a5f773b70621174f46501ab58765c1f70795808011010Approve Delegati...1760479722024-01-31 12:10:5930 days 14 hrs ago0x5efe0c04af29122da0e7579d6493a61ae6b35c48 IN  Aave: vWBTC Token V30 ETH0.000050060.1
0x918c36501fce1f861e1254e3297e57f1df8dd9d118272f108e812b11890e7182Approve Delegati...1760185092024-01-31 10:06:0130 days 16 hrs ago0x5efe0c04af29122da0e7579d6493a61ae6b35c48 IN  Aave: vWBTC Token V30 ETH0.00003390.1
0x0f0e54cf711183e808402a24b0517ecb26774e3627fcc933a6346d55ab58552fApprove Delegati...1760113732024-01-31 9:36:0730 days 17 hrs ago0x46224adc611146a0af57e097d453d93a05cad259 IN  Aave: vWBTC Token V30 ETH0.000044880.1
0x28394ab590ff90f322566ee37c3242a4d368b392bc89fce0985f339379b3a982Approve Delegati...1760106462024-01-31 9:33:0030 days 17 hrs ago0x5efe0c04af29122da0e7579d6493a61ae6b35c48 IN  Aave: vWBTC Token V30 ETH0.000043390.1
0x9f64e30071b294385654dca47a715a6ac932a4ed7982648eb98b374aeb21fadaApprove Delegati...1758851352024-01-31 0:29:5331 days 2 hrs ago0x5efe0c04af29122da0e7579d6493a61ae6b35c48 IN  Aave: vWBTC Token V30 ETH0.000038820.1
0xc1772dcf054711e0ef7e67aa930cdbb10f943aa823afb05f846438f1ff57bb1fApprove Delegati...1758713412024-01-30 23:30:5131 days 3 hrs ago0x5efe0c04af29122da0e7579d6493a61ae6b35c48 IN  Aave: vWBTC Token V30 ETH0.00003490.1
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x0a27efc180a06cc9d4a1f469faba33fd65dff7479bab68778b502186cfb8eb39720860672023-03-21 10:16:20346 days 16 hrs ago Aave: vWBTC Token V3 Aave: Pool V30 ETH
0x0a27efc180a06cc9d4a1f469faba33fd65dff7479bab68778b502186cfb8eb39720860672023-03-21 10:16:20346 days 16 hrs ago Aave: vWBTC Token V3 0x81387c40eb75acb02757c1ae55d5936e78c9ded30 ETH
0x0a27efc180a06cc9d4a1f469faba33fd65dff7479bab68778b502186cfb8eb39720860672023-03-21 10:16:20346 days 16 hrs ago 0x8478ab5064ebac770ddce77e7d31d969205f041e Aave: vWBTC Token V30 ETH
0x0a27efc180a06cc9d4a1f469faba33fd65dff7479bab68778b502186cfb8eb39720860672023-03-21 10:16:20346 days 16 hrs ago Aave: vWBTC Token V3 Aave: Pool V30 ETH
0x0a27efc180a06cc9d4a1f469faba33fd65dff7479bab68778b502186cfb8eb39720860672023-03-21 10:16:20346 days 16 hrs ago Aave: vWBTC Token V3 0x81387c40eb75acb02757c1ae55d5936e78c9ded30 ETH
0x0a27efc180a06cc9d4a1f469faba33fd65dff7479bab68778b502186cfb8eb39720860672023-03-21 10:16:20346 days 16 hrs ago 0x8478ab5064ebac770ddce77e7d31d969205f041e Aave: vWBTC Token V30 ETH
0x0a27efc180a06cc9d4a1f469faba33fd65dff7479bab68778b502186cfb8eb39720860672023-03-21 10:16:20346 days 16 hrs ago Aave: vWBTC Token V3 0x81387c40eb75acb02757c1ae55d5936e78c9ded30 ETH
0x0a27efc180a06cc9d4a1f469faba33fd65dff7479bab68778b502186cfb8eb39720860672023-03-21 10:16:20346 days 16 hrs ago Aave: Pool V3 Aave: vWBTC Token V30 ETH
0x0a27efc180a06cc9d4a1f469faba33fd65dff7479bab68778b502186cfb8eb39720860672023-03-21 10:16:20346 days 16 hrs ago Aave: vWBTC Token V3 Aave: Incentives V30 ETH
0x0a27efc180a06cc9d4a1f469faba33fd65dff7479bab68778b502186cfb8eb39720860672023-03-21 10:16:20346 days 16 hrs ago Aave: vWBTC Token V3 0x81387c40eb75acb02757c1ae55d5936e78c9ded30 ETH
0x0a27efc180a06cc9d4a1f469faba33fd65dff7479bab68778b502186cfb8eb39720860672023-03-21 10:16:20346 days 16 hrs ago Aave: Pool V3 Aave: vWBTC Token V30 ETH
0x0a27efc180a06cc9d4a1f469faba33fd65dff7479bab68778b502186cfb8eb39720860672023-03-21 10:16:20346 days 16 hrs ago Aave: vWBTC Token V3 0x81387c40eb75acb02757c1ae55d5936e78c9ded30 ETH
0x0a27efc180a06cc9d4a1f469faba33fd65dff7479bab68778b502186cfb8eb39720860672023-03-21 10:16:20346 days 16 hrs ago Aave: Pool V3 Aave: vWBTC Token V30 ETH
0x0a27efc180a06cc9d4a1f469faba33fd65dff7479bab68778b502186cfb8eb39720860672023-03-21 10:16:20346 days 16 hrs ago Aave: vWBTC Token V3 0x81387c40eb75acb02757c1ae55d5936e78c9ded30 ETH
0x0a27efc180a06cc9d4a1f469faba33fd65dff7479bab68778b502186cfb8eb39720860672023-03-21 10:16:20346 days 16 hrs ago Aave: Pool V3 Aave: vWBTC Token V30 ETH
0x0a27efc180a06cc9d4a1f469faba33fd65dff7479bab68778b502186cfb8eb39720860672023-03-21 10:16:20346 days 16 hrs ago Aave: vWBTC Token V3 Aave: Pool V30 ETH
0x0a27efc180a06cc9d4a1f469faba33fd65dff7479bab68778b502186cfb8eb39720860672023-03-21 10:16:20346 days 16 hrs ago Aave: vWBTC Token V3 0x81387c40eb75acb02757c1ae55d5936e78c9ded30 ETH
0x0a27efc180a06cc9d4a1f469faba33fd65dff7479bab68778b502186cfb8eb39720860672023-03-21 10:16:20346 days 16 hrs ago 0x8478ab5064ebac770ddce77e7d31d969205f041e Aave: vWBTC Token V30 ETH
0x0a27efc180a06cc9d4a1f469faba33fd65dff7479bab68778b502186cfb8eb39720860672023-03-21 10:16:20346 days 16 hrs ago Aave: vWBTC Token V3 Aave: Pool V30 ETH
0x0a27efc180a06cc9d4a1f469faba33fd65dff7479bab68778b502186cfb8eb39720860672023-03-21 10:16:20346 days 16 hrs ago Aave: vWBTC Token V3 0x81387c40eb75acb02757c1ae55d5936e78c9ded30 ETH
0x0a27efc180a06cc9d4a1f469faba33fd65dff7479bab68778b502186cfb8eb39720860672023-03-21 10:16:20346 days 16 hrs ago 0x8478ab5064ebac770ddce77e7d31d969205f041e Aave: vWBTC Token V30 ETH
0x0a27efc180a06cc9d4a1f469faba33fd65dff7479bab68778b502186cfb8eb39720860672023-03-21 10:16:20346 days 16 hrs ago Aave: vWBTC Token V3 Aave: Pool V30 ETH
0x0a27efc180a06cc9d4a1f469faba33fd65dff7479bab68778b502186cfb8eb39720860672023-03-21 10:16:20346 days 16 hrs ago Aave: vWBTC Token V3 0x81387c40eb75acb02757c1ae55d5936e78c9ded30 ETH
0x0a27efc180a06cc9d4a1f469faba33fd65dff7479bab68778b502186cfb8eb39720860672023-03-21 10:16:20346 days 16 hrs ago 0x8478ab5064ebac770ddce77e7d31d969205f041e Aave: vWBTC Token V30 ETH
0x0a27efc180a06cc9d4a1f469faba33fd65dff7479bab68778b502186cfb8eb39720860672023-03-21 10:16:20346 days 16 hrs ago Aave: vWBTC Token V3 Aave: Pool V30 ETH
[ Download CSV Export 
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xf329e36C7bF6E5E86ce2150875a84Ce77f477375
The constructor portion of the code might be different and could alter the actual behaviour of the contract

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"}]

Deployed Bytecode

0x60806040526004361061005a5760003560e01c80635c60da1b116100435780635c60da1b14610097578063d1f57894146100d5578063f851a440146100e85761005a565b80633659cfe6146100645780634f1ef28614610084575b6100626100fd565b005b34801561007057600080fd5b5061006261007f3660046106be565b610137565b6100626100923660046106e0565b610189565b3480156100a357600080fd5b506100ac61025a565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100626100e3366004610792565b6102cb565b3480156100f457600080fd5b506100ac6103f7565b61010561045c565b6101356101307f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b610464565b565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000008145edddf43f50276641b55bd3ad95944510021e1614156101815761017e81610488565b50565b61017e6100fd565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000008145edddf43f50276641b55bd3ad95944510021e16141561024d576101d083610488565b60008373ffffffffffffffffffffffffffffffffffffffff1683836040516101f9929190610872565b600060405180830381855af49150503d8060008114610234576040519150601f19603f3d011682016040523d82523d6000602084013e610239565b606091505b505090508061024757600080fd5b50505050565b6102556100fd565b505050565b60003373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000008145edddf43f50276641b55bd3ad95944510021e1614156102c057507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6102c86100fd565b90565b60006102f57f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b73ffffffffffffffffffffffffffffffffffffffff161461031557600080fd5b61034060017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd610882565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc1461036e5761036e6108c0565b610377826104d5565b8051156103f35760008273ffffffffffffffffffffffffffffffffffffffff16826040516103a591906108ef565b600060405180830381855af49150503d80600081146103e0576040519150601f19603f3d011682016040523d82523d6000602084013e6103e5565b606091505b505090508061025557600080fd5b5050565b60003373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000008145edddf43f50276641b55bd3ad95944510021e1614156102c057507f0000000000000000000000008145edddf43f50276641b55bd3ad95944510021e90565b610135610593565b3660008037600080366000845af43d6000803e808015610483573d6000f35b3d6000fd5b610491816104d5565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6104de81610659565b61056f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f60448201527f6e20746f2061206e6f6e2d636f6e74726163742061646472657373000000000060648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000008145edddf43f50276641b55bd3ad95944510021e161415610135576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e20667260448201527f6f6d207468652070726f78792061646d696e00000000000000000000000000006064820152608401610566565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061068d57508115155b949350505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146106b957600080fd5b919050565b6000602082840312156106d057600080fd5b6106d982610695565b9392505050565b6000806000604084860312156106f557600080fd5b6106fe84610695565b9250602084013567ffffffffffffffff8082111561071b57600080fd5b818601915086601f83011261072f57600080fd5b81358181111561073e57600080fd5b87602082850101111561075057600080fd5b6020830194508093505050509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156107a557600080fd5b6107ae83610695565b9150602083013567ffffffffffffffff808211156107cb57600080fd5b818501915085601f8301126107df57600080fd5b8135818111156107f1576107f1610763565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561083757610837610763565b8160405282815288602084870101111561085057600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b8183823760009101908152919050565b6000828210156108bb577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b6000825160005b8181101561091057602081860181015185830152016108f6565b8181111561091f576000828501525b50919091019291505056fea26469706673582212207698a80201d2f92a3290973c99527c6e810eaf731191e18abe2c96acab47dca764736f6c634300080a0033

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.