Contract 0x191c10aa4af7c30e871e70c95db0e4eb77237530 4

 

Contract Overview

Aave: aLINK Token V3
Balance:
0 ETH

ETH Value:
$0.00

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x93180c1eef8472c5299ee34caf8ddfdad4d67fc354030b2f8540ab6b9a7f3f36Approve283797352022-10-04 18:59:512 days 11 hrs ago0x0365d4a1e75471c951bc5c5fc572255748e36d0a IN Aave: aLINK Token V30 ETH0.00003525
0x133926a5b9d402ed10d6401d2f087a1a1bacaf8f279a8bf645c42bf235438559Approve282910892022-10-04 7:53:562 days 22 hrs ago0xb30f4e614f4ea2fddd06b86f68607850c72b3489 IN Aave: aLINK Token V30 ETH0.00001384
0x811c83f75b3ed606efe7a6640b2fe295265c4ea03203da43dad915f8308cf8b6Approve281596362022-10-03 12:12:003 days 17 hrs ago0x5356df73b293bd9c6e8efd22c99833391ef8821a IN Aave: aLINK Token V30 ETH0.00001393
0x6df4d8212b35b4011b6b93a76a2387c494d742c20f5cc0721d8b251caf752b32Approve280961862022-10-03 4:00:324 days 2 hrs ago0x10d985a886e41355a0a9e5bb06f0e81a7de4614b IN Aave: aLINK Token V30 ETH0.00001594
0xe94316061e3866cd5450c801d1ae91bd75152ae8e0c8adf65c4a46e66cdefe0bApprove279911652022-10-02 12:40:094 days 17 hrs ago0x7516231ad0222af10dc661edf0164d400d45817a IN Aave: aLINK Token V30 ETH0.00001035
0x5cee010089c7c643eea4838d365c10e107d9a54643ecc4a221bf31c9804f5e2bApprove279698932022-10-02 11:00:324 days 19 hrs ago0x630eecb3549fd56daa71752ef432a7204bff8d66 IN Aave: aLINK Token V30 ETH0.00001037
0xbbf851c9bac618f34b5c9d42b6fc82f7acf992d8c395d07280bea7a94c8342cdApprove278463512022-10-01 19:35:585 days 10 hrs ago0xf8e48145b28340af7228e59ce981ab3e3fcbdac9 IN Aave: aLINK Token V30 ETH0.00001679
0xae5fd3d1b7c32c9916355e87af20b5d888272414105bb951d9434276b91c34caApprove278062212022-10-01 15:19:555 days 14 hrs ago0xcc1bc5d0ae50d2fb03cb640ba33055a0b0a3b893 IN Aave: aLINK Token V30 ETH0.00001781
0x907860d60768c48a236c846ca01c818c4e40b3a2e892d43b0ae45e9f7ad6036cApprove277692252022-10-01 11:43:165 days 18 hrs ago0xd5412258b6d1eb77e79c73cf5b393b358fb44cec IN Aave: aLINK Token V30 ETH0.00000958
0x63525ce292b66aadfa38455c5a6acda1ba12538ae3a2006c71ad74b42e00e9fcApprove277336912022-10-01 8:00:265 days 22 hrs ago0x6c2e8ed3fdd38eaa1048bc42f817be18d804c07c IN Aave: aLINK Token V30 ETH0.00001086
0xca6c27ed32c4205dcc40c8f32a3149976367fe1e9ef2df8b604da9dbc115b780Approve276567322022-09-30 19:35:106 days 10 hrs ago0xb5f4af1a4b5021ae10207e1c2e119ce8249b3007 IN Aave: aLINK Token V30 ETH0.00003023
0x1e66a3ca884cb16a5a809525e85d3440f4e5e45041437f65fb79d4faf1fcc630Approve275877132022-09-30 11:28:056 days 18 hrs ago0x5464912b966384bf6fb4222a6eca6013d99d6341 IN Aave: aLINK Token V30 ETH0.00002053
0xe08d4012348e25cae90bff242fa74fe83f44eec726aeb314a6755088c660908dApprove275047352022-09-30 1:32:337 days 4 hrs ago0x7d1402f1518a25eab47b29166be43fbc60e221e5 IN Aave: aLINK Token V30 ETH0.00002069
0x391252db1dd7eeb6d9bfdcdc8ca0672ce9d9d359261eae9d434a96498fd9c6cbApprove274606212022-09-29 17:35:017 days 12 hrs ago0xcd13f282691ba518a0fcf0ac972b84e82c19fd3a IN Aave: aLINK Token V30 ETH0.00004138
0x097c56a98b8460bdfaf35a4f0b2949a1e896d7bc780b5fd8bbda9e34a2cb56aaApprove274433822022-09-29 15:25:227 days 14 hrs ago0x3f205bebf5eb9ea67052a09b3f8557ac3db93294 IN Aave: aLINK Token V30 ETH0.00003368
0x7a0c13394d2b6a84d8f8c544e61029ce5ffb54acb26e430ee3b4b9041bb770b5Approve272936312022-09-28 22:05:578 days 8 hrs ago0x6e85e120e08882b9d3cbe624d294b094689895be IN Aave: aLINK Token V30 ETH0.00002714
0x58c846c9c7966e4bfa6d57ca4ee408f18868550e263211e1b7cade34077129e4Approve272306772022-09-28 14:11:558 days 15 hrs ago0xc5f1467bd2aba1bf37056b69b86dcaa7771c1eb9 IN Aave: aLINK Token V30 ETH0.00002504
0xf049acf69d5de47c65c9705079dce3318e17c88304dddcc7518e92783cb61dc7Approve269412752022-09-27 7:05:169 days 23 hrs ago0xf78446d3ba37ba7a07b571d487000877ffd12e75 IN Aave: aLINK Token V30 ETH0.00001628
0xb7e3fb7e8e18aa2c63555cad2adb3150549c604b8167f71add0d01422be14aefApprove268760002022-09-26 21:13:2810 days 8 hrs ago0x73b98c9b4e59b49058ae3f9236fdb970bf4ec00a IN Aave: aLINK Token V30 ETH0.00003175
0x9259d0b948cbe5cf4dd9993263c535b08038226399dada68f088f8d17c8788c9Approve268149182022-09-26 13:30:2110 days 16 hrs ago0xa40361b0a09f6936182ad0d29ec827bb66bbf8bc IN Aave: aLINK Token V30 ETH0.00001344
0x19c6d80dbf0a361e19113ccb5b8eb33b4a2ce8e86669b51b867234e79c7b5d84Approve267422802022-09-26 6:56:4210 days 23 hrs ago0x1d0f6a5f3c1d50ef16d03ab1c00352274cba8481 IN Aave: aLINK Token V30 ETH0.00001152
0x43f3d8d7167199e9ba235c7e426c7ab7a02fd9e33ada29bbd4e0ce44985b6c0bTransfer264115822022-09-24 15:01:0112 days 15 hrs ago0x005f77c52ecdffc4a66d8833348fa89b4c49069f IN Aave: aLINK Token V30 ETH0.00001834
0xd4c2c20520736cd674613c8fbb38297ff65af75f86eb6f6b457508986053d931Approve264043042022-09-24 14:21:1612 days 15 hrs ago0x9e5a57470a2a136a3d4de39e1996e05944c4b1fb IN Aave: aLINK Token V30 ETH0.00001076
0xd63ae6bf47ea58e1328e187fdeefb5c8e0da6135ed49cebd56c6f3b891fe691bApprove263300802022-09-24 6:22:4112 days 23 hrs ago0x1c54c331ac240cbc5e8ab94937ce42729fc85d75 IN Aave: aLINK Token V30 ETH0.00001
0xbda219d8ca3a694932fd3652cee1af51896a32c8337566765d3987a0e9043c84Approve262953202022-09-24 2:14:4713 days 3 hrs ago0x4e0e75808d68c0a198e504b46f87d6853bbbf0e6 IN Aave: aLINK Token V30 ETH0.00001098
[ Download CSV Export 

OVERVIEW

Aave is a decentralized non-custodial liquidity protocol where users can participate as depositors or borrowers

Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xf765c87682fecc9afca921efa601b91c4ceef737f005661b2565b026a6c80ca8288205222022-10-07 6:03:068 mins ago Aave: aLINK Token V30xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 ETH
0xf765c87682fecc9afca921efa601b91c4ceef737f005661b2565b026a6c80ca8288205222022-10-07 6:03:068 mins ago Aave: Pool V3Aave: aLINK Token V30 ETH
0xf765c87682fecc9afca921efa601b91c4ceef737f005661b2565b026a6c80ca8288205222022-10-07 6:03:068 mins ago Aave: aLINK Token V3Aave: Incentives V30 ETH
0xf765c87682fecc9afca921efa601b91c4ceef737f005661b2565b026a6c80ca8288205222022-10-07 6:03:068 mins ago Aave: aLINK Token V30xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 ETH
0xf765c87682fecc9afca921efa601b91c4ceef737f005661b2565b026a6c80ca8288205222022-10-07 6:03:068 mins ago Aave: Pool V3Aave: aLINK Token V30 ETH
0x3d379029a1d9b1bb23ed388b6c5bad3e313f98daa193325a6b0704387e9a084f288160692022-10-07 5:35:3635 mins ago Aave: aLINK Token V30xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 ETH
0x3d379029a1d9b1bb23ed388b6c5bad3e313f98daa193325a6b0704387e9a084f288160692022-10-07 5:35:3635 mins ago Aave: Pool V3Aave: aLINK Token V30 ETH
0x792cab512f7a36e339cdeecd8525d4ceb3d19b25c70be15d18579927c55c709b288160042022-10-07 5:35:0936 mins ago Aave: aLINK Token V30xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 ETH
0x792cab512f7a36e339cdeecd8525d4ceb3d19b25c70be15d18579927c55c709b288160042022-10-07 5:35:0936 mins ago Aave: Pool V3Aave: aLINK Token V30 ETH
0x6229cdc0ac24d1aa71caa138b62382249b5cb8d32c7776201e947f0b0bc0105f288158652022-10-07 5:34:0337 mins ago Aave: aLINK Token V3Aave: Incentives V30 ETH
0x6229cdc0ac24d1aa71caa138b62382249b5cb8d32c7776201e947f0b0bc0105f288158652022-10-07 5:34:0337 mins ago Aave: aLINK Token V30xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 ETH
0x6229cdc0ac24d1aa71caa138b62382249b5cb8d32c7776201e947f0b0bc0105f288158652022-10-07 5:34:0337 mins ago Aave: Pool V3Aave: aLINK Token V30 ETH
0xa0ff825bae36034c4d59ef50f98a5f780bbdec019a09599fc4271276ae3333f8288136872022-10-07 5:19:0252 mins ago Aave: aLINK Token V30xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 ETH
0xa0ff825bae36034c4d59ef50f98a5f780bbdec019a09599fc4271276ae3333f8288136872022-10-07 5:19:0252 mins ago Aave: Pool V3Aave: aLINK Token V30 ETH
0xe8ddeb1cad0acfd5ecfcc710ec2da528838839e7da3c53f0d31181361ed16c98288121212022-10-07 5:06:301 hr 4 mins ago Aave: aLINK Token V30xf97f4df75117a78c1a5a0dbb814af92458539fb40 ETH
0xe8ddeb1cad0acfd5ecfcc710ec2da528838839e7da3c53f0d31181361ed16c98288121212022-10-07 5:06:301 hr 4 mins ago Aave: aLINK Token V3Aave: Incentives V30 ETH
0xe8ddeb1cad0acfd5ecfcc710ec2da528838839e7da3c53f0d31181361ed16c98288121212022-10-07 5:06:301 hr 4 mins ago Aave: aLINK Token V30xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 ETH
0xe8ddeb1cad0acfd5ecfcc710ec2da528838839e7da3c53f0d31181361ed16c98288121212022-10-07 5:06:301 hr 4 mins ago Aave: Pool V3Aave: aLINK Token V30 ETH
0xe8ddeb1cad0acfd5ecfcc710ec2da528838839e7da3c53f0d31181361ed16c98288121212022-10-07 5:06:301 hr 4 mins ago Aave: aLINK Token V30xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 ETH
0xe8ddeb1cad0acfd5ecfcc710ec2da528838839e7da3c53f0d31181361ed16c98288121212022-10-07 5:06:301 hr 4 mins ago Aave: Pool V3Aave: aLINK Token V30 ETH
0xcb6dab015c1b9694a0a8721f8f509739c05c55e7b8925a5119ae234596032cbb288118222022-10-07 5:04:221 hr 6 mins ago Aave: aLINK Token V3Aave: Pool V30 ETH
0xcb6dab015c1b9694a0a8721f8f509739c05c55e7b8925a5119ae234596032cbb288118222022-10-07 5:04:221 hr 6 mins ago Aave: aLINK Token V3Aave: Incentives V30 ETH
0xcb6dab015c1b9694a0a8721f8f509739c05c55e7b8925a5119ae234596032cbb288118222022-10-07 5:04:221 hr 6 mins ago Aave: aLINK Token V3Aave: Incentives V30 ETH
0xcb6dab015c1b9694a0a8721f8f509739c05c55e7b8925a5119ae234596032cbb288118222022-10-07 5:04:221 hr 6 mins ago Aave: aLINK Token V3Aave: Pool V30 ETH
0xcb6dab015c1b9694a0a8721f8f509739c05c55e7b8925a5119ae234596032cbb288118222022-10-07 5:04:221 hr 6 mins ago Aave: aLINK Token V30xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 ETH
[ Download CSV Export 
Loading

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

Contract Name:
InitializableImmutableAdminUpgradeabilityProxy

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 100000 runs

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

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

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

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

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

import './BaseUpgradeabilityProxy.sol';

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    bytes32 slot = IMPLEMENTATION_SLOT;

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

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

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

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

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

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

Contract ABI

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

60a060405234801561001057600080fd5b50604051610a0e380380610a0e83398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b6080516109606100ae6000396000818161014f015281816101a101528181610274015281816104110152818161043a01526105ab01526109606000f3fe60806040526004361061005a5760003560e01c80635c60da1b116100435780635c60da1b14610097578063d1f57894146100d5578063f851a440146100e85761005a565b80633659cfe6146100645780634f1ef28614610084575b6100626100fd565b005b34801561007057600080fd5b5061006261007f3660046106be565b610137565b6100626100923660046106e0565b610189565b3480156100a357600080fd5b506100ac61025a565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100626100e3366004610792565b6102cb565b3480156100f457600080fd5b506100ac6103f7565b61010561045c565b6101356101307f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b610464565b565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614156101815761017e81610488565b50565b61017e6100fd565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016141561024d576101d083610488565b60008373ffffffffffffffffffffffffffffffffffffffff1683836040516101f9929190610872565b600060405180830381855af49150503d8060008114610234576040519150601f19603f3d011682016040523d82523d6000602084013e610239565b606091505b505090508061024757600080fd5b50505050565b6102556100fd565b505050565b60003373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614156102c057507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6102c86100fd565b90565b60006102f57f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b73ffffffffffffffffffffffffffffffffffffffff161461031557600080fd5b61034060017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd610882565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc1461036e5761036e6108c0565b610377826104d5565b8051156103f35760008273ffffffffffffffffffffffffffffffffffffffff16826040516103a591906108ef565b600060405180830381855af49150503d80600081146103e0576040519150601f19603f3d011682016040523d82523d6000602084013e6103e5565b606091505b505090508061025557600080fd5b5050565b60003373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614156102c057507f000000000000000000000000000000000000000000000000000000000000000090565b610135610593565b3660008037600080366000845af43d6000803e808015610483573d6000f35b3d6000fd5b610491816104d5565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6104de81610659565b61056f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f60448201527f6e20746f2061206e6f6e2d636f6e74726163742061646472657373000000000060648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161415610135576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e20667260448201527f6f6d207468652070726f78792061646d696e00000000000000000000000000006064820152608401610566565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061068d57508115155b949350505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146106b957600080fd5b919050565b6000602082840312156106d057600080fd5b6106d982610695565b9392505050565b6000806000604084860312156106f557600080fd5b6106fe84610695565b9250602084013567ffffffffffffffff8082111561071b57600080fd5b818601915086601f83011261072f57600080fd5b81358181111561073e57600080fd5b87602082850101111561075057600080fd5b6020830194508093505050509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156107a557600080fd5b6107ae83610695565b9150602083013567ffffffffffffffff808211156107cb57600080fd5b818501915085601f8301126107df57600080fd5b8135818111156107f1576107f1610763565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561083757610837610763565b8160405282815288602084870101111561085057600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b8183823760009101908152919050565b6000828210156108bb577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b6000825160005b8181101561091057602081860181015185830152016108f6565b8181111561091f576000828501525b50919091019291505056fea26469706673582212207698a80201d2f92a3290973c99527c6e810eaf731191e18abe2c96acab47dca764736f6c634300080a00330000000000000000000000008145edddf43f50276641b55bd3ad95944510021e

Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.