Contract 0xf84e3809971798bd372aecdc03ae977759a619ab 1

 

Contract Overview

Balance:
0.170603525118952024 BNB

BNB Value:
$77.56 (@ $454.61/BNB)

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x571c91643b9d26824a33abd2d95a212bba037e2604bafed27ed5374fcc97ef9eGet Reward117562052021-10-14 5:07:0413 days 16 hrs ago0x4089d38a96a7bb71c42ac30a7c416bda6d3476f1 IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00059422
0xe9e68a4dcddfc1d2344d775d7a31ecd302a2305a3d9f7eef428283f2b6e51b15Transfer110011742021-09-17 19:17:5240 days 2 hrs ago0xda255ca3ce1bae7a34f63bdfd1d572d05265a212 IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00012317
0xd7db1110c3ca3073244b9d0d36298ad15c4dc896f96d6d0aa016d7945bbc4c46Transfer110010972021-09-17 19:14:0140 days 2 hrs ago0xda255ca3ce1bae7a34f63bdfd1d572d05265a212 IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00012317
0x51dd17ed3ae27c39f7d990ac4f8be1603a4aeb726157387717d173ecee98119fTransfer110005672021-09-17 18:47:3140 days 3 hrs ago0xda255ca3ce1bae7a34f63bdfd1d572d05265a212 IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00012317
0xa7cfcedac0643da830cf8cb88f1d8cda93e50a4b738c4da4f67d32067ba71ef9Transfer Ownersh...109349512021-09-15 12:02:0742 days 9 hrs agoPancake Bunny: Deployer IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.000236621
0xe031f3f3eacc6374222ddf5848559caafd85c0e1336a52d59ed34cdfc5913c5eGet Reward103948672021-08-27 13:02:1961 days 8 hrs ago0x859c91c2f9ea5fe208c8883a8e31b462f13b59e7 IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00059422
0xce37602c7f60340c1e29b59597b3106f2165cd39865409c79ac63b7e72209915Get Reward103945522021-08-27 12:35:4261 days 9 hrs ago0x859c91c2f9ea5fe208c8883a8e31b462f13b59e7 IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00059422
0x9b86256aa5264d1e5cde9db0850b4890b16a31d0233ce4277a9fc3d5fd4d4824Get Reward103642012021-08-26 11:16:3962 days 10 hrs ago0x9f145f6d27539e4cab78f421d2f69bd0839f6d0c IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.000653642
0x04700303f65149f9c3f91103163749f8c2da2e31955b8c3650ad379882d2c8b7Get Reward102937642021-08-24 0:20:0564 days 21 hrs ago0x87493ed0ba9513c707b2708968fcb540f85b4428 IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00059422
0x865e68cd395dee50b80d8b9b2bd973c11078a9b89f4da9400ffa6edbc1b50287Get Reward102851352021-08-23 17:05:3665 days 4 hrs ago0xeed44ce0ab425e62880dc4fc7fbf761367727a12 IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00059422
0xf4b76fdd7ae9cd49b12e6506821042cdae1b1c5a6d5b1752f8234470cfde2bafGet Reward102838832021-08-23 16:02:3265 days 5 hrs ago0x54c105603a9365ec2444a1f055dcd394260b6423 IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00059422
0x59377fdf4ea99a7af41017f4baad638cf55d789d47761f73a9cdd508e66230c6Get Reward102831332021-08-23 15:24:0065 days 6 hrs ago0xfa554a217d3fe2f014260fdc3dc2ded6f23e7279 IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00059422
0xf31b649f2645cbbc6a1ca9f1d692cdd2df2628b32a134916532cbae0fbfb9dfeGet Reward102613082021-08-22 21:06:3966 days 54 mins ago0x387f8b984717626c893cdc84cf3b1c580abf510d IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00059422
0x083d75d545f830bdab5d2332cdd7ff6bc3bedc4ec7b01d99128600d91670fe2cGet Reward102556992021-08-22 16:25:5866 days 5 hrs ago0x07b8644b93cbd741cccae6c3ccbe4026fa58ae97 IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00059422
0x8d5b3fdedbc89752f99ceb024e26980d69368cd7b992a3044d420ed81fa81c7dGet Reward102248142021-08-21 14:33:5367 days 7 hrs ago0x2b2d7b6082e6bc46768252c36683623d7e338fd3 IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00059422
0x71eedd182fffa5e07cefde598ba02afc1646d3eb825aab12aa7c4894a9825930Get Reward102241462021-08-21 13:59:4567 days 8 hrs ago0x31c35e8d1338ce9ba437eff62b9fb84c44eae7d2 IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00059422
0x2892285033531f1b1bece0a5cac55a1187b1416b606e0d1bb3e9b1ccec494d42Get Reward101983002021-08-20 16:16:2168 days 5 hrs ago0x67aeca18f955f5b6e04db61c6ab1e2fdaaa50ba1 IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00059422
0x0d901b72a9533ad2b1242e528b5fc97490e1e0396ea7948bf4ca2fd7bc30a156Get Reward101965912021-08-20 14:48:2668 days 7 hrs ago0x83e12ddd67066f6830f5ccf7930ebf8fb3b5713e IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00059422
0xfa910ffeddfbf2fbc0a8ae2a625bc7bdff3f6d0de1b8a1ac809ccf88236cc6c7Get Reward101944662021-08-20 12:59:5568 days 9 hrs ago0xd863a9e70588d40d019f4b6c01fbf938fda8ce29 IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00059422
0x021aaa2a1e3371ade1201b6e09aba47279623443e3e1c9bdf2a5dfc32f37ce25Get Reward101943582021-08-20 12:54:3168 days 9 hrs ago0x05309cc848af4fa1f69418cf2c1c1a4e05e83744 IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00059422
0x3839109b67c0c4894eb1aeef0870b8ac679997ebff8007480d3ad44efa4185a5Get Reward101851252021-08-20 5:10:2068 days 16 hrs ago0x17f78f6816537ea58a6584817b4b19637b7736e8 IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00059422
0xa0492cd9ebd53855607dee45d07bfe3f2ed2aa8dbed4a14a288e862fd67ff7aeGet Reward101795152021-08-20 0:29:0968 days 21 hrs ago0x93f49eb186525c01c4829d5df04e60ad284b9a5f IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00059422
0xfff5ec3a85375a80c94ee386ca0487ddc6f48730652e574b0b938da039c8ec1aGet Reward101780742021-08-19 23:17:0668 days 22 hrs ago0x53e05108450d83809d6ce112b031249b82fcfe1a IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00059422
0xdf3c31117d7d8adda162e6f2606b547e1797fca872f6ce1a490c6bbc1fe9a6baGet Reward101767452021-08-19 22:10:3968 days 23 hrs ago0x2cf700c87040b3cd5beaacc358bbd141d6ec5bd0 IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00059422
0xfa849bde468158ee326373851f1718cd71917025f242bc31e38f215cefb32b1aGet Reward101752712021-08-19 20:56:5769 days 1 hr ago0x2bfb8b90be493b0f4a8693fe2fefbcb7f6a1b631 IN  0xf84e3809971798bd372aecdc03ae977759a619ab0 BNB0.00059422
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x60b2ab1265455b8116a9990a03c09a7bcd1b69752fb41e4791afcc00a8647742101578642021-08-19 6:14:5669 days 15 hrs ago 0xf84e3809971798bd372aecdc03ae977759a619ab0xa181a3c3460ad5a2650f380352e3e68111e3d60e0.000023042538087155 BNB
0x60b2ab1265455b8116a9990a03c09a7bcd1b69752fb41e4791afcc00a8647742101578642021-08-19 6:14:5669 days 15 hrs ago 0xf84e3809971798bd372aecdc03ae977759a619ab0x6e5e4bd6e553204e3c225a2cc2f5b976971c5f660.106058714599501843 BNB
0x60b2ab1265455b8116a9990a03c09a7bcd1b69752fb41e4791afcc00a8647742101578642021-08-19 6:14:5669 days 15 hrs ago 0xf84e3809971798bd372aecdc03ae977759a619ab0x36de6d01ab563d3e0fd7661c75dce8202aa826490.00321931926419871 BNB
0x60b2ab1265455b8116a9990a03c09a7bcd1b69752fb41e4791afcc00a8647742101578642021-08-19 6:14:5669 days 15 hrs ago 0xf84e3809971798bd372aecdc03ae977759a619ab0x53c91f33e4da805d04dce861c536fa1674e7334d0.003113904278192567 BNB
0x60b2ab1265455b8116a9990a03c09a7bcd1b69752fb41e4791afcc00a8647742101578642021-08-19 6:14:5669 days 15 hrs ago 0xf84e3809971798bd372aecdc03ae977759a619ab0x6d106d9d7d2c6eea879a89d49632542af20391450.001197876382975553 BNB
0x60b2ab1265455b8116a9990a03c09a7bcd1b69752fb41e4791afcc00a8647742101578642021-08-19 6:14:5669 days 15 hrs ago 0xf84e3809971798bd372aecdc03ae977759a619ab0x335750387f02fd6c0de18bb8783c3b6ef2084bfa0.000754211351523732 BNB
0x60b2ab1265455b8116a9990a03c09a7bcd1b69752fb41e4791afcc00a8647742101578642021-08-19 6:14:5669 days 15 hrs ago 0xf84e3809971798bd372aecdc03ae977759a619ab0x1dcdc7e28470490ccdf5e19d391a715271f473170.011872730194708862 BNB
0x60b2ab1265455b8116a9990a03c09a7bcd1b69752fb41e4791afcc00a8647742101578642021-08-19 6:14:5669 days 15 hrs ago 0xf84e3809971798bd372aecdc03ae977759a619ab0x73165a7bf621f466c63f6a0c8f08e969772c2a6d0.000006475345391881 BNB
0x60b2ab1265455b8116a9990a03c09a7bcd1b69752fb41e4791afcc00a8647742101578642021-08-19 6:14:5669 days 15 hrs ago 0xf84e3809971798bd372aecdc03ae977759a619ab0xe11fce83cc576fa581da18c3bf8b3f2a95601fda0.000118333794551125 BNB
0x60b2ab1265455b8116a9990a03c09a7bcd1b69752fb41e4791afcc00a8647742101578642021-08-19 6:14:5669 days 15 hrs ago 0xf84e3809971798bd372aecdc03ae977759a619ab0x023b76d9037dc979ebeac1f19abc6df0c0d46d5d0.00000609593676419 BNB
0x60b2ab1265455b8116a9990a03c09a7bcd1b69752fb41e4791afcc00a8647742101578642021-08-19 6:14:5669 days 15 hrs ago 0xf84e3809971798bd372aecdc03ae977759a619ab0x92d20928eeff838a54396d7b8821926dd8a6e0100.020630574290540418 BNB
0x60b2ab1265455b8116a9990a03c09a7bcd1b69752fb41e4791afcc00a8647742101578642021-08-19 6:14:5669 days 15 hrs ago 0xf84e3809971798bd372aecdc03ae977759a619ab0x8474a0b51a8e9e77ab9446228554853a8e2906350.000018573077138732 BNB
0x60b2ab1265455b8116a9990a03c09a7bcd1b69752fb41e4791afcc00a8647742101578642021-08-19 6:14:5669 days 15 hrs ago 0xf84e3809971798bd372aecdc03ae977759a619ab0xad1bdd9ba06104e36453e864405a07e4c0be633c0.000190066087449281 BNB
0x60b2ab1265455b8116a9990a03c09a7bcd1b69752fb41e4791afcc00a8647742101578642021-08-19 6:14:5669 days 15 hrs ago 0xf84e3809971798bd372aecdc03ae977759a619ab0x87fc1313880d579039ac48db8b25428ed5f33c4a0.000231739830416224 BNB
0x60b2ab1265455b8116a9990a03c09a7bcd1b69752fb41e4791afcc00a8647742101578642021-08-19 6:14:5669 days 15 hrs ago 0xf84e3809971798bd372aecdc03ae977759a619ab0x949666ee5d1be779801e4a02e90f1a2d9cb1835b0.000026237004269907 BNB
0x60b2ab1265455b8116a9990a03c09a7bcd1b69752fb41e4791afcc00a8647742101578642021-08-19 6:14:5669 days 15 hrs ago 0xf84e3809971798bd372aecdc03ae977759a619ab0xa4f6ef2d42b4dff5c60b810b8ec897cd5e5f457e0.001203219915585552 BNB
0x60b2ab1265455b8116a9990a03c09a7bcd1b69752fb41e4791afcc00a8647742101578642021-08-19 6:14:5669 days 15 hrs ago 0xf84e3809971798bd372aecdc03ae977759a619ab0xa57a9bc0d49d9144b698d29f34eb2c489614263f0.000634064566769533 BNB
0x60b2ab1265455b8116a9990a03c09a7bcd1b69752fb41e4791afcc00a8647742101578642021-08-19 6:14:5669 days 15 hrs ago 0xf84e3809971798bd372aecdc03ae977759a619ab0xf29811acd1534d02688cc9e474ca78dbef37bd350.001845938823974004 BNB
0x60b2ab1265455b8116a9990a03c09a7bcd1b69752fb41e4791afcc00a8647742101578642021-08-19 6:14:5669 days 15 hrs ago 0xf84e3809971798bd372aecdc03ae977759a619ab0x6f9ac5b3fa4308620c6763d9aa5a65446e75f5b50.012160187516093503 BNB
0x60b2ab1265455b8116a9990a03c09a7bcd1b69752fb41e4791afcc00a8647742101578642021-08-19 6:14:5669 days 15 hrs ago 0xf84e3809971798bd372aecdc03ae977759a619ab0xed390a0460140d356411b2b3d04fd22561c0e3f50.003223654032200134 BNB
0x60b2ab1265455b8116a9990a03c09a7bcd1b69752fb41e4791afcc00a8647742101578642021-08-19 6:14:5669 days 15 hrs ago 0xf84e3809971798bd372aecdc03ae977759a619ab0xc13456a34305e9265e907f70f76b1ba6e2055c8b0.000276741572468583 BNB
0x60b2ab1265455b8116a9990a03c09a7bcd1b69752fb41e4791afcc00a8647742101578642021-08-19 6:14:5669 days 15 hrs ago 0xf84e3809971798bd372aecdc03ae977759a619ab0x5e3c56ac26495781efd8892cf9a9c9ba62e4f28d0.000041896366482587 BNB
0x01a2d7e526e998c436eb7756c331073446cf7e1998274a85fa7b1af9abbd9bd9101578602021-08-19 6:14:4469 days 15 hrs ago 0xf84e3809971798bd372aecdc03ae977759a619ab0x085f6968857291a29b37cad3ec8ff33f1fe761020.000018204943974536 BNB
0x01a2d7e526e998c436eb7756c331073446cf7e1998274a85fa7b1af9abbd9bd9101578602021-08-19 6:14:4469 days 15 hrs ago 0xf84e3809971798bd372aecdc03ae977759a619ab0x6efac6d913bf15a02794b3016412c6c8b3997ab30.000003234876419367 BNB
0x01a2d7e526e998c436eb7756c331073446cf7e1998274a85fa7b1af9abbd9bd9101578602021-08-19 6:14:4469 days 15 hrs ago 0xf84e3809971798bd372aecdc03ae977759a619ab0x69d54dd13ada99a9842dce6eb172e8719e32c8480.000103450741272353 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 Security Audit

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.