Contract 0x8145edddf43f50276641b55bd3ad95944510021e 4

Aave 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xa365497122cd65598ddbf68ba5175593e1bb8eeb682e1785aba4f23956dfcad6Set Supply Cap129895122022-04-04 16:18:19244 days 16 hrs ago0x4365f8e70cf38c6ca67de41448508f2da8825500 IN  Aave: Pool Configurator V30 AVAX0.00713929986105.675037537
0xec466f1e4b43e9ca25b57b353df2eab1eb7bbfb470b1222b18d958ac17d573bfSet Supply Cap129895032022-04-04 16:18:01244 days 16 hrs ago0x4365f8e70cf38c6ca67de41448508f2da8825500 IN  Aave: Pool Configurator V30 AVAX0.007227335154106.997130212
0xa186e2660c0a2defd5d7d2b2d390b0632607d737b2fd375f67ec7ec6779211e8Set Supply Cap129894932022-04-04 16:17:38244 days 16 hrs ago0x4365f8e70cf38c6ca67de41448508f2da8825500 IN  Aave: Pool Configurator V30 AVAX0.007533825267108.084663031
0x5e9327ece46cbf252ff2abcc610b1f6f7c99391a84d3111ca4675fd07d3177f8Set E Mode Categ...129889212022-04-04 15:57:51244 days 16 hrs ago0x4365f8e70cf38c6ca67de41448508f2da8825500 IN  Aave: Pool Configurator V30 AVAX0.014387255252107.042455023
0xac221c8fa8bbd0d6f1d7aeb3f1d22f39ae8f631063fd14681506b70beff41c7aSet Reserve Stab...128495412022-04-01 8:44:44247 days 23 hrs ago0x4365f8e70cf38c6ca67de41448508f2da8825500 IN  Aave: Pool Configurator V30 AVAX0.00232716639834.594416502
0xf58db63cabebad05bb2eb33df25a18fcc2bba467bec79e06d247bcf30910a019Set Reserve Stab...128495312022-04-01 8:44:24247 days 23 hrs ago0x4365f8e70cf38c6ca67de41448508f2da8825500 IN  Aave: Pool Configurator V30 AVAX0.00235996875635.0820389
0x8d208a7b7d87b5b0fdc763ae044d679649ae6a559bcc123634a3023100557ee9Set Reserve Stab...128494952022-04-01 8:43:09247 days 23 hrs ago0x4365f8e70cf38c6ca67de41448508f2da8825500 IN  Aave: Pool Configurator V30 AVAX0.00235762832435.047247287
0x80092d11ed3b4ac803913a563a3721db5eddb5d54be9199ddc12eb82ab468256Set Debt Ceiling124342902022-03-22 14:01:55257 days 18 hrs ago0x4365f8e70cf38c6ca67de41448508f2da8825500 IN  Aave: Pool Configurator V30 AVAX0.00636221732294.13095804
0xa489519eccc04dc7b892fe18970121ec15da8ad3e59afe3f962416efa4d103deSet Reserve Inte...122721592022-03-18 17:15:20261 days 15 hrs ago0x4365f8e70cf38c6ca67de41448508f2da8825500 IN  Aave: Pool Configurator V30 AVAX0.012113871471137.559150506
0x1292e2d62e663359aa7869c77f0f3b71787ae8fed3a123e87bd2a8cc10d04346Set Reserve Inte...122721402022-03-18 17:14:39261 days 15 hrs ago0x4365f8e70cf38c6ca67de41448508f2da8825500 IN  Aave: Pool Configurator V30 AVAX0.012415981336141.0089759
0xa8e9b6996364f063f521d41d3768e1f6eaf8576e2a7f28a037fa2b2b6b364d68Set Reserve Inte...122721112022-03-18 17:13:38261 days 15 hrs ago0x4365f8e70cf38c6ca67de41448508f2da8825500 IN  Aave: Pool Configurator V30 AVAX0.013375074714148.270918161
0x7d5fd6679d84d23cec94741c86b9fe783e67e7cd70a2963aad8045a44767a30fSet Pool Pause121783042022-03-16 10:15:23263 days 22 hrs ago0x4365f8e70cf38c6ca67de41448508f2da8825500 IN  Aave: Pool Configurator V30 AVAX0.01157559662156.764268165
0x768358aa8aae0f280dc66eaad67ccb3dc806d31f99f854c49a5acb884dffeea5Set Pool Pause121108402022-03-14 19:20:08265 days 13 hrs ago0x4365f8e70cf38c6ca67de41448508f2da8825500 IN  Aave: Pool Configurator V30 AVAX0.025582047475125.490775232
0x20388291b6add0237131345f117180040db54ddb04fe15c2ec81cf54abb3f9b8Set Liquidation ...119748022022-03-11 13:45:45268 days 18 hrs ago0x4365f8e70cf38c6ca67de41448508f2da8825500 IN  Aave: Pool Configurator V30 AVAX0.0020959131
0x80b40e926a536e22e1cfec478bf29ce1150eaff08e94806f26594bccd5a87662Set Liquidation ...119747992022-03-11 13:45:38268 days 18 hrs ago0x4365f8e70cf38c6ca67de41448508f2da8825500 IN  Aave: Pool Configurator V30 AVAX0.0020959131
0xa8f447ecd9cf4e3308f8ffc383982e07a444ef93db129cd41bced9c94d2d6366Set Liquidation ...119747952022-03-11 13:45:30268 days 18 hrs ago0x4365f8e70cf38c6ca67de41448508f2da8825500 IN  Aave: Pool Configurator V30 AVAX0.0020959131
0x4e6d5ee4d7222ee919c30682219fa493fa5d6e09184c3df9d5daf43f30a9096aSet Liquidation ...119747912022-03-11 13:45:23268 days 18 hrs ago0x4365f8e70cf38c6ca67de41448508f2da8825500 IN  Aave: Pool Configurator V30 AVAX0.0020959131
0x1334ce6f31973cb60297a7123af2b2224a9ce07280a746527e2517b3e8b71abaSet Liquidation ...119747842022-03-11 13:45:09268 days 18 hrs ago0x4365f8e70cf38c6ca67de41448508f2da8825500 IN  Aave: Pool Configurator V30 AVAX0.0020959131
0x4c34079eb6cf6044a72eaa4be2afab7258f5c78f64d9e5bba39c31abc4b4ccb9Set Liquidation ...119747822022-03-11 13:45:04268 days 18 hrs ago0x4365f8e70cf38c6ca67de41448508f2da8825500 IN  Aave: Pool Configurator V30 AVAX0.00209553831
0xb03a3a52c660b41970f84257b401a2a43e765965aec6428e591a80f804201529Set Liquidation ...119747782022-03-11 13:44:54268 days 18 hrs ago0x4365f8e70cf38c6ca67de41448508f2da8825500 IN  Aave: Pool Configurator V30 AVAX0.0020959131
0xed0d4446b81897a506f37dbaca122473a2561ee1869687937230630a0c0884a2Set Liquidation ...119747732022-03-11 13:44:43268 days 18 hrs ago0x4365f8e70cf38c6ca67de41448508f2da8825500 IN  Aave: Pool Configurator V30 AVAX0.00216237431
0x1560e50fcb3a5ed352fc32b5f4925210f538b89b7910961d9901b8be02b9ffcaSet Asset E Mode...119747672022-03-11 13:44:26268 days 18 hrs ago0x4365f8e70cf38c6ca67de41448508f2da8825500 IN  Aave: Pool Configurator V30 AVAX0.00242609131
0x405e0aadaa4917737484aceea541f6061c8238630f0cdebf363f812253f5e98fSet Asset E Mode...119747592022-03-11 13:43:57268 days 18 hrs ago0x4365f8e70cf38c6ca67de41448508f2da8825500 IN  Aave: Pool Configurator V30 AVAX0.00235962731
0x8558e57c941527c070f5abdf84f796ce77d66f8b9c8e4b70ca259cdac6aa85b4Set Asset E Mode...119747552022-03-11 13:43:47268 days 18 hrs ago0x4365f8e70cf38c6ca67de41448508f2da8825500 IN  Aave: Pool Configurator V30 AVAX0.00235925531
0xad4d5d94adbbf9a74c5099ea88ee2b9ddedd773031b0f8cc9651691893b5c98fSet E Mode Categ...119747532022-03-11 13:43:43268 days 18 hrs ago0x4365f8e70cf38c6ca67de41448508f2da8825500 IN  Aave: Pool Configurator V30 AVAX0.00522480231
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xdfe07773091925a3dd20f233360aab86c004b87f90d80d20bde67bec13c20965201674222022-09-23 7:25:4073 days 1 hr ago Aave: Pool Configurator V3  Contract Creation0 AVAX
0xdfe07773091925a3dd20f233360aab86c004b87f90d80d20bde67bec13c20965201674222022-09-23 7:25:4073 days 1 hr ago Aave: Pool Configurator V3  Contract Creation0 AVAX
0xdfe07773091925a3dd20f233360aab86c004b87f90d80d20bde67bec13c20965201674222022-09-23 7:25:4073 days 1 hr ago Aave: Pool Configurator V3  Contract Creation0 AVAX
0xcc1f6e6dc4584f3456a7f80d3969ac23306b06393f4927735a50a9093e998107194009072022-09-01 12:34:1894 days 20 hrs ago Aave: Pool Configurator V3  Contract Creation0 AVAX
0xcc1f6e6dc4584f3456a7f80d3969ac23306b06393f4927735a50a9093e998107194009072022-09-01 12:34:1894 days 20 hrs ago Aave: Pool Configurator V3  Contract Creation0 AVAX
0xcc1f6e6dc4584f3456a7f80d3969ac23306b06393f4927735a50a9093e998107194009072022-09-01 12:34:1894 days 20 hrs ago Aave: Pool Configurator V3  Contract Creation0 AVAX
0x8310e09df71581b2dad2059f6f8d180851160ebbef7a2e917bfea46d77d3fc8f194008742022-09-01 12:33:1594 days 20 hrs ago Aave: Pool Configurator V3  Contract Creation0 AVAX
0x8310e09df71581b2dad2059f6f8d180851160ebbef7a2e917bfea46d77d3fc8f194008742022-09-01 12:33:1594 days 20 hrs ago Aave: Pool Configurator V3  Contract Creation0 AVAX
0x8310e09df71581b2dad2059f6f8d180851160ebbef7a2e917bfea46d77d3fc8f194008742022-09-01 12:33:1594 days 20 hrs ago Aave: Pool Configurator V3  Contract Creation0 AVAX
0xacfaf49090d3182e0c77a0d9e41b3be157fc24bbf18da9dacc9c2bfb3d65ba3d167150922022-06-30 12:58:07157 days 19 hrs ago Aave: Pool Configurator V3  Contract Creation0 AVAX
0xacfaf49090d3182e0c77a0d9e41b3be157fc24bbf18da9dacc9c2bfb3d65ba3d167150922022-06-30 12:58:07157 days 19 hrs ago Aave: Pool Configurator V3  Contract Creation0 AVAX
0xacfaf49090d3182e0c77a0d9e41b3be157fc24bbf18da9dacc9c2bfb3d65ba3d167150922022-06-30 12:58:07157 days 19 hrs ago Aave: Pool Configurator V3  Contract Creation0 AVAX
0xe38527b6a895396917163896a5b12f3a9a1369e628a129a27b285e17e8576efe119746082022-03-11 13:38:39268 days 19 hrs ago Aave: Pool Configurator V3  Contract Creation0 AVAX
0xe38527b6a895396917163896a5b12f3a9a1369e628a129a27b285e17e8576efe119746082022-03-11 13:38:39268 days 19 hrs ago Aave: Pool Configurator V3  Contract Creation0 AVAX
0xe38527b6a895396917163896a5b12f3a9a1369e628a129a27b285e17e8576efe119746082022-03-11 13:38:39268 days 19 hrs ago Aave: Pool Configurator V3  Contract Creation0 AVAX
0xe38527b6a895396917163896a5b12f3a9a1369e628a129a27b285e17e8576efe119746082022-03-11 13:38:39268 days 19 hrs ago Aave: Pool Configurator V3  Contract Creation0 AVAX
0xe38527b6a895396917163896a5b12f3a9a1369e628a129a27b285e17e8576efe119746082022-03-11 13:38:39268 days 19 hrs ago Aave: Pool Configurator V3  Contract Creation0 AVAX
0xe38527b6a895396917163896a5b12f3a9a1369e628a129a27b285e17e8576efe119746082022-03-11 13:38:39268 days 19 hrs ago Aave: Pool Configurator V3  Contract Creation0 AVAX
0xb714bcfe5ab6c166d569421d4c16713c282fd1af1ea77fed39a7e1fd5cf14012119745852022-03-11 13:37:52268 days 19 hrs ago Aave: Pool Configurator V3  Contract Creation0 AVAX
0xb714bcfe5ab6c166d569421d4c16713c282fd1af1ea77fed39a7e1fd5cf14012119745852022-03-11 13:37:52268 days 19 hrs ago Aave: Pool Configurator V3  Contract Creation0 AVAX
0xb714bcfe5ab6c166d569421d4c16713c282fd1af1ea77fed39a7e1fd5cf14012119745852022-03-11 13:37:52268 days 19 hrs ago Aave: Pool Configurator V3  Contract Creation0 AVAX
0x0f7a30e037434ef997519d8a95bfe738f086ab2cd3bd517a69123e3d5851f174119745742022-03-11 13:37:27268 days 19 hrs ago Aave: Pool Configurator V3  Contract Creation0 AVAX
0x0f7a30e037434ef997519d8a95bfe738f086ab2cd3bd517a69123e3d5851f174119745742022-03-11 13:37:27268 days 19 hrs ago Aave: Pool Configurator V3  Contract Creation0 AVAX
0x0f7a30e037434ef997519d8a95bfe738f086ab2cd3bd517a69123e3d5851f174119745742022-03-11 13:37:27268 days 19 hrs ago Aave: Pool Configurator V3  Contract Creation0 AVAX
0x0f7a30e037434ef997519d8a95bfe738f086ab2cd3bd517a69123e3d5851f174119745742022-03-11 13:37:27268 days 19 hrs ago Aave: Pool Configurator V3  Contract Creation0 AVAX
[ 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.