Contract 0xf84E3809971798Bd372aecdC03aE977759A619aB

 

Contract Overview

Balance:
230.716770564576508889 BNB

BNB Value:
$69,217.34 (@ $300.01/BNB)

Token:
 
Txn Hash
Block
From
To
Value [Txn Fee]
0x310f69e5a635b02684f9f8deffb05a26a77e9b3cfd13135187292e23bba090e094567662021-07-25 5:10:161 min ago0xf8587bfb4d3e0b31029efa09d595ee6179ddfeaa IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00165858
0x39765e47907803e4b02e395f99ad470429fe28606fd9705ee60cc249174fe89694567102021-07-25 5:07:284 mins ago0xe30078b83108758559d600514370293a4cc5783b IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00165858
0x42d17b486e72ea51c28a0c117edae85653f62d8f8ce78b5a0d7aba3002c095ab94566852021-07-25 5:06:135 mins ago0x5505f7442fcbad24f65265c422f8a055993815c4 IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00158358
0x8128ec7003dc864ee65446ddd7a55a82c548984e27420bcef7c48640901f433c94566452021-07-25 5:04:137 mins ago0x9d4f3dc745a69203ebc7296890732cc61016230a IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00195858
0x26646bb1430cc481545de71721137846995dba4081298e604de0c86a61db852894566292021-07-25 5:03:258 mins ago0x29c82b1c0c5e23655c7285a5d1d42fe0b016705d IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00158358
0x6ae4a0f94f887592c0f5c188a5234f726cf330c9504888a2f60a4e2c9675c62394566192021-07-25 5:02:558 mins ago0xee1aecd3ff80346bc2bedfe0d14b7068edc25349 IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00158358
0x57bcf9f3554bfd4b05a69aeddd71cd26991e8ccf3dccd1b850ce572bb3c6a24794565312021-07-25 4:58:3113 mins ago0x981d98383444d0e6b40aff034cd6c6a4a5207e19 IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00150858
0x01cc92ea4bf6749de00a463d088c87a22f90b62edf87cb3ebbeb0875eaa6711e94565262021-07-25 4:58:1613 mins ago0x9756f6362b9750e9efe5c52685cd87d14e12d768 IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00158358
0x5577fcb9c0873c5d8339eb42823f2fa4fda42d249b6da4a312476b27b28c52b094564872021-07-25 4:56:1915 mins ago0x9fe3f5a27687a267674e6181d81c9ab9faabf86e IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.0015387516
0x9dfe1e4dcfd45879908c290ae129d97143b318eb75fd4b32514e65eea577699894564022021-07-25 4:52:0419 mins ago0x95c0dd21c2b1a5df669524fa6e252683e3e18aa4 IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00158358
0x6b903ea8fa1c021accff0add39746878d051bf96c8319ee85e12b9c3333dc35194563862021-07-25 4:51:1620 mins ago0x162a64e9988479a960d943418479152c58e0c884 IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00158358
0x709fc359bcd8369192babf371f6abf142132e37873848643266352052175809094563702021-07-25 4:50:2821 mins ago0xd4f7cd354d49fa2ad4014695e0394fe25389b153 IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00150858
0x507c0642b1f7719a5529791ac6e198ca8d476845b87a06ad34b25dfb754bfe8194563222021-07-25 4:48:0423 mins ago0xddb7d7fc771076c5fa25649e26129f7fa94810b1 IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00165858
0x062b5759c5b7cf3a63f27c3419659a746f45914d1aa3c7474fc94e2e74aca73894562572021-07-25 4:44:4926 mins ago0x4974fdd567d544a9de0e167f094362c4ce5f396c IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00158358
0xbf53f2f519984616f3d6d28903c9df784bfd46882a218e190dfa6d09a76a0d0f94562432021-07-25 4:44:0727 mins ago0x40eb7985a19e4961a97b8d3ff6afe85298792fa5 IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00165858
0x5d588c6de64c479dba0f4b4d51d1a68da685d4d3c59d98f687652ef3ffc5940294561602021-07-25 4:39:5831 mins ago0x3231b67c9168e89a737736817232f43ce078d0b0 IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00158358
0x2e1bb9ec9b9eceebc746f94832b8fa05a947654504c744230971d16f18dd2deb94561452021-07-25 4:39:1332 mins ago0x75af19d97124e42fc629b41b923d2a13f104a264 IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00165858
0x3b83b4699e2913e6a35931f45440cabf20dfb7086f74ddd518c9236d3b09653994561302021-07-25 4:38:2833 mins ago0xdfd26fab481f15e83bfbea1c33819a5a55c82212 IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00188358
0x5f46006c0380489f3176ff3b5d4e79639ca728b4ca54fcf1ced60acff18fcae494560782021-07-25 4:35:5235 mins ago0x7b2fb68cd8128a3dea045113e9ad72e7e0278b1d IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00165858
0x82a7e1fe3c1f020f3dac2ac3f571fd8e3641625a65897ff60cacac05fe9c8df994560182021-07-25 4:32:5238 mins ago0x01fa7dedba55fceafe567e46e7aa4312c67dfbda IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00150858
0x0030457e0790ef73f21b540435e9842deb73e81d7feb90aec38031898e6004be94559962021-07-25 4:31:4639 mins ago0x13694fa6f4e3b5abc4cd5f8ef7cb9b041d45f7fc IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00165858
0x9b720ffc75c154705a8adfb1482f58c4c09ea3166214dc64ef240e8caf0f02f994559482021-07-25 4:29:2242 mins ago0xccd9b579eda30ccb888517e111a17129791ed8e3 IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00188358
0x51bf38125763e4e888b6715e1098577b2f086fd1966810e57cb309f083754caa94559462021-07-25 4:29:1642 mins ago0x61865d4ad901f32f2eb4c8b2c219d6781a3be2ed IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00150858
0xf201ea99ce2dad5b15fee0001d6a2a3f7feb73e911fef5568b38980b5332257e94558962021-07-25 4:26:2545 mins ago0x80787f8bb2d59876f6e89c3826bd813967621ac1 IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00165858
0x24d695830ba5a860092413a5ff6927f5b8b61899bed67519cc5ccc39ad02d28294558912021-07-25 4:26:0945 mins ago0xf425ed4f9c5fd2c1b7ec04cf7be70bf2347ecf5b IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00165858
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x310f69e5a635b02684f9f8deffb05a26a77e9b3cfd13135187292e23bba090e094567662021-07-25 5:10:161 min ago 0xf84e3809971798bd372aecdc03ae977759a619ab0xf8587bfb4d3e0b31029efa09d595ee6179ddfeaa0.053049344668159135 BNB
0x39765e47907803e4b02e395f99ad470429fe28606fd9705ee60cc249174fe89694567102021-07-25 5:07:284 mins ago 0xf84e3809971798bd372aecdc03ae977759a619ab0xe30078b83108758559d600514370293a4cc5783b0.00026903632083744 BNB
0x42d17b486e72ea51c28a0c117edae85653f62d8f8ce78b5a0d7aba3002c095ab94566852021-07-25 5:06:135 mins ago 0xf84e3809971798bd372aecdc03ae977759a619ab0x5505f7442fcbad24f65265c422f8a055993815c40.000007739913980699 BNB
0x8128ec7003dc864ee65446ddd7a55a82c548984e27420bcef7c48640901f433c94566452021-07-25 5:04:137 mins ago 0xf84e3809971798bd372aecdc03ae977759a619ab0x9d4f3dc745a69203ebc7296890732cc61016230a0.021214234000163261 BNB
0x26646bb1430cc481545de71721137846995dba4081298e604de0c86a61db852894566292021-07-25 5:03:258 mins ago 0xf84e3809971798bd372aecdc03ae977759a619ab0x29c82b1c0c5e23655c7285a5d1d42fe0b016705d0.035460520105785987 BNB
0x6ae4a0f94f887592c0f5c188a5234f726cf330c9504888a2f60a4e2c9675c62394566192021-07-25 5:02:558 mins ago 0xf84e3809971798bd372aecdc03ae977759a619ab0xee1aecd3ff80346bc2bedfe0d14b7068edc253490.00106490023583547 BNB
0x57bcf9f3554bfd4b05a69aeddd71cd26991e8ccf3dccd1b850ce572bb3c6a24794565312021-07-25 4:58:3113 mins ago 0xf84e3809971798bd372aecdc03ae977759a619ab0x981d98383444d0e6b40aff034cd6c6a4a5207e190.00017561087087674 BNB
0x01cc92ea4bf6749de00a463d088c87a22f90b62edf87cb3ebbeb0875eaa6711e94565262021-07-25 4:58:1613 mins ago 0xf84e3809971798bd372aecdc03ae977759a619ab0x9756f6362b9750e9efe5c52685cd87d14e12d7680.000082795586666332 BNB
0x5577fcb9c0873c5d8339eb42823f2fa4fda42d249b6da4a312476b27b28c52b094564872021-07-25 4:56:1915 mins ago 0xf84e3809971798bd372aecdc03ae977759a619ab0x9fe3f5a27687a267674e6181d81c9ab9faabf86e0.000090579269408023 BNB
0x9dfe1e4dcfd45879908c290ae129d97143b318eb75fd4b32514e65eea577699894564022021-07-25 4:52:0419 mins ago 0xf84e3809971798bd372aecdc03ae977759a619ab0x95c0dd21c2b1a5df669524fa6e252683e3e18aa40.001440861863736006 BNB
0x6b903ea8fa1c021accff0add39746878d051bf96c8319ee85e12b9c3333dc35194563862021-07-25 4:51:1620 mins ago 0xf84e3809971798bd372aecdc03ae977759a619ab0x162a64e9988479a960d943418479152c58e0c8840.000017838823496443 BNB
0x709fc359bcd8369192babf371f6abf142132e37873848643266352052175809094563702021-07-25 4:50:2821 mins ago 0xf84e3809971798bd372aecdc03ae977759a619ab0xd4f7cd354d49fa2ad4014695e0394fe25389b1530.000376202302033422 BNB
0x507c0642b1f7719a5529791ac6e198ca8d476845b87a06ad34b25dfb754bfe8194563222021-07-25 4:48:0423 mins ago 0xf84e3809971798bd372aecdc03ae977759a619ab0xddb7d7fc771076c5fa25649e26129f7fa94810b10.000062790339373821 BNB
0x062b5759c5b7cf3a63f27c3419659a746f45914d1aa3c7474fc94e2e74aca73894562572021-07-25 4:44:4926 mins ago 0xf84e3809971798bd372aecdc03ae977759a619ab0x4974fdd567d544a9de0e167f094362c4ce5f396c0.001626153532377053 BNB
0xbf53f2f519984616f3d6d28903c9df784bfd46882a218e190dfa6d09a76a0d0f94562432021-07-25 4:44:0727 mins ago 0xf84e3809971798bd372aecdc03ae977759a619ab0x40eb7985a19e4961a97b8d3ff6afe85298792fa50.000102054181139708 BNB
0x5d588c6de64c479dba0f4b4d51d1a68da685d4d3c59d98f687652ef3ffc5940294561602021-07-25 4:39:5831 mins ago 0xf84e3809971798bd372aecdc03ae977759a619ab0x3231b67c9168e89a737736817232f43ce078d0b00.000845073034394291 BNB
0x2e1bb9ec9b9eceebc746f94832b8fa05a947654504c744230971d16f18dd2deb94561452021-07-25 4:39:1332 mins ago 0xf84e3809971798bd372aecdc03ae977759a619ab0x75af19d97124e42fc629b41b923d2a13f104a2640.00013095824708247 BNB
0x3b83b4699e2913e6a35931f45440cabf20dfb7086f74ddd518c9236d3b09653994561302021-07-25 4:38:2833 mins ago 0xf84e3809971798bd372aecdc03ae977759a619ab0xdfd26fab481f15e83bfbea1c33819a5a55c822120.007824149823365691 BNB
0x5f46006c0380489f3176ff3b5d4e79639ca728b4ca54fcf1ced60acff18fcae494560782021-07-25 4:35:5235 mins ago 0xf84e3809971798bd372aecdc03ae977759a619ab0x7b2fb68cd8128a3dea045113e9ad72e7e0278b1d0.000208530723062323 BNB
0x82a7e1fe3c1f020f3dac2ac3f571fd8e3641625a65897ff60cacac05fe9c8df994560182021-07-25 4:32:5238 mins ago 0xf84e3809971798bd372aecdc03ae977759a619ab0x01fa7dedba55fceafe567e46e7aa4312c67dfbda0.000119598490498959 BNB
0x0030457e0790ef73f21b540435e9842deb73e81d7feb90aec38031898e6004be94559962021-07-25 4:31:4639 mins ago 0xf84e3809971798bd372aecdc03ae977759a619ab0x13694fa6f4e3b5abc4cd5f8ef7cb9b041d45f7fc0.000000135695758919 BNB
0x9b720ffc75c154705a8adfb1482f58c4c09ea3166214dc64ef240e8caf0f02f994559482021-07-25 4:29:2242 mins ago 0xf84e3809971798bd372aecdc03ae977759a619ab0xccd9b579eda30ccb888517e111a17129791ed8e30.017890974639094454 BNB
0x51bf38125763e4e888b6715e1098577b2f086fd1966810e57cb309f083754caa94559462021-07-25 4:29:1642 mins ago 0xf84e3809971798bd372aecdc03ae977759a619ab0x61865d4ad901f32f2eb4c8b2c219d6781a3be2ed0.012600756352649631 BNB
0xf201ea99ce2dad5b15fee0001d6a2a3f7feb73e911fef5568b38980b5332257e94558962021-07-25 4:26:2545 mins ago 0xf84e3809971798bd372aecdc03ae977759a619ab0x80787f8bb2d59876f6e89c3826bd813967621ac10.044360021986442339 BNB
0x24d695830ba5a860092413a5ff6927f5b8b61899bed67519cc5ccc39ad02d28294558912021-07-25 4:26:0945 mins ago 0xf84e3809971798bd372aecdc03ae977759a619ab0xf425ed4f9c5fd2c1b7ec04cf7be70bf2347ecf5b0.019979487117743866 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Similar Match)
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0xbCfe6c8fd18d8D4c5526587822c9C14e9F44A69A

Contract Name:
AdminUpgradeabilityProxy

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 4 : AdminUpgradeabilityProxy.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.6.0;

import './UpgradeabilityProxy.sol';

/**
 * @title AdminUpgradeabilityProxy
 * @dev This contract combines an upgradeability proxy with an authorization
 * mechanism for administrative tasks.
 * 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 AdminUpgradeabilityProxy is UpgradeabilityProxy {
  /**
   * Contract constructor.
   * @param _logic address of the initial implementation.
   * @param _admin Address of the proxy administrator.
   * @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.
   */
  constructor(address _logic, address _admin, bytes memory _data) UpgradeabilityProxy(_logic, _data) public payable {
    assert(ADMIN_SLOT == bytes32(uint256(keccak256('eip1967.proxy.admin')) - 1));
    _setAdmin(_admin);
  }

  /**
   * @dev Emitted when the administration has been transferred.
   * @param previousAdmin Address of the previous admin.
   * @param newAdmin Address of the new admin.
   */
  event AdminChanged(address previousAdmin, address newAdmin);

  /**
   * @dev Storage slot with the admin of the contract.
   * This is the keccak-256 hash of "eip1967.proxy.admin" subtracted by 1, and is
   * validated in the constructor.
   */

  bytes32 internal constant ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;

  /**
   * @dev Modifier to check whether the `msg.sender` is the admin.
   * If it is, it will run the function. Otherwise, it will delegate the call
   * to the implementation.
   */
  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 Changes the admin of the proxy.
   * Only the current admin can call this function.
   * @param newAdmin Address to transfer proxy administration to.
   */
  function changeAdmin(address newAdmin) external ifAdmin {
    require(newAdmin != address(0), "Cannot change the admin of a proxy to the zero address");
    emit AdminChanged(_admin(), newAdmin);
    _setAdmin(newAdmin);
  }

  /**
   * @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) payable external ifAdmin {
    _upgradeTo(newImplementation);
    (bool success,) = newImplementation.delegatecall(data);
    require(success);
  }

  /**
   * @return adm The admin slot.
   */
  function _admin() internal view returns (address adm) {
    bytes32 slot = ADMIN_SLOT;
    assembly {
      adm := sload(slot)
    }
  }

  /**
   * @dev Sets the address of the proxy admin.
   * @param newAdmin Address of the new proxy admin.
   */
  function _setAdmin(address newAdmin) internal {
    bytes32 slot = ADMIN_SLOT;

    assembly {
      sstore(slot, newAdmin)
    }
  }

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

File 2 of 4 : UpgradeabilityProxy.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.6.0;

import './Proxy.sol';
import '@openzeppelin/contracts/utils/Address.sol';

/**
 * @title UpgradeabilityProxy
 * @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 UpgradeabilityProxy is Proxy {
  /**
   * @dev Contract constructor.
   * @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.
   */
  constructor(address _logic, bytes memory _data) public payable {
    assert(IMPLEMENTATION_SLOT == bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1));
    _setImplementation(_logic);
    if(_data.length > 0) {
      (bool success,) = _logic.delegatecall(_data);
      require(success);
    }
  }  

  /**
   * @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 override view returns (address impl) {
    bytes32 slot = IMPLEMENTATION_SLOT;
    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;

    assembly {
      sstore(slot, newImplementation)
    }
  }
}

File 3 of 4 : Proxy.sol
// SPDX-License-Identifier: MIT

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 () payable external {
    _fallback();
  }

  /**
   * @dev Receive function.
   * Implemented entirely in `_fallback`.
   */
  receive () payable external {
    _fallback();
  }

  /**
   * @return The Address of the implementation.
   */
  function _implementation() internal virtual view 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 {
    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 4 : Address.sol
// SPDX-License-Identifier: MIT

pragma solidity >=0.6.2 <0.8.0;

/**
 * @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) {
        // This method relies on extcodesize, which returns 0 for contracts in
        // construction, since the code is only stored at the end of the
        // constructor execution.

        uint256 size;
        // solhint-disable-next-line no-inline-assembly
        assembly { size := extcodesize(account) }
        return size > 0;
    }

    /**
     * @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");
    }

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain`call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
     * `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: value }(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "evmVersion": "istanbul",
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "metadata": {
    "useLiteralContent": true
  },
  "libraries": {}
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"address","name":"_admin","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"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":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"changeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","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"},{"stateMutability":"payable","type":"receive"}]

60806040526040516108d23803806108d28339818101604052606081101561002657600080fd5b8151602083015160408085018051915193959294830192918464010000000082111561005157600080fd5b90830190602082018581111561006657600080fd5b825164010000000081118282018810171561008057600080fd5b82525081516020918201929091019080838360005b838110156100ad578181015183820152602001610095565b50505050905090810190601f1680156100da5780820380516001836020036101000a031916815260200191505b50604052508491508290506100ee826101bf565b8051156101a6576000826001600160a01b0316826040518082805190602001908083835b602083106101315780518252601f199092019160209182019101610112565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610191576040519150601f19603f3d011682016040523d82523d6000602084013e610196565b606091505b50509050806101a457600080fd5b505b506101ae9050565b6101b782610231565b50505061025b565b6101d28161025560201b6103b41760201c565b61020d5760405162461bcd60e51b815260040180806020018281038252603b815260200180610897603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b3b151590565b61062d8061026a6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100985780635c60da1b146101185780638f28397014610149578063f851a4401461017c5761005d565b3661005d5761005b610191565b005b61005b610191565b34801561007157600080fd5b5061005b6004803603602081101561008857600080fd5b50356001600160a01b03166101ab565b61005b600480360360408110156100ae57600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100d957600080fd5b8201836020820111156100eb57600080fd5b8035906020019184600183028401116401000000008311171561010d57600080fd5b5090925090506101e5565b34801561012457600080fd5b5061012d610292565b604080516001600160a01b039092168252519081900360200190f35b34801561015557600080fd5b5061005b6004803603602081101561016c57600080fd5b50356001600160a01b03166102cf565b34801561018857600080fd5b5061012d610389565b6101996103ba565b6101a96101a461041a565b61043f565b565b6101b3610463565b6001600160a01b0316336001600160a01b031614156101da576101d581610488565b6101e2565b6101e2610191565b50565b6101ed610463565b6001600160a01b0316336001600160a01b031614156102855761020f83610488565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d806000811461026c576040519150601f19603f3d011682016040523d82523d6000602084013e610271565b606091505b505090508061027f57600080fd5b5061028d565b61028d610191565b505050565b600061029c610463565b6001600160a01b0316336001600160a01b031614156102c4576102bd61041a565b90506102cc565b6102cc610191565b90565b6102d7610463565b6001600160a01b0316336001600160a01b031614156101da576001600160a01b0381166103355760405162461bcd60e51b81526004018080602001828103825260368152602001806105876036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61035e610463565b604080516001600160a01b03928316815291841660208301528051918290030190a16101d5816104c8565b6000610393610463565b6001600160a01b0316336001600160a01b031614156102c4576102bd610463565b3b151590565b6103c2610463565b6001600160a01b0316336001600160a01b031614156104125760405162461bcd60e51b81526004018080602001828103825260328152602001806105556032913960400191505060405180910390fd5b6101a96101a9565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e80801561045e573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b610491816104ec565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b6104f5816103b4565b6105305760405162461bcd60e51b815260040180806020018281038252603b8152602001806105bd603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5556fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a2646970667358221220249c822daf23a4c4105d411560ffa6c4b3a5d68c227c3a6354de449e0b177f2264736f6c634300060c003343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373000000000000000000000000e7a1761a6ff4d021aabcc4c93f0c836ed14a34da000000000000000000000000ae6b8e2e08ebb230cbbd0498a8cf81fbbe068f74000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c44cd88b7600000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000442555344000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004425553440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
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.