Contract 0x6ab707aca953edaefbc4fd23ba73294241490620 5

 

Contract Overview

Aave: aUSDT Token V3
Balance:
0 Ether

EtherValue:
$0.00

Token:
Txn Hash Method
Index
From
To
Value
0x0f2d0c0e74dd6da24ad1503643e017fc5d3ae38931e58e9025a636555e32edc3Approve263619292022-09-30 1:14:0320 hrs 59 mins ago0x24749aedf18208ab74a8110e07e820286bb5acf8 IN  Aave: aUSDT Token V30 Ether0.0000399159010.00100155
0x293cbcfcbc166800b583bee39c38009326affd17cbb9c022e1f107ca588d80a6Approve259295542022-09-28 7:35:282 days 14 hrs ago0xbfbb35a2c47eeed83612f3fc36ff7ed30091f7ab IN  Aave: aUSDT Token V30 Ether0.0000653615030.00100155
0x4f26a31d4e4f27a66ed635e034de38ad97757d5e0ae84eb56878f455ed04fa2dApprove254381122022-09-26 1:50:304 days 20 hrs ago0x16c2312b7168f0e268751a4d5d73953176d87768 IN  Aave: aUSDT Token V30 Ether0.0000227537880.00100155
0xeac4a77f94a5fee969871cdfbcffdebecc1d891a5ef6813500a9e9d6d12c31dcApprove252658552022-09-25 8:23:555 days 13 hrs ago0x9c322e8eef8f9015436a33cac1ed787a04b7dfa0 IN  Aave: aUSDT Token V30 Ether0.0000185179080.00100155
0x1261387cf30635a1748bf553947611f4e149a3298e503aff995ae2a9ed263388Approve252007712022-09-24 23:57:545 days 22 hrs ago0xd1a5b91957530e1b3e9cfac1543467c60c352f69 IN  Aave: aUSDT Token V30 Ether0.0000121082660.00100155
0x19217d770290135ad5b2b60c931750007316bba840a15d51cb6bff5ba602afa8Approve251469962022-09-24 15:54:196 days 6 hrs ago0x90672e9290319bb760e121af4b3fe7a1f02fb64b IN  Aave: aUSDT Token V30 Ether0.0000189939210.00100155
0xf7b0eded88e291d69b55d2d62281efbb6e6d0b243e403dd3cc803ebc68e38373Approve251460762022-09-24 15:49:016 days 6 hrs ago0x7e63ff6a16419e36879bb1e6152d1a61e66f531d IN  Aave: aUSDT Token V30 Ether0.000028866790.0011
0x1c7c019cd9e0187c070771b5be2a00d215100c0523892742451b833e978a747fApprove249074632022-09-23 16:05:547 days 6 hrs ago0xfa68640b8110cd98671d359492f940cc6957e6e9 IN  Aave: aUSDT Token V30 Ether0.0000559847310.00100155
0x17a0ec082d085c3edef540c388e174b1f46498dc58e4c9d00c36d734819d919eApprove245758942022-09-22 14:21:048 days 7 hrs ago0xffbaa0de31cd06c0031682e6e991b2515e71192e IN  Aave: aUSDT Token V30 Ether0.0000474064550.00100155
0xf987d4b595509c6596be4441c733228e88a331468e1e20daffc42e47f7688216Approve245124062022-09-22 9:59:398 days 12 hrs ago0x33c96dc8a4bbf489f34078b3a439db500751004f IN  Aave: aUSDT Token V30 Ether0.000016964850.00100155
0xadc86ab297e0abd5658145f647bec09a0879eaf2a7a83ebbb71930867b9a4330Approve245085752022-09-22 9:43:538 days 12 hrs ago0x82b016cc16c90329a733ac92e851a025e428f119 IN  Aave: aUSDT Token V30 Ether0.0000154010390.00100155
0x397c7ce11554b8240085ef1f68425335b9a0c3f549f7a27be903f7e66e12fa5cApprove245083932022-09-22 9:43:088 days 12 hrs ago0x053306e4f92b52949ac9f3def73ff49a001305d3 IN  Aave: aUSDT Token V30 Ether0.0000154010390.00100155
0x5bc67eb802e110ee4437e07b14235a16d1ede0a2414db0cf26e52ae760c260f9Approve245073742022-09-22 9:39:088 days 12 hrs ago0xd886a3dedab0bc5301cf88a0d7ead26836d7886a IN  Aave: aUSDT Token V30 Ether0.0000154010390.00100155
0xf186ffefbb35a9e52e006cc2761a7f07cce8f13f81f12a436847135aab53f987Approve245072062022-09-22 9:38:238 days 12 hrs ago0x962ea134d600d60fb8f736f9de0e7bfb5110908b IN  Aave: aUSDT Token V30 Ether0.0000154010390.00100155
0x064e8469e35f68ecb364c1c152ad56ac58b3d45fb071836ae8c211624c6ab295Approve243708612022-09-21 21:42:229 days 31 mins ago0x4a32007040567190bed4fa6ff3f5a03c0d47c9d7 IN  Aave: aUSDT Token V30 Ether0.0001017833940.00100155
0x413a26b09ce6685d6df93495863dfca523decc3bc0e42b3c11194937f439aab5Approve239457262022-09-20 13:51:5710 days 8 hrs ago0xd26938af7c678e288ad457b2df624a1ebdd8137b IN  Aave: aUSDT Token V30 Ether0.000057365980.001
0x22d18db459281a9f8883a01e5f6cda38e62600a78c3d4cbce390ef3189f32e2eTransfer238408882022-09-20 2:53:4710 days 19 hrs ago0x3b92fb76283515a45c64af8955f2acd3d579e7ff IN  Aave: aUSDT Token V30 Ether0.000015566420.001
0x81c04a6ae402bbf31c221c5b26464fd325b3482e3d8d8ea312594777873f22d1Approve237094912022-09-19 6:13:1511 days 16 hrs ago0xa401dd87d2e6ce8acc98653f8ebc830655aff87f IN  Aave: aUSDT Token V30 Ether0.0000255352140.001
0x5954e614185467a25b4f13d39190549c27a00b71b4fdf3c641ad76d34fd1edbdApprove234848192022-09-17 2:38:5313 days 19 hrs ago0xd5175bac40fc20d7949e3cc918436440ab6e93ef IN  Aave: aUSDT Token V30 Ether0.0000203644840.001
0x1039eca2738bfb6103c06ebb9e395ef7dbd8306ef9e3613f3fbf8bfee675b62bApprove234611192022-09-16 19:12:0414 days 3 hrs ago0x70f9ce5e838f40268d4f027498446877f63851ca IN  Aave: aUSDT Token V30 Ether0.0000571590470.001
0xa1e81621dccce3d53bf2dac71e9f7ee698107e17b546358ca63b9c0783c3191cApprove234074782022-09-16 10:19:4014 days 11 hrs ago0xbf92620478dd964cac8e0d8d98bf3336727f4982 IN  Aave: aUSDT Token V30 Ether0.0000314315880.001
0xd5cf9557854fd90789a308270d87eed501d8944187339f33672b2aba5bdc6973Approve233412252022-09-15 22:16:3914 days 23 hrs ago0x60157336466882e64cf690f4c6232149d8eaf33d IN  Aave: aUSDT Token V30 Ether0.0000406615420.001
0x20dd757f82c31f0a9607bae3b8629ab585be936a07b232c7df69c635e4ee1e83Approve233349752022-09-15 20:47:5515 days 1 hr ago0x2a2bdea2785700b49e96d6bc41380b0b07f9f7b6 IN  Aave: aUSDT Token V30 Ether0.0000457153960.001
0x3baf6364b0c5095142a4e363ad09643ded746dc137ea363cad0f90f2d14bfd7aApprove230359602022-09-13 21:40:3117 days 32 mins ago0x6fac2bcca1f5397bf2bc96aa4ae8f35728882761 IN  Aave: aUSDT Token V30 Ether0.0000946570850.001
0x66fdf2607bd7df78574f53a60119c326defaf8e66271b8100ef86334643a45a6Approve230049162022-09-13 15:52:4817 days 6 hrs ago0x3d2b82224267d25d6038184cd628d8feb2b1d7d8 IN  Aave: aUSDT Token V30 Ether0.0000565561230.001
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x994d9c6de419047c8ccc5f38b4bfd649d6eff1a0c56fc17e1084c1da81fad73f265801892022-09-30 21:59:4113 mins ago Aave: aUSDT Token V3 Aave: Pool V30 Ether
0x994d9c6de419047c8ccc5f38b4bfd649d6eff1a0c56fc17e1084c1da81fad73f265801892022-09-30 21:59:4113 mins ago Aave: aUSDT Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x994d9c6de419047c8ccc5f38b4bfd649d6eff1a0c56fc17e1084c1da81fad73f265801892022-09-30 21:59:4113 mins ago Aave: Pool Data Provider V3 Aave: aUSDT Token V30 Ether
0x994d9c6de419047c8ccc5f38b4bfd649d6eff1a0c56fc17e1084c1da81fad73f265801892022-09-30 21:59:4113 mins ago Aave: aUSDT Token V3 Aave: Pool V30 Ether
0x994d9c6de419047c8ccc5f38b4bfd649d6eff1a0c56fc17e1084c1da81fad73f265801892022-09-30 21:59:4113 mins ago Aave: aUSDT Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x994d9c6de419047c8ccc5f38b4bfd649d6eff1a0c56fc17e1084c1da81fad73f265801892022-09-30 21:59:4113 mins ago Aave: Pool Data Provider V3 Aave: aUSDT Token V30 Ether
0x5a773abe6bfe86c6dd09333e48313deba1ca9069975b579e455a5947cffdb277265796142022-09-30 21:55:0918 mins ago Aave: aUSDT Token V3 Aave: Pool V30 Ether
0x5a773abe6bfe86c6dd09333e48313deba1ca9069975b579e455a5947cffdb277265796142022-09-30 21:55:0918 mins ago Aave: aUSDT Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x5a773abe6bfe86c6dd09333e48313deba1ca9069975b579e455a5947cffdb277265796142022-09-30 21:55:0918 mins ago Aave: Pool Data Provider V3 Aave: aUSDT Token V30 Ether
0x5a773abe6bfe86c6dd09333e48313deba1ca9069975b579e455a5947cffdb277265796142022-09-30 21:55:0918 mins ago Aave: aUSDT Token V3 Aave: Pool V30 Ether
0x5a773abe6bfe86c6dd09333e48313deba1ca9069975b579e455a5947cffdb277265796142022-09-30 21:55:0918 mins ago Aave: aUSDT Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x5a773abe6bfe86c6dd09333e48313deba1ca9069975b579e455a5947cffdb277265796142022-09-30 21:55:0918 mins ago Aave: Pool Data Provider V3 Aave: aUSDT Token V30 Ether
0x0d35f8b5cfc35fe9c40f2fa280bcdec4d0e209e9d82d0f3078210692d23a121b265791412022-09-30 21:50:2223 mins ago Aave: aUSDT Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x0d35f8b5cfc35fe9c40f2fa280bcdec4d0e209e9d82d0f3078210692d23a121b265791412022-09-30 21:50:2223 mins ago Aave: Pool V3 Aave: aUSDT Token V30 Ether
0x8a89e7b05af7f70a81c5de4b0491e613803a356511a7e66f29b040179d5f71d5265786682022-09-30 21:45:5027 mins ago Aave: aUSDT Token V3 Aave: Pool V30 Ether
0x8a89e7b05af7f70a81c5de4b0491e613803a356511a7e66f29b040179d5f71d5265786682022-09-30 21:45:5027 mins ago Aave: aUSDT Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x8a89e7b05af7f70a81c5de4b0491e613803a356511a7e66f29b040179d5f71d5265786682022-09-30 21:45:5027 mins ago Aave: Pool Data Provider V3 Aave: aUSDT Token V30 Ether
0x4275497a6eeb62bc129ec56d0050aaab9c239654b699cbf4768f83f11dd73be7265769812022-09-30 21:28:1245 mins ago Aave: aUSDT Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x4275497a6eeb62bc129ec56d0050aaab9c239654b699cbf4768f83f11dd73be7265769812022-09-30 21:28:1245 mins ago Aave: Incentives V3 Aave: aUSDT Token V30 Ether
0xd82441631bd3213092ce5b3544f6db48f16054eade81e4f453da6f12ff325cac265765712022-09-30 21:22:4250 mins ago Aave: aUSDT Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0xd82441631bd3213092ce5b3544f6db48f16054eade81e4f453da6f12ff325cac265765712022-09-30 21:22:4250 mins ago Aave: Incentives V3 Aave: aUSDT Token V30 Ether
0xc4819616666c5add0669322f1366cb9d9f67e747a2a3f9c28eef789e228413eb265760162022-09-30 21:18:5654 mins ago Aave: aUSDT Token V3 Aave: Pool V30 Ether
0xc4819616666c5add0669322f1366cb9d9f67e747a2a3f9c28eef789e228413eb265760162022-09-30 21:18:5654 mins ago Aave: aUSDT Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0xc4819616666c5add0669322f1366cb9d9f67e747a2a3f9c28eef789e228413eb265760162022-09-30 21:18:5654 mins ago Aave: Pool Data Provider V3 Aave: aUSDT Token V30 Ether
0x53f37a670c7affb9bcc4c2e21060c57d5324c3609d60b9db8380629784036333265755012022-09-30 21:13:4859 mins ago Aave: aUSDT Token V3 Aave: Pool V30 Ether
[ Download CSV Export 
Loading

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

Contract Name:
InitializableImmutableAdminUpgradeabilityProxy

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 100000 runs

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

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

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

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

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

import './BaseUpgradeabilityProxy.sol';

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    bytes32 slot = IMPLEMENTATION_SLOT;

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

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

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

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

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

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

Contract Security Audit

Contract ABI

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

60a060405234801561001057600080fd5b50604051610a0e380380610a0e83398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b6080516109606100ae6000396000818161014f015281816101a101528181610274015281816104110152818161043a01526105ab01526109606000f3fe60806040526004361061005a5760003560e01c80635c60da1b116100435780635c60da1b14610097578063d1f57894146100d5578063f851a440146100e85761005a565b80633659cfe6146100645780634f1ef28614610084575b6100626100fd565b005b34801561007057600080fd5b5061006261007f3660046106be565b610137565b6100626100923660046106e0565b610189565b3480156100a357600080fd5b506100ac61025a565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100626100e3366004610792565b6102cb565b3480156100f457600080fd5b506100ac6103f7565b61010561045c565b6101356101307f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b610464565b565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614156101815761017e81610488565b50565b61017e6100fd565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016141561024d576101d083610488565b60008373ffffffffffffffffffffffffffffffffffffffff1683836040516101f9929190610872565b600060405180830381855af49150503d8060008114610234576040519150601f19603f3d011682016040523d82523d6000602084013e610239565b606091505b505090508061024757600080fd5b50505050565b6102556100fd565b505050565b60003373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614156102c057507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6102c86100fd565b90565b60006102f57f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b73ffffffffffffffffffffffffffffffffffffffff161461031557600080fd5b61034060017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd610882565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc1461036e5761036e6108c0565b610377826104d5565b8051156103f35760008273ffffffffffffffffffffffffffffffffffffffff16826040516103a591906108ef565b600060405180830381855af49150503d80600081146103e0576040519150601f19603f3d011682016040523d82523d6000602084013e6103e5565b606091505b505090508061025557600080fd5b5050565b60003373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614156102c057507f000000000000000000000000000000000000000000000000000000000000000090565b610135610593565b3660008037600080366000845af43d6000803e808015610483573d6000f35b3d6000fd5b610491816104d5565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6104de81610659565b61056f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f60448201527f6e20746f2061206e6f6e2d636f6e74726163742061646472657373000000000060648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161415610135576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e20667260448201527f6f6d207468652070726f78792061646d696e00000000000000000000000000006064820152608401610566565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061068d57508115155b949350505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146106b957600080fd5b919050565b6000602082840312156106d057600080fd5b6106d982610695565b9392505050565b6000806000604084860312156106f557600080fd5b6106fe84610695565b9250602084013567ffffffffffffffff8082111561071b57600080fd5b818601915086601f83011261072f57600080fd5b81358181111561073e57600080fd5b87602082850101111561075057600080fd5b6020830194508093505050509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156107a557600080fd5b6107ae83610695565b9150602083013567ffffffffffffffff808211156107cb57600080fd5b818501915085601f8301126107df57600080fd5b8135818111156107f1576107f1610763565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561083757610837610763565b8160405282815288602084870101111561085057600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b8183823760009101908152919050565b6000828210156108bb577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b6000825160005b8181101561091057602081860181015185830152016108f6565b8181111561091f576000828501525b50919091019291505056fea26469706673582212207698a80201d2f92a3290973c99527c6e810eaf731191e18abe2c96acab47dca764736f6c634300080a00330000000000000000000000008145edddf43f50276641b55bd3ad95944510021e

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