Contract 0x8fd4af47e4e63d1d2d45582c3286b4bd9bb95dfe 12

 

Contract Overview

The Granary: Lending Pool
Balance:
0 ETH

EtherValue:
$0.00

Token:
Txn Hash Method
Block
From
To
Value
0xfafb43e3dd0915ddc9fa24cef3c0415f254e54db4db13dca7e09f7f4bff1f180Withdraw1180081952024-03-28 8:39:272 hrs 31 mins ago 0xfb953d5c69bb04461b74e13655072eae8fb384da IN  The Granary: Lending Pool0 ETH0.0000119178290.028857384
0x4bf032f11d8831f4414651a24c2e0aea17d13765ca07d09411258b23eb826e4cDeposit1180056632024-03-28 7:15:033 hrs 55 mins ago0x9b9e8bc43c15559653868587a193bd014dff5c65 IN  The Granary: Lending Pool0 ETH0.0000110745860.029794131
0x0430377d001508cc88a35194356564a7fd410febb98fb5eb30ce7bf3cc9ac165Borrow1180055162024-03-28 7:10:094 hrs ago0x302c469a8e85d9f6d604d5e7ca4836b86220d22f IN  The Granary: Lending Pool0 ETH0.0000121265350.02951321
0xfc9fbb809adeebeedc26db06aaf8d3d0751946b0cd2ac907c5c377199c8f1ea8Repay1180054942024-03-28 7:09:254 hrs 1 min ago0x302c469a8e85d9f6d604d5e7ca4836b86220d22f IN  The Granary: Lending Pool0 ETH0.00001093420.028696393
0xdc9951f3f244b92898c961619ad4ce0ef5482846eeb96e2308b77ca8f713dc61Borrow1180053742024-03-28 7:05:254 hrs 5 mins ago0x302c469a8e85d9f6d604d5e7ca4836b86220d22f IN  The Granary: Lending Pool0 ETH0.0000171083590.028238212
0x261ae3d59f97411fdd380e9b2e8e2765bfb4b60b5814769e15d63a4ea2ab356fRepay1180050242024-03-28 6:53:454 hrs 16 mins ago0x19ba2747655075b4a2ab5cb914309e23b6011313 IN  The Granary: Lending Pool0 ETH0.0000110651840.030037619
0x5b605340ec818eccacd7bd9a950f4e99e26da3ad0277078de71f2e7ef4381416Repay1180047082024-03-28 6:43:134 hrs 27 mins ago0x770f686a7a802bd2f1286d79979effd2e9b2467b IN  The Granary: Lending Pool0 ETH0.0000116826610.029332108
0x3fcc9ee748935ef5ed33b7314f2b4e7319f540f4a67a730bc55f96917ed75e21Repay1180035702024-03-28 6:05:175 hrs 5 mins ago0xb4bbccb27cd9b6ea71105cf20b3d755fa527a6f0 IN  The Granary: Lending Pool0 ETH0.0000134894730.0290007
0x274aa7e2ded4b48e081357249e764d3446a9126b5c4923e7a578cf5119af3b82Deposit1180032372024-03-28 5:54:115 hrs 16 mins ago0xbae6379acaee0fd0d5922caba1895292533b6fb9 IN  The Granary: Lending Pool0 ETH0.0000076594410.030079563
0x96f972fb18deb96f76ed3abd992cda50375be96b214cc6f20db99c633aecbed1Borrow1180025402024-03-28 5:30:575 hrs 39 mins ago0xb4bbccb27cd9b6ea71105cf20b3d755fa527a6f0 IN  The Granary: Lending Pool0 ETH0.0000208580540.0309281
0x15c4d9d67460831cee7097ab17b01b6e1878ff65e1f38ab770a7613e99d1b330Repay1180019282024-03-28 5:10:335 hrs 59 mins ago0xbf70b1909d6cc217e372ce989750e84636035690 IN  The Granary: Lending Pool0 ETH0.0000119441770.028441426
0xa7db1da7b534fa1a12280dc080f0a10a6e533a6137b4f4fa7bf08dd9ca6b17e3Borrow1179996122024-03-28 3:53:217 hrs 17 mins ago0x770f686a7a802bd2f1286d79979effd2e9b2467b IN  The Granary: Lending Pool0 ETH0.0000127072310.029506243
0x8b04806e78701eb9e250d1b002b232b08f98daf33d3ed851d7c3227e50ef436cBorrow1179995942024-03-28 3:52:457 hrs 17 mins ago0x770f686a7a802bd2f1286d79979effd2e9b2467b IN  The Granary: Lending Pool0 ETH0.0000120824630.028883642
0x4fb2336fc14d7cd982e8af3dc0a86a5d9183567ff48112e1f3fbb3b9e5a9906dDeposit1179985652024-03-28 3:18:277 hrs 52 mins ago0x7693517008eee395e93dfc8e784d48e667222fa6 IN  The Granary: Lending Pool0 ETH0.0000090735690.030332189
0x130f1e2374b14e3b871a1cbb956e1d96f98a1634c225506eee58df99ab11d4bdBorrow1179985142024-03-28 3:16:457 hrs 53 mins ago0x7693517008eee395e93dfc8e784d48e667222fa6 IN  The Granary: Lending Pool0 ETH0.0000155350160.030446709
0xff23840398ad29f976c75804d387ed54189f0c4c8be26e5f63f8d9369840676eRepay1179985012024-03-28 3:16:197 hrs 54 mins ago0x7693517008eee395e93dfc8e784d48e667222fa6 IN  The Granary: Lending Pool0 ETH0.0000085517960.030058776
0xc9fee22837c04c0c7b0bda887fc61f43d913a10068fcf28023b4e579b874ae02Withdraw1179969812024-03-28 2:25:398 hrs 44 mins ago0x4c7eabe657187d2c8c5f7e2bb453478f72fd00c9 IN  The Granary: Lending Pool0 ETH0.0000275433390.03003015
0xa3b0cc8b3a2125052ad842f545467d2764c794238f6789215f2efdaf12de6ab6Repay1179934262024-03-28 0:27:0910 hrs 43 mins ago 0xadea3af062df0de0c29e67d001d0859cd738bccd IN  The Granary: Lending Pool0 ETH0.0000115334060.030058156
0x053f6805688509cc14650439da924cc5f85f092edf4bb1c956a54a8178ec33c5Repay1179926052024-03-27 23:59:4711 hrs 10 mins ago0x7693517008eee395e93dfc8e784d48e667222fa6 IN  The Granary: Lending Pool0 ETH0.0000089763790.030351313
0x82063f0fe9d24b1d76cd2165265743507b0cee53732e39aeb41b9547a7978c5fWithdraw1179925322024-03-27 23:57:2111 hrs 13 mins ago0x7693517008eee395e93dfc8e784d48e667222fa6 IN  The Granary: Lending Pool0 ETH0.0000176229660.029529758
0x911c5a1cf8c80d75fee1375c6b9595e7fa926eeba80d9cb7045b42fcad4f92afRepay1179925142024-03-27 23:56:4511 hrs 13 mins ago0x7693517008eee395e93dfc8e784d48e667222fa6 IN  The Granary: Lending Pool0 ETH0.0000082400410.030548773
0xb4daed48031b71a4cb3213fc3246cb7e777322e66b37cd25b7432d19a19df8beRepay1179920982024-03-27 23:42:5311 hrs 27 mins ago0x7693517008eee395e93dfc8e784d48e667222fa6 IN  The Granary: Lending Pool0 ETH0.0000141059990.030223197
0xde0413b1b9b4e1ac04b16ce37e2bdb8516e1574e5ded3f1b98eb758d6f4b6632Withdraw1179920472024-03-27 23:41:1111 hrs 29 mins ago0x7693517008eee395e93dfc8e784d48e667222fa6 IN  The Granary: Lending Pool0 ETH0.000023627640.029253759
0xb3145dd1807e6ff88d1c081c9c6b0d77677f41a86decee0de90e146d9000bce4Repay1179920292024-03-27 23:40:3511 hrs 29 mins ago0x7693517008eee395e93dfc8e784d48e667222fa6 IN  The Granary: Lending Pool0 ETH0.0000169082140.030360126
0x14e6f7b47897e011b21b494110d7611595c907e661aa6aa041dc180d9577f4a6Withdraw1179918142024-03-27 23:33:2511 hrs 37 mins ago0x7693517008eee395e93dfc8e784d48e667222fa6 IN  The Granary: Lending Pool0 ETH0.000025972840.029092352
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xcefde9480e4889cbb1f59d4afa09bb938f7403c1db1c7c7b318df9a7e42b96fa1075582512023-07-30 11:07:59242 days 2 mins ago The Granary: Lending Pool 0x72fad09e3da8cec0e975bf253c1e5eafdb927fec0 ETH
0xcefde9480e4889cbb1f59d4afa09bb938f7403c1db1c7c7b318df9a7e42b96fa1075582512023-07-30 11:07:59242 days 2 mins ago 0x0a05d3d77b66af45233599fe4f5558326e4ad269 The Granary: Lending Pool0 ETH
0xcefde9480e4889cbb1f59d4afa09bb938f7403c1db1c7c7b318df9a7e42b96fa1075582512023-07-30 11:07:59242 days 2 mins ago The Granary: Lending Pool 0x0a05d3d77b66af45233599fe4f5558326e4ad2690 ETH
0xcefde9480e4889cbb1f59d4afa09bb938f7403c1db1c7c7b318df9a7e42b96fa1075582512023-07-30 11:07:59242 days 2 mins ago The Granary: Lending Pool 0x757abeffede648f482e13c9a05cfc1879619e2700 ETH
0xcefde9480e4889cbb1f59d4afa09bb938f7403c1db1c7c7b318df9a7e42b96fa1075582512023-07-30 11:07:59242 days 2 mins ago The Granary: Lending Pool 0x72fad09e3da8cec0e975bf253c1e5eafdb927fec0 ETH
0xcefde9480e4889cbb1f59d4afa09bb938f7403c1db1c7c7b318df9a7e42b96fa1075582512023-07-30 11:07:59242 days 2 mins ago 0x0a05d3d77b66af45233599fe4f5558326e4ad269 The Granary: Lending Pool0 ETH
0xcefde9480e4889cbb1f59d4afa09bb938f7403c1db1c7c7b318df9a7e42b96fa1075582512023-07-30 11:07:59242 days 2 mins ago The Granary: Lending Pool 0x0a05d3d77b66af45233599fe4f5558326e4ad2690 ETH
0xcefde9480e4889cbb1f59d4afa09bb938f7403c1db1c7c7b318df9a7e42b96fa1075582512023-07-30 11:07:59242 days 2 mins ago The Granary: Lending Pool 0x757abeffede648f482e13c9a05cfc1879619e2700 ETH
0xcefde9480e4889cbb1f59d4afa09bb938f7403c1db1c7c7b318df9a7e42b96fa1075582512023-07-30 11:07:59242 days 2 mins ago The Granary: Lending Pool 0x72fad09e3da8cec0e975bf253c1e5eafdb927fec0 ETH
0xcefde9480e4889cbb1f59d4afa09bb938f7403c1db1c7c7b318df9a7e42b96fa1075582512023-07-30 11:07:59242 days 2 mins ago 0xff94cc8e2c4b17e3cc65d7b83c7e8c643030d936 The Granary: Lending Pool0 ETH
0xcefde9480e4889cbb1f59d4afa09bb938f7403c1db1c7c7b318df9a7e42b96fa1075582512023-07-30 11:07:59242 days 2 mins ago The Granary: Lending Pool 0xff94cc8e2c4b17e3cc65d7b83c7e8c643030d9360 ETH
0xcefde9480e4889cbb1f59d4afa09bb938f7403c1db1c7c7b318df9a7e42b96fa1075582512023-07-30 11:07:59242 days 2 mins ago The Granary: Lending Pool 0x9aeefef549323511e027d70562f0c7edcdeb294c0 ETH
0xcefde9480e4889cbb1f59d4afa09bb938f7403c1db1c7c7b318df9a7e42b96fa1075582512023-07-30 11:07:59242 days 2 mins ago The Granary: Lending Pool 0xdde5dc81e40799750b92079723da2acaf9e1c6d60 ETH
0xcefde9480e4889cbb1f59d4afa09bb938f7403c1db1c7c7b318df9a7e42b96fa1075582512023-07-30 11:07:59242 days 2 mins ago The Granary: Lending Pool 0x025d9d36c616946530ff8ea32d912abf731709470 ETH
0xcefde9480e4889cbb1f59d4afa09bb938f7403c1db1c7c7b318df9a7e42b96fa1075582512023-07-30 11:07:59242 days 2 mins ago The Granary: Lending Pool 0xdde5dc81e40799750b92079723da2acaf9e1c6d60 ETH
0xcefde9480e4889cbb1f59d4afa09bb938f7403c1db1c7c7b318df9a7e42b96fa1075582512023-07-30 11:07:59242 days 2 mins ago The Granary: Lending Pool 0x72fad09e3da8cec0e975bf253c1e5eafdb927fec0 ETH
0xcefde9480e4889cbb1f59d4afa09bb938f7403c1db1c7c7b318df9a7e42b96fa1075582512023-07-30 11:07:59242 days 2 mins ago 0x9999b9d51d85b0fe783efdded7d967545001f78f The Granary: Lending Pool0 ETH
0xcefde9480e4889cbb1f59d4afa09bb938f7403c1db1c7c7b318df9a7e42b96fa1075582512023-07-30 11:07:59242 days 2 mins ago The Granary: Lending Pool 0x72fad09e3da8cec0e975bf253c1e5eafdb927fec0 ETH
0xcefde9480e4889cbb1f59d4afa09bb938f7403c1db1c7c7b318df9a7e42b96fa1075582512023-07-30 11:07:59242 days 2 mins ago 0x0a05d3d77b66af45233599fe4f5558326e4ad269 The Granary: Lending Pool0 ETH
0xcefde9480e4889cbb1f59d4afa09bb938f7403c1db1c7c7b318df9a7e42b96fa1075582512023-07-30 11:07:59242 days 2 mins ago The Granary: Lending Pool 0x72fad09e3da8cec0e975bf253c1e5eafdb927fec0 ETH
0xcefde9480e4889cbb1f59d4afa09bb938f7403c1db1c7c7b318df9a7e42b96fa1075582512023-07-30 11:07:59242 days 2 mins ago 0xff94cc8e2c4b17e3cc65d7b83c7e8c643030d936 The Granary: Lending Pool0 ETH
0xcefde9480e4889cbb1f59d4afa09bb938f7403c1db1c7c7b318df9a7e42b96fa1075582512023-07-30 11:07:59242 days 2 mins ago The Granary: Lending Pool 0x72fad09e3da8cec0e975bf253c1e5eafdb927fec0 ETH
0xcefde9480e4889cbb1f59d4afa09bb938f7403c1db1c7c7b318df9a7e42b96fa1075582512023-07-30 11:07:59242 days 2 mins ago 0x0a05d3d77b66af45233599fe4f5558326e4ad269 The Granary: Lending Pool0 ETH
0xcefde9480e4889cbb1f59d4afa09bb938f7403c1db1c7c7b318df9a7e42b96fa1075582512023-07-30 11:07:59242 days 2 mins ago The Granary: Lending Pool 0x0a05d3d77b66af45233599fe4f5558326e4ad2690 ETH
0xcefde9480e4889cbb1f59d4afa09bb938f7403c1db1c7c7b318df9a7e42b96fa1075582512023-07-30 11:07:59242 days 2 mins ago The Granary: Lending Pool 0x757abeffede648f482e13c9a05cfc1879619e2700 ETH
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
InitializableImmutableAdminUpgradeabilityProxy

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

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

import './BaseImmutableAdminUpgradeabilityProxy.sol';
import '../../../dependencies/openzeppelin/upgradeability/InitializableUpgradeabilityProxy.sol';

/**
 * @title InitializableAdminUpgradeabilityProxy
 * @dev Extends BaseAdminUpgradeabilityProxy with an initializer function
 */
contract InitializableImmutableAdminUpgradeabilityProxy is
  BaseImmutableAdminUpgradeabilityProxy,
  InitializableUpgradeabilityProxy
{
  constructor(address admin) public BaseImmutableAdminUpgradeabilityProxy(admin) {}

  /**
   * @dev Only fall back when the sender is not the admin.
   */
  function _willFallback() internal override(BaseImmutableAdminUpgradeabilityProxy, Proxy) {
    BaseImmutableAdminUpgradeabilityProxy._willFallback();
  }
}

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

import '../../../dependencies/openzeppelin/upgradeability/BaseUpgradeabilityProxy.sol';

/**
 * @title BaseImmutableAdminUpgradeabilityProxy
 * @author Aave, inspired by the OpenZeppelin upgradeability proxy pattern
 * @dev This contract combines an upgradeability proxy with an authorization
 * mechanism for administrative tasks. 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 immutable ADMIN;

  constructor(address admin) public {
    ADMIN = admin;
  }

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

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

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

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

  /**
   * @dev Upgrade the backing implementation of the proxy and call a function
   * on the new implementation.
   * This is useful to initialize the proxied contract.
   * @param newImplementation 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);
  }

  /**
   * @dev 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 3 of 6 : InitializableUpgradeabilityProxy.sol
// SPDX-License-Identifier: agpl-3.0
pragma solidity 0.6.12;

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 4 of 6 : BaseUpgradeabilityProxy.sol
// SPDX-License-Identifier: agpl-3.0
pragma solidity 0.6.12;

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 5 of 6 : Proxy.sol
// SPDX-License-Identifier: agpl-3.0
pragma solidity ^0.6.0;

/**
 * @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.
   * 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 6 of 6 : Address.sol
// SPDX-License-Identifier: agpl-3.0
pragma solidity 0.6.12;

/**
 * @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": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "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"}]

60a060405234801561001057600080fd5b506040516107733803806107738339818101604052602081101561003357600080fd5b5051606081901b6001600160601b0319166080526001600160a01b03166106f36100806000398061022852806102725280610331528061045e528061048752806105af52506106f36000f3fe60806040526004361061004a5760003560e01c80633659cfe6146100545780634f1ef286146100875780635c60da1b14610107578063d1f5789414610138578063f851a440146101ee575b610052610203565b005b34801561006057600080fd5b506100526004803603602081101561007757600080fd5b50356001600160a01b031661021d565b6100526004803603604081101561009d57600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100c857600080fd5b8201836020820111156100da57600080fd5b803590602001918460018302840111640100000000831117156100fc57600080fd5b509092509050610267565b34801561011357600080fd5b5061011c610324565b604080516001600160a01b039092168252519081900360200190f35b6100526004803603604081101561014e57600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561017957600080fd5b82018360208201111561018b57600080fd5b803590602001918460018302840111640100000000831117156101ad57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610371945050505050565b3480156101fa57600080fd5b5061011c610451565b61020b6104ab565b61021b6102166104b3565b6104d8565b565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561025c57610257816104fc565b610264565b610264610203565b50565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610317576102a1836104fc565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d80600081146102fe576040519150601f19603f3d011682016040523d82523d6000602084013e610303565b606091505b505090508061031157600080fd5b5061031f565b61031f610203565b505050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156103665761035f6104b3565b905061036e565b61036e610203565b90565b600061037b6104b3565b6001600160a01b03161461038e57600080fd5b6103978261053c565b80511561044d576000826001600160a01b0316826040518082805190602001908083835b602083106103da5780518252601f1990920191602091820191016103bb565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d806000811461043a576040519150601f19603f3d011682016040523d82523d6000602084013e61043f565b606091505b505090508061031f57600080fd5b5050565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561036657507f000000000000000000000000000000000000000000000000000000000000000061036e565b61021b6105a4565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e8080156104f7573d6000f35b3d6000fd5b6105058161053c565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b61054581610614565b6105805760405162461bcd60e51b815260040180806020018281038252603b815260200180610683603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561060c5760405162461bcd60e51b81526004018080602001828103825260328152602001806106516032913960400191505060405180910390fd5b61021b61021b565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061064857508115155b94935050505056fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a26469706673582212203801682b75a74ce25ca5dbe58739c5b62298b707b9119c9413881c56f29bcfa864736f6c634300060c0033000000000000000000000000dde5dc81e40799750b92079723da2acaf9e1c6d6

Deployed Bytecode

0x60806040526004361061004a5760003560e01c80633659cfe6146100545780634f1ef286146100875780635c60da1b14610107578063d1f5789414610138578063f851a440146101ee575b610052610203565b005b34801561006057600080fd5b506100526004803603602081101561007757600080fd5b50356001600160a01b031661021d565b6100526004803603604081101561009d57600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100c857600080fd5b8201836020820111156100da57600080fd5b803590602001918460018302840111640100000000831117156100fc57600080fd5b509092509050610267565b34801561011357600080fd5b5061011c610324565b604080516001600160a01b039092168252519081900360200190f35b6100526004803603604081101561014e57600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561017957600080fd5b82018360208201111561018b57600080fd5b803590602001918460018302840111640100000000831117156101ad57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610371945050505050565b3480156101fa57600080fd5b5061011c610451565b61020b6104ab565b61021b6102166104b3565b6104d8565b565b336001600160a01b037f000000000000000000000000dde5dc81e40799750b92079723da2acaf9e1c6d616141561025c57610257816104fc565b610264565b610264610203565b50565b336001600160a01b037f000000000000000000000000dde5dc81e40799750b92079723da2acaf9e1c6d6161415610317576102a1836104fc565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d80600081146102fe576040519150601f19603f3d011682016040523d82523d6000602084013e610303565b606091505b505090508061031157600080fd5b5061031f565b61031f610203565b505050565b6000336001600160a01b037f000000000000000000000000dde5dc81e40799750b92079723da2acaf9e1c6d61614156103665761035f6104b3565b905061036e565b61036e610203565b90565b600061037b6104b3565b6001600160a01b03161461038e57600080fd5b6103978261053c565b80511561044d576000826001600160a01b0316826040518082805190602001908083835b602083106103da5780518252601f1990920191602091820191016103bb565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d806000811461043a576040519150601f19603f3d011682016040523d82523d6000602084013e61043f565b606091505b505090508061031f57600080fd5b5050565b6000336001600160a01b037f000000000000000000000000dde5dc81e40799750b92079723da2acaf9e1c6d616141561036657507f000000000000000000000000dde5dc81e40799750b92079723da2acaf9e1c6d661036e565b61021b6105a4565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e8080156104f7573d6000f35b3d6000fd5b6105058161053c565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b61054581610614565b6105805760405162461bcd60e51b815260040180806020018281038252603b815260200180610683603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b336001600160a01b037f000000000000000000000000dde5dc81e40799750b92079723da2acaf9e1c6d616141561060c5760405162461bcd60e51b81526004018080602001828103825260328152602001806106516032913960400191505060405180910390fd5b61021b61021b565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061064857508115155b94935050505056fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a26469706673582212203801682b75a74ce25ca5dbe58739c5b62298b707b9119c9413881c56f29bcfa864736f6c634300060c0033

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

000000000000000000000000dde5dc81e40799750b92079723da2acaf9e1c6d6

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000dde5dc81e40799750b92079723da2acaf9e1c6d6


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.