Contract 0xf329e36C7bF6E5E86ce2150875a84Ce77f477375 5

Aave 
 

Contract Overview

Aave: aAAVE Token V3
Balance:
0 Ether

EtherValue:
$0.00

Token:
Txn Hash Method
Index
From
To
Value
0xefa273ee26d796669abf2f7afc10cd3a074055614e9810000092d6e3de381830Approve265640442022-09-30 19:42:112 hrs 1 min ago0xd45dc02b43086758a825d67b6effa8c2dd5ccca7 IN  Aave: aAAVE Token V30 Ether0.0000598271350.001
0x7d927a8599dad10bc6ccb9519ed6ef60c04717bb33c25aed5b683620a318c9a8Approve264968962022-09-30 13:33:448 hrs 10 mins ago0x4a468490b35f746042897829187753542c50a547 IN  Aave: aAAVE Token V30 Ether0.0000748474020.001
0x3b82cc172a6b07183a9ac673cccb1c689d859111818cd13baf975f67b755bb2aApprove264550802022-09-30 10:26:0411 hrs 18 mins ago0x3398904bfeab28bc5740eb0b4dcc36f059823a55 IN  Aave: aAAVE Token V30 Ether0.0000386961680.00100155
0x0f45f6d9bda6864f10834518a3ec378a93978fe476815224fa4c158bc265a0b0Approve264485532022-09-30 9:53:0111 hrs 51 mins ago0x9ef1e5eea13131065d64e53a0595ea487746324a IN  Aave: aAAVE Token V30 Ether0.000038591770.00100155
0xfa8d04d6e6301f2059b383510ce972f13117ae74557ad02f8dd32139cc41e910Approve263412432022-09-29 22:07:3323 hrs 36 mins ago0x543b556c1b16804d2a39f054f06df4cecf2f167e IN  Aave: aAAVE Token V30 Ether0.0000534038640.00100155
0xf31a3b83d46ae8686bd3e1f1029e3cbfe83e889a775d85ac74d1547be8a41dacApprove260806612022-09-28 19:37:372 days 2 hrs ago0x0449e53aa1a3f75133df621d0ee755d5381a934e IN  Aave: aAAVE Token V30 Ether0.0000702815590.00100155
0xd465bbf606a1bd58f950913f561e610e3db1f47e55370d73bc70d696bc87ce07Approve259184372022-09-28 6:45:032 days 14 hrs ago0x9f4732c9e545454896de9c81f9f3b0e8938d735c IN  Aave: aAAVE Token V30 Ether0.0000423823620.00100155
0x3832337072eb3e6f12456a96ebb3961b7d307585d85931684eaa33128a565a6eApprove257657002022-09-27 13:58:583 days 7 hrs ago0x8639c84c65b1608ca1c8177b60ba2dae16ccf548 IN  Aave: aAAVE Token V30 Ether0.0000813425840.00100155
0x115888f8dc2b6eebec43a2caa6d4b5bd27c32cd415d1fd36973fd63695c0730fApprove257493252022-09-27 12:16:133 days 9 hrs ago0x0078b2f90d29638db38edd7de5f092d560f015a1 IN  Aave: aAAVE Token V30 Ether0.0000867701960.00100155
0x62aeef99ba2ba2a30c44a5ffc04fe0c7e1ed3f21aa34cd4e606b3817ff61a771Approve256350952022-09-26 21:59:043 days 23 hrs ago 0x9e5a57470a2a136a3d4de39e1996e05944c4b1fb IN  Aave: aAAVE Token V30 Ether0.0001165527680.00100155
0xaa38ef4f6425b38822746f90e4a703dd3294f87b1b1ec517018368279fc4f8ecApprove256003912022-09-26 16:08:034 days 5 hrs ago0x4e1dc2c15283039d24bfc379952090818e41fd56 IN  Aave: aAAVE Token V30 Ether0.0001389753560.00100155
0x90350e87878b8cb4427111ed53d1b5727d5fb0c14c0cb9cb893c42abbfbb2cc0Approve255728972022-09-26 13:51:284 days 7 hrs ago0xebbd592511f957f3364310705c85a05770702c39 IN  Aave: aAAVE Token V30 Ether0.0000472078330.00100155
0x8c6ded47c21bb3295a2afe9f2dd7c29fd6d78f5b67a1a6ce6b17dbc8ea8041b9Approve253676302022-09-25 16:50:465 days 4 hrs ago0x99f872252219d4960cab6a35f08d92d7a071c961 IN  Aave: aAAVE Token V30 Ether0.0000377219770.00100155
0x24e87156a5b1cb392a6ed07255f6367d9c8cb65e0b2c33f91b6dc11bc94e6833Approve253053562022-09-25 11:28:085 days 10 hrs ago0x350cef1ada280e63fb62bba4952abc7c98ac215c IN  Aave: aAAVE Token V30 Ether0.0000263182010.00100155
0x45d10d62cf9487e4e525d3e0e717ee30fc23fe9a53052b28027de5412b1511c6Approve252983622022-09-25 10:50:495 days 10 hrs ago0xfd102a750c595d95ace7bdbed17e8b444891610d IN  Aave: aAAVE Token V30 Ether0.0000187330210.00100155
0xb10a7f7f9a45cefa40f930a76b1bf3ac7d15981e89b2dca28f7355631af8449aApprove252961152022-09-25 10:39:455 days 11 hrs ago0x7123f4096e48db85795feb2a14af97acdc4135f7 IN  Aave: aAAVE Token V30 Ether0.0000184426490.00100155
0x805ee47803b5fd42ed2c716098e2d8335533dfb786856976dbf648128979eeaaApprove252706982022-09-25 8:46:005 days 12 hrs ago0xc87ec6959855718a4c20616d4468445df21c2064 IN  Aave: aAAVE Token V30 Ether0.0000183231960.00100155
0x1ae3f8a81f06c1155da2afef899fa5326bf63598ec426528a747c90d58e545c2Approve252603642022-09-25 7:52:435 days 13 hrs ago0x98488c8a8005e8cae743d571d2a0f87db288ea99 IN  Aave: aAAVE Token V30 Ether0.0000168751850.00100155
0xcc7c997ef48816a5d64b2665689c1201dd37855f15feb5fefee4ee3d37666521Approve252128912022-09-25 2:00:375 days 19 hrs ago0xb88b497cc0f685a15e692cdb951016b77dd2a0b7 IN  Aave: aAAVE Token V30 Ether0.0000227864790.00100155
0xf7b0f79766097d08877b9ae503bf97ca6e7bf7b4cc9ba2c72739a935e7f72e5eApprove252005972022-09-24 23:55:535 days 21 hrs ago0xd1a5b91957530e1b3e9cfac1543467c60c352f69 IN  Aave: aAAVE Token V30 Ether0.0000116717140.00100155
0xb8c2299a8c0f358891a29a2c8e6ab4b158886eca9396d53da0c4574ebeb7a5c8Approve251724982022-09-24 19:10:106 days 2 hrs ago0x59c37e94da9747052d4c051d1832bab10d4af2b5 IN  Aave: aAAVE Token V30 Ether0.0000341445030.00100155
0x06643473d449d775ffb2e2cdc0f9748dd511c63d58c564126304ed3162ede492Approve251295782022-09-24 14:19:076 days 7 hrs ago0x7e63ff6a16419e36879bb1e6152d1a61e66f531d IN  Aave: aAAVE Token V30 Ether0.0000216375230.0011
0x731c876b0de286c3b50dfd364e5b8e75d09f364d277df875f2995682df87e08aApprove250956162022-09-24 11:26:356 days 10 hrs ago0xf68449dd9f09945360da6e529d1ef46dba0eb86c IN  Aave: aAAVE Token V30 Ether0.0000178994210.00100155
0x612ef2ca3f47d3b934fd252682f4933c44a49f271808bf1cf92e7cbf879f5719Approve250806682022-09-24 9:53:316 days 11 hrs ago0x78c9ee28f69f57f429168a433772432428882f25 IN  Aave: aAAVE Token V30 Ether0.0000196148970.00100155
0x90cc886a58fb3cab21b77a8c19b940aefa08099079f26853b46cb90a9a5a8180Approve250770472022-09-24 9:32:406 days 12 hrs ago0x3e83a070a88eca9e4e0931ed3abc88e681cb1de0 IN  Aave: aAAVE Token V30 Ether0.0000182102090.00100155
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x8c46de932a1cc48681ebfd447a4cad0ff7c61fc0db4a22a42064a31eb82913a7265783232022-09-30 21:43:031 min ago Aave: aAAVE Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x8c46de932a1cc48681ebfd447a4cad0ff7c61fc0db4a22a42064a31eb82913a7265783232022-09-30 21:43:031 min ago Aave: Pool V3 Aave: aAAVE Token V30 Ether
0x4275497a6eeb62bc129ec56d0050aaab9c239654b699cbf4768f83f11dd73be7265769812022-09-30 21:28:1215 mins ago Aave: aAAVE Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x4275497a6eeb62bc129ec56d0050aaab9c239654b699cbf4768f83f11dd73be7265769812022-09-30 21:28:1215 mins ago Aave: Incentives V3 Aave: aAAVE Token V30 Ether
0xd82441631bd3213092ce5b3544f6db48f16054eade81e4f453da6f12ff325cac265765712022-09-30 21:22:4221 mins ago Aave: aAAVE Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0xd82441631bd3213092ce5b3544f6db48f16054eade81e4f453da6f12ff325cac265765712022-09-30 21:22:4221 mins ago Aave: Incentives V3 Aave: aAAVE Token V30 Ether
0x34f43ffc8cd2489630ac2c09a3f285914b740e582101c39446945f4328df3cc8265750712022-09-30 21:08:4035 mins ago Aave: aAAVE Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x34f43ffc8cd2489630ac2c09a3f285914b740e582101c39446945f4328df3cc8265750712022-09-30 21:08:4035 mins ago Aave: Incentives V3 Aave: aAAVE Token V30 Ether
0x0690facc27cd4d9fda3607d365b58ebc86efd7395896f22652823670f2892306265747982022-09-30 21:05:3238 mins ago Aave: aAAVE Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x0690facc27cd4d9fda3607d365b58ebc86efd7395896f22652823670f2892306265747982022-09-30 21:05:3238 mins ago Aave: Incentives V3 Aave: aAAVE Token V30 Ether
0xc1916d0c956b09a30cfe51ad5857dc8692cd4139395dd29ae6624c94e9fe3287265740932022-09-30 20:58:2645 mins ago Aave: aAAVE Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0xc1916d0c956b09a30cfe51ad5857dc8692cd4139395dd29ae6624c94e9fe3287265740932022-09-30 20:58:2645 mins ago Aave: Pool V3 Aave: aAAVE Token V30 Ether
0x9fd242932682feabd9d9c73e12da35a4034435a81d95e8dd601289a13075cb74265738982022-09-30 20:56:5647 mins ago Aave: aAAVE Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x9fd242932682feabd9d9c73e12da35a4034435a81d95e8dd601289a13075cb74265738982022-09-30 20:56:5647 mins ago Aave: Pool V3 Aave: aAAVE Token V30 Ether
0x915f0708a2c58c57b999e27838b4536af3286f08df5f9d7b6a5c68c4e50c0d37265736762022-09-30 20:54:2449 mins ago Aave: aAAVE Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x915f0708a2c58c57b999e27838b4536af3286f08df5f9d7b6a5c68c4e50c0d37265736762022-09-30 20:54:2449 mins ago Aave: Pool V3 Aave: aAAVE Token V30 Ether
0x41f3d70627b156a07fb3f730a993f0cf407383b2870527cc5edffa831d513810265729682022-09-30 20:47:3356 mins ago Aave: aAAVE Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x41f3d70627b156a07fb3f730a993f0cf407383b2870527cc5edffa831d513810265729682022-09-30 20:47:3356 mins ago Aave: Incentives V3 Aave: aAAVE Token V30 Ether
0x54ee3f3cca915cc6922081b5cfce349cbf1535237691c1ec38159f032aadef50265727662022-09-30 20:45:1658 mins ago Aave: aAAVE Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x54ee3f3cca915cc6922081b5cfce349cbf1535237691c1ec38159f032aadef50265727662022-09-30 20:45:1658 mins ago Aave: Incentives V3 Aave: aAAVE Token V30 Ether
0x91c4242a414d919fe819babac226e1165d062c385c7e5047a957a31cef8b5460265722362022-09-30 20:40:541 hr 3 mins ago Aave: aAAVE Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x91c4242a414d919fe819babac226e1165d062c385c7e5047a957a31cef8b5460265722362022-09-30 20:40:541 hr 3 mins ago Aave: Incentives V3 Aave: aAAVE Token V30 Ether
0xfad9404fb6b09911031bebac15ca707b770e6c5612bc8ebef15bd8ccb24bac38265720292022-09-30 20:40:081 hr 4 mins ago Aave: aAAVE Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0xfad9404fb6b09911031bebac15ca707b770e6c5612bc8ebef15bd8ccb24bac38265720292022-09-30 20:40:081 hr 4 mins ago Aave: Incentives V3 Aave: aAAVE Token V30 Ether
0x04f7480730656bbe053f14a4466ceaa5e039d5578addbb79529cdfea59e72069265710092022-09-30 20:31:431 hr 12 mins ago Aave: aAAVE Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

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

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000008145edddf43f50276641b55bd3ad95944510021e

-----Decoded View---------------
Arg [0] : admin (address): 0x8145edddf43f50276641b55bd3ad95944510021e

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000008145edddf43f50276641b55bd3ad95944510021e


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.