Contract 0x82E64f49Ed5EC1bC6e43DAD4FC8Af9bb3A2312EE 5

 

Contract Overview

Aave: aDAI Token V3
Balance:
0 Ether

EtherValue:
$0.00

Token:
Txn Hash Method
Index
From
To
Value
0x3ef247d60e13f17160692ea13100ec6663a98d3cfb7f0d96fa6625383f2f9ae3Approve264035532022-09-30 6:28:0115 hrs 23 mins ago0x97eda3c9f1e4c7ef743b552ab687aa49fca804c0 IN  Aave: aDAI Token V30 Ether0.000041341370.00100155
0x029025c5cd6538f3b8ff0d65730e032fa656d3f9260cf22f8280a6cd69d2f086Approve262554862022-09-29 12:39:031 day 9 hrs ago0xbf77b8a74db0844032cffb3eeb487fc500765c4e IN  Aave: aDAI Token V30 Ether0.0000840974970.00100155
0xa073f3ca4072d6f544663e17e300e5414bc27fb4980035ec20c0c6e3cb7a10f7Approve262551272022-09-29 12:37:481 day 9 hrs ago0xfbf0736eb2ac1c4bb0193ae54c53e182b18037fc IN  Aave: aDAI Token V30 Ether0.0000840974970.00100155
0xc3b2f0196a3179513229f6cc9a89ed897c53abd27c4886587e663d49cdf5ec0bApprove259488712022-09-28 9:04:192 days 12 hrs ago0x3b71f9ee530a17cfb5624a423e5cabbb23bf65d5 IN  Aave: aDAI Token V30 Ether0.0000514465470.00100155
0x4a84e88c8533344af1fba2f85236a54bfdd41ac28cc2ecceb8cccdff6c487c5cApprove259107012022-09-28 6:01:322 days 15 hrs ago0xbe9efe8c2f21f71fc8b46442273b386ed4063951 IN  Aave: aDAI Token V30 Ether0.0000504299860.00100155
0xc9b90c0e9e5425dd209af424ffdadc0c98d4c959562e3a42c205b83ffe17a6d9Approve258825872022-09-28 2:55:532 days 18 hrs ago0xaec523849b0aab8c8da5a4395ec8862f8fb9af78 IN  Aave: aDAI Token V30 Ether0.0000462892730.00100155
0x6c92c21aa343f5eb143991d6d20f76034f2e78da26d506ea5f0fa83f55615e5cApprove257486042022-09-27 12:11:393 days 9 hrs ago0xa401dd87d2e6ce8acc98653f8ebc830655aff87f IN  Aave: aDAI Token V30 Ether0.0001091799380.00100155
0x1ce12e2a50f0794504dea0b0c650eb4e6dfe4f10d308f93ffef7aba2d58e4429Approve257452572022-09-27 11:49:413 days 10 hrs ago0xabe2b5ec3b1104bf3628c3f9083fa1eb76b0eed4 IN  Aave: aDAI Token V30 Ether0.0000486445820.00100155
0xff9275d7800720adc548cb51f0dba95bf9a6c72d66f25ae966986373c598c92bApprove257408122022-09-27 11:21:083 days 10 hrs ago0xb0122a3b9151d7e1f5b7e1649f998a6de30c831d IN  Aave: aDAI Token V30 Ether0.0000341345450.00100155
0xf4afa606691cb0bfdc58697406ea2fac18565ed84c61a1aa1e206bfbf1f2db95Approve257336822022-09-27 10:30:423 days 11 hrs ago0xb89729bc7eebbfad2f3dd073ee8f200d1116ae8b IN  Aave: aDAI Token V30 Ether0.000043541120.00100155
0x3a7b8429ae5a3df3f967d34abd920a42deb4281f935ae66598f603296d415015Approve257296402022-09-27 10:00:013 days 11 hrs ago0x591a22d96fa57e22756eddd7997e4381eb133d62 IN  Aave: aDAI Token V30 Ether0.0000373084370.00100155
0xf3ad6502173646267e5c2a64ab953b0e2932e1eafc9470777c4f714b159d4451Approve257110852022-09-27 8:04:413 days 13 hrs ago0xc8e7817c4ac86ef3afc525f150091391205b727c IN  Aave: aDAI Token V30 Ether0.0000862547260.00100155
0xdd382532d5374614ec140c7dc1791ae78ff56fa1edbda81d1146da8d0211ff0cApprove256654732022-09-27 2:52:053 days 18 hrs ago0xfd5f370e2eda5c2d08881f7c8f7a6463271de5b0 IN  Aave: aDAI Token V30 Ether0.0000395870060.00100155
0xf1ff3ebee2e398303da62a45ce933be0d71462f0d7d073d841383ac395c9aa0bApprove256521602022-09-27 1:13:423 days 20 hrs ago0x3d2b82224267d25d6038184cd628d8feb2b1d7d8 IN  Aave: aDAI Token V30 Ether0.000034919520.00100155
0x92d29a3dfb13e2df336c01e3aecb742fc27aa32cb224e32ac7a59fa09c52ec6fApprove256184682022-09-26 18:47:104 days 3 hrs ago0x5146b43ae9fd7c28ae40c79f321465a069ea4263 IN  Aave: aDAI Token V30 Ether0.0001415751990.0013
0x27a37ef02ddcba8d37648710e6c49d9b418b441f41c3320d066333a57fad3969Approve255006112022-09-26 8:11:074 days 13 hrs ago0x320f3d5429853c7b66b7df3c7837cdd183c0146a IN  Aave: aDAI Token V30 Ether0.000019270970.00100155
0xc9b95fc7b402f6dc9616fd9403cccbecc4132aa8feecdbab72c42b3b3a0a0a02Approve253998762022-09-25 20:50:245 days 1 hr ago0x848f11e9c468be9ef6bf5f1daa742e6adf25d7a7 IN  Aave: aDAI Token V30 Ether0.0000440663220.00100155
0x071792441a26f53cb52b3581c8fc8d3e24f60611caef3083404e2742f3b56e13Approve253991602022-09-25 20:42:305 days 1 hr ago0xfbe4b8a45b43c314a3bf28fd6848d4698ffe2a85 IN  Aave: aDAI Token V30 Ether0.0000478981330.00100155
0x98fd4b2dec5ee858400236a36a45130c21f79a2eb0c928f563b69e0891f6e755Approve253415632022-09-25 14:21:025 days 7 hrs ago 0x5f05ed08e67cbd71e5f4819146c5409f405baee7 IN  Aave: aDAI Token V30 Ether0.0000485075290.00100155
0x06504ef27034cd8fba2e6f1c5d9d1c707d6f755c793c3370dc7aa148c654edc0Approve253385422022-09-25 14:08:175 days 7 hrs ago0xba04ef733cdf056f2256f893ab779de3ba5bc7b0 IN  Aave: aDAI Token V30 Ether0.0000303928070.00100155
0x48a6e0e847b684b5bbecd9a62ff740e53e6f5a0df6bdb027b3d8ab73949349f2Approve253377662022-09-25 14:04:315 days 7 hrs ago0xba04ef733cdf056f2256f893ab779de3ba5bc7b0 IN  Aave: aDAI Token V30 Ether0.0000298354680.00100155
0xbed5fbcbcf19bdf2e99940f96f24964df7226a6b9fbe36b3cb3df528fd3f4651Approve252895942022-09-25 10:12:275 days 11 hrs ago0x558e4048458a09fdfc86d2f102e1380936e9272f IN  Aave: aDAI Token V30 Ether0.0000184546420.00100155
0xcd9d509e66995f8c84ebda5f04baf5875576c7525fee56bf71dfeb67a6539eaaApprove252485362022-09-25 6:42:155 days 15 hrs ago0x32e4efc207af388109c0474eae87cddc54fe7ad2 IN  Aave: aDAI Token V30 Ether0.0000173492410.00100155
0x543ee9d5f2d29226fd565648f852592b8316a55fd146e7c591dfb30cfdb97520Approve252473572022-09-25 6:33:435 days 15 hrs ago0xfa9d7743d236bda6d394d9ed11f10bda09bfa7dd IN  Aave: aDAI Token V30 Ether0.0000160363050.00100155
0x08ab7eedcc9bafa52201b6c9a6e928eaa4735ae512f47ad75fb43283ae6e11c7Approve252203622022-09-25 3:02:425 days 18 hrs ago0xd1a5b91957530e1b3e9cfac1543467c60c352f69 IN  Aave: aDAI Token V30 Ether0.000043146220.00100155
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x8a89e7b05af7f70a81c5de4b0491e613803a356511a7e66f29b040179d5f71d5265786682022-09-30 21:45:505 mins ago Aave: aDAI Token V3 Aave: Pool V30 Ether
0x8a89e7b05af7f70a81c5de4b0491e613803a356511a7e66f29b040179d5f71d5265786682022-09-30 21:45:505 mins ago Aave: aDAI Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x8a89e7b05af7f70a81c5de4b0491e613803a356511a7e66f29b040179d5f71d5265786682022-09-30 21:45:505 mins ago Aave: Pool Data Provider V3 Aave: aDAI Token V30 Ether
0xe170d15df9dbc5bd381866ed8f34390cfe6320828a829c1e29dcba385cb6f54b265780652022-09-30 21:40:3010 mins ago Aave: aDAI Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0xe170d15df9dbc5bd381866ed8f34390cfe6320828a829c1e29dcba385cb6f54b265780652022-09-30 21:40:3010 mins ago Aave: Pool V3 Aave: aDAI Token V30 Ether
0x4275497a6eeb62bc129ec56d0050aaab9c239654b699cbf4768f83f11dd73be7265769812022-09-30 21:28:1222 mins ago Aave: aDAI Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x4275497a6eeb62bc129ec56d0050aaab9c239654b699cbf4768f83f11dd73be7265769812022-09-30 21:28:1222 mins ago Aave: Incentives V3 Aave: aDAI Token V30 Ether
0xd82441631bd3213092ce5b3544f6db48f16054eade81e4f453da6f12ff325cac265765712022-09-30 21:22:4228 mins ago Aave: aDAI Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0xd82441631bd3213092ce5b3544f6db48f16054eade81e4f453da6f12ff325cac265765712022-09-30 21:22:4228 mins ago Aave: Incentives V3 Aave: aDAI Token V30 Ether
0xc4819616666c5add0669322f1366cb9d9f67e747a2a3f9c28eef789e228413eb265760162022-09-30 21:18:5632 mins ago Aave: aDAI Token V3 Aave: Pool V30 Ether
0xc4819616666c5add0669322f1366cb9d9f67e747a2a3f9c28eef789e228413eb265760162022-09-30 21:18:5632 mins ago Aave: aDAI Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0xc4819616666c5add0669322f1366cb9d9f67e747a2a3f9c28eef789e228413eb265760162022-09-30 21:18:5632 mins ago Aave: Pool Data Provider V3 Aave: aDAI Token V30 Ether
0x53f37a670c7affb9bcc4c2e21060c57d5324c3609d60b9db8380629784036333265755012022-09-30 21:13:4837 mins ago Aave: aDAI Token V3 Aave: Pool V30 Ether
0x53f37a670c7affb9bcc4c2e21060c57d5324c3609d60b9db8380629784036333265755012022-09-30 21:13:4837 mins ago Aave: aDAI Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x53f37a670c7affb9bcc4c2e21060c57d5324c3609d60b9db8380629784036333265755012022-09-30 21:13:4837 mins ago Aave: Pool Data Provider V3 Aave: aDAI Token V30 Ether
0x6c13e3e6f87a89aed7f026ae594a2d012fd9a950562afab4fbd8dbd6eaa6ab10265754852022-09-30 21:13:4837 mins ago Aave: aDAI Token V3 Aave: Pool V30 Ether
0x6c13e3e6f87a89aed7f026ae594a2d012fd9a950562afab4fbd8dbd6eaa6ab10265754852022-09-30 21:13:4837 mins ago Aave: aDAI Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x6c13e3e6f87a89aed7f026ae594a2d012fd9a950562afab4fbd8dbd6eaa6ab10265754852022-09-30 21:13:4837 mins ago Aave: Pool Data Provider V3 Aave: aDAI Token V30 Ether
0x532b6e6ce60a2b5d59f232e0e4fae4ccd31efb1a60838639486412379a9565bc265751092022-09-30 21:09:1041 mins ago Aave: aDAI Token V3 Maker: DAI Stablecoin0 Ether
0x532b6e6ce60a2b5d59f232e0e4fae4ccd31efb1a60838639486412379a9565bc265751092022-09-30 21:09:1041 mins ago Aave: aDAI Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x532b6e6ce60a2b5d59f232e0e4fae4ccd31efb1a60838639486412379a9565bc265751092022-09-30 21:09:1041 mins ago Aave: Pool V3 Aave: aDAI Token V30 Ether
0x34f43ffc8cd2489630ac2c09a3f285914b740e582101c39446945f4328df3cc8265750712022-09-30 21:08:4042 mins ago Aave: aDAI Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 Ether
0x34f43ffc8cd2489630ac2c09a3f285914b740e582101c39446945f4328df3cc8265750712022-09-30 21:08:4042 mins ago Aave: Incentives V3 Aave: aDAI Token V30 Ether
0x1963b2041187b5d5038a86502b3e929c83a169813408f06566bc4520ae08d616265748222022-09-30 21:06:0545 mins ago Aave: aDAI Token V3 Aave: Pool V30 Ether
0x1963b2041187b5d5038a86502b3e929c83a169813408f06566bc4520ae08d616265748222022-09-30 21:06:0545 mins ago Aave: aDAI Token V3 0xa5ba6e5ec19a1bf23c857991c857db62b2aa187b0 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.