Contract 0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf

 
 
Txn Hash
Block
From
To
Value [Txn Fee]
0x880e52433889ff2bd578abfa01b06c14eb2b27701dd7a5c489d886d866a9fbf397238822021-08-03 21:39:408 mins ago0x8ac9fb2c03236de283c4d0168c7e316808e18ffd IN  0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf0 BNB0.0002355384
0x131cce21a2b73691670cb7b9919e92459132fc98c97501c46029a9880246e0eb97072862021-08-03 7:13:0014 hrs 35 mins ago0x04a0e98138060f430f5398b845db6e51ea034127 IN  0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf0 BNB0.000323288
0x7fba827668dbaf48beb09e64791c90145c7394c0a1d254dc4594d6c3af6c18c597045282021-08-03 4:30:4417 hrs 17 mins ago0x8dcddb5d9b083d27e6696bb3e787ec5deb6956d2 IN  0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf0 BNB0.00390771
0x5b053c2eefecf3a26d5433b19c97f8bfc102426e56b53d60f8a838525e17f8bd97031932021-08-03 3:11:1318 hrs 37 mins ago0x04a0e98138060f430f5398b845db6e51ea034127 IN  0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf0 BNB0.001638756
0x571429657060cbfb8c8d09c15871832dca8ce7712102ed92446f1254c0dd3ce597019752021-08-03 2:05:5219 hrs 42 mins ago0xd5937d7ead542be8189fcc404970068adb9495ae IN  0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf0 BNB0.00015592
0x3a7fa4353794a0945c6535045e03fa772e96a2203c8619684be984b0b886060397019662021-08-03 2:05:2519 hrs 43 mins ago0xd5937d7ead542be8189fcc404970068adb9495ae IN  0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf0 BNB0.00383253
0x854d51d06d7af04ffa369683e4817b11507f3eba2194b7c75bb561a53003050c97012922021-08-03 1:30:3720 hrs 17 mins ago0x1bd8d5cdef8b2c50269877061e36898db5076a09 IN  0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf0 BNB0.00133773
0x1fb57695eb7654d5a6409c02623d2e60cc0466d2dcc191f4bd2ab8c9b114290196991472021-08-02 23:40:3022 hrs 8 mins ago0xdd9278abd926048fe1b5aa38e602ab1a08e4080d IN  0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf0 BNB0.00133767
0xa4521ac4f336630e655f85274c44c057af7108d967a52bf1dc963855dd89abbe96950652021-08-02 20:14:281 day 1 hr ago0xe624e08a3b0447f05d72a67eeb843ccd20cf3cc4 IN  0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf0 BNB0.0015172
0xd63c0554f087e6134b838809d1413aecea600aad21bd297fb641ee6d58a05de696854402021-08-02 11:52:501 day 9 hrs ago0xc589098735790a17f1930ba6884bf2b7bf2ee34a IN  0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf0 BNB0.00390765
0x51976fe3d25c396e2bd0acbe5e57963a15e7f636ca368b28524d2c36193e008896854282021-08-02 11:52:141 day 9 hrs ago0xc589098735790a17f1930ba6884bf2b7bf2ee34a IN  0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf0 BNB0.00023092
0x29b40590f91cbd7d60b623010089d5514ad21235ae4f17e26ab00e8b6fef5a4c96842812021-08-02 10:52:431 day 10 hrs ago0x58385ddc9c683ebbc64bf6ab3a232f6d1d1f55e7 IN  0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf0 BNB0.00023092
0x69e5e5853be9e42f23a643d5004495c5360d8de6e2f175c121e4ebb2a1df6e7596841112021-08-02 10:43:301 day 11 hrs ago0x58385ddc9c683ebbc64bf6ab3a232f6d1d1f55e7 IN  0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf0 BNB0.00138542
0x42030826e12bfc27648c9c011d139ca531d8ce7c69520c96554981502a5edcd696801892021-08-02 7:20:481 day 14 hrs ago0x0519bbb4631202145e543142ebabe2544ad9f906 IN  0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf0 BNB0.00015592
0xc7bf247371aa2ed85c2373977677b4343f40e716af556b79292e8c9a04e03a8596772532021-08-02 4:51:481 day 16 hrs ago0x300b8ec7c67fddce575c211d94ed38d8310165a8 IN  0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf0 BNB0.00141273
0xfbf21a5604e99f36f51bf309fb2d4049f31ca40ec79cd88d77ed2b9d80b1761196759812021-08-02 3:46:211 day 18 hrs ago0xda4882d1300ae78dc5211a1d5ae0c20cd32e7917 IN  0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf0 BNB0.00023092
0x965c42b3f59819d8faf70f82476df23ed0d202142dd25d36370ada8d9a9f686e96712322021-08-01 23:41:341 day 22 hrs ago0xf43107d05123a789ba6cf99e29dd33fe849e3c87 IN  0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf0 BNB0.00015592
0xc79436cfff527f37cd06c453f6469630e482d0c098ec48a7ba326766e63b70f096711042021-08-01 23:34:251 day 22 hrs ago0x9a5c4cb695761467e0eec52f24f6e76150210d11 IN  0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf0 BNB0.00124548
0xcf3e825c26857f42c01de624c1fb1705b61b9e1eb9a51bf0c7cf561779e864af96684422021-08-01 21:16:472 days 31 mins ago0x67f317504eba327c9e0aacb86137bdf83ab7a119 IN  0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf0 BNB0.00390771
0xfad52ea1d6284e326e5eced0a25bb41ee54f3fca08e3a3219bf30adc7490303f96674972021-08-01 20:28:492 days 1 hr ago0x1a66f730e4b4f4a83f94083efdf613ede186e73d IN  0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf0 BNB0.00383271
0xca9dda287a4394f537398f1096384bcba188e0109ce4fd39095c511ef1f4ac6d96633242021-08-01 16:57:112 days 4 hrs ago0x47c45b596a13c3ee04f0af95d84da86ece20052d IN  0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf0 BNB0.00383271
0x178c97a2c30e6c6fc56b93a7f581fe01b2e98b2e1bbd38c5d3b70c1f11998a3a96585482021-08-01 12:37:002 days 9 hrs ago0x422a94d7415fdb3af6d08da6e964c0c39e2701e6 IN  0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf0 BNB0.00124548
0xa610f983546bfde836f58a0afdbcfe3142c58156ad2b3464921e1c0a2f1eb23896581682021-08-01 12:17:042 days 9 hrs ago0x6117beaa741bd9b3388e912018bc9caf60eb9b33 IN  0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf0 BNB0.00015592
0x5933ef01ca04f7c3102ae7a2fe38c1c025450e0de26f6fd6eda5d866071e424a96559662021-08-01 10:23:332 days 11 hrs ago0x1bd8d5cdef8b2c50269877061e36898db5076a09 IN  0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf0 BNB0.00383271
0x9c0786f2951df5cd16b58aa88ae8bfb189dabfb7afe4d78d2561eef0fa71130b96494382021-08-01 4:49:442 days 16 hrs ago0xffbd6b4f4f304d01ad8c5aa973369903c5a14319 IN  0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf0 BNB0.00015592
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x7fba827668dbaf48beb09e64791c90145c7394c0a1d254dc4594d6c3af6c18c597045282021-08-03 4:30:4417 hrs 17 mins ago 0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf  Contract Creation0 BNB
0x3a7fa4353794a0945c6535045e03fa772e96a2203c8619684be984b0b886060397019662021-08-03 2:05:2519 hrs 43 mins ago 0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf  Contract Creation0 BNB
0xd63c0554f087e6134b838809d1413aecea600aad21bd297fb641ee6d58a05de696854402021-08-02 11:52:501 day 9 hrs ago 0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf  Contract Creation0 BNB
0xcf3e825c26857f42c01de624c1fb1705b61b9e1eb9a51bf0c7cf561779e864af96684422021-08-01 21:16:472 days 31 mins ago 0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf  Contract Creation0 BNB
0xfad52ea1d6284e326e5eced0a25bb41ee54f3fca08e3a3219bf30adc7490303f96674972021-08-01 20:28:492 days 1 hr ago 0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf  Contract Creation0 BNB
0xca9dda287a4394f537398f1096384bcba188e0109ce4fd39095c511ef1f4ac6d96633242021-08-01 16:57:112 days 4 hrs ago 0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf  Contract Creation0 BNB
0x5933ef01ca04f7c3102ae7a2fe38c1c025450e0de26f6fd6eda5d866071e424a96559662021-08-01 10:23:332 days 11 hrs ago 0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf  Contract Creation0 BNB
0x59455d31692c7543efc41b3b908da68678742895a6469bc50927f661675c41b796302922021-07-31 12:17:363 days 9 hrs ago 0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf  Contract Creation0 BNB
0x35ee01725729579e158543d4adee99de94c3ea0fcc152dc7a3e51bbe30191d3b96286802021-07-31 10:56:323 days 10 hrs ago 0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf  Contract Creation0 BNB
0x3e7ec2ed727133b44344105fde9eb8265477e9a200e0133df5819febd84d217b96257312021-07-31 8:25:103 days 13 hrs ago 0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf  Contract Creation0 BNB
0x1413a1f340e24b5f70bff4a041577d541902f1212e33f7a4b427c2e40a14ff3095974142021-07-30 8:28:134 days 13 hrs ago 0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf  Contract Creation0 BNB
0x1e24faa7c4318dd76668030bbac68120e5e8aa524990e2c9cb5a677783e133aa95972172021-07-30 8:18:224 days 13 hrs ago 0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf  Contract Creation0 BNB
0xb598804d42c5fd98ae4206db3da65d3374ab0ffce1bd5a0b8f5e0020cf1e610a95866852021-07-29 23:20:114 days 22 hrs ago 0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf  Contract Creation0 BNB
0xd557aa044d0e311ef8e007d040ef8de544a122cf972e16ede4ecf4794a17665495696612021-07-29 7:59:445 days 13 hrs ago 0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf  Contract Creation0 BNB
0x5ca4037176012533be85d1a86c165297afe21e5adfdb06078b4d1401353415ff95679792021-07-29 6:33:065 days 15 hrs ago 0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf  Contract Creation0 BNB
0x2611083b87781359c1203dc4bd12b65de3586c673c3bb5b77928f23e0722093595676822021-07-29 6:17:485 days 15 hrs ago 0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf  Contract Creation0 BNB
0x2f957edfdb6c83bc34a184579ee35be71c5542ab0ad2df67ef49f95edba2393c95554712021-07-28 19:48:136 days 2 hrs ago 0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf  Contract Creation0 BNB
0xda1a15284a50c8a1a3b9b4a7aa5ed0c80876f7f440a52e544d484ed1edf9970095431792021-07-28 8:18:456 days 13 hrs ago 0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf  Contract Creation0 BNB
0x520d7b06377e0ab16dc651cd292baf206ab2b5dde22eed109e717c20b5df026195431512021-07-28 8:17:206 days 13 hrs ago 0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf  Contract Creation0 BNB
0xe360ceee196625f6d47d771a0b8b1914b896a37b1264117dd0e288b2cdccae6695334432021-07-27 23:41:396 days 22 hrs ago 0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf  Contract Creation0 BNB
0x2f917274458bc39bc26c72522b81c67f5cb41a352c4152295596362749c6d24595246552021-07-27 15:22:507 days 6 hrs ago 0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf  Contract Creation0 BNB
0xab0dda4c251b0ece89bf05755c51627823d2b0da735a338ade5a029007aa8ca695174252021-07-27 8:43:387 days 13 hrs ago 0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf  Contract Creation0 BNB
0x4b4865acf1cdc06c263b01eaec913b548f880c5be4bd94d2e9de3f9ba375ce3495165852021-07-27 7:58:417 days 13 hrs ago 0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf  Contract Creation0 BNB
0x25edc118263245ffd33f112663e478a802de9c55bf5bc2a7f48ba0cbc47f2d4795047992021-07-26 22:00:327 days 23 hrs ago 0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf  Contract Creation0 BNB
0x68ee024f8371329b070d5cca8c2eb483412e423174fc637c9111b44b80acb85994992742021-07-26 17:17:058 days 4 hrs ago 0xc4c1e78b14fc7b4da7ae17328bc2e83f7ee9aadf  Contract Creation0 BNB
[ Download CSV Export 
Loading

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

Contract Name:
InitializableAdminUpgradeabilityProxy

Compiler Version
v0.7.5+commit.eb77ed08

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 7 : InitializableAdminUpgradeabilityProxy.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.7.5;

import './BaseAdminUpgradeabilityProxy.sol';
import './InitializableUpgradeabilityProxy.sol';

/**
 * @title InitializableAdminUpgradeabilityProxy
 * @dev From https://github.com/OpenZeppelin/openzeppelin-sdk/tree/solc-0.6/packages/lib/contracts/upgradeability
 * Extends from BaseAdminUpgradeabilityProxy with an initializer for
 * initializing the implementation, admin, and init data.
 */
contract InitializableAdminUpgradeabilityProxy is
  BaseAdminUpgradeabilityProxy,
  InitializableUpgradeabilityProxy
{
  /**
   * Contract initializer.
   * @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.
   */
  function initialize(
    address _logic,
    address _admin,
    bytes memory _data
  ) public payable {
    require(_implementation() == address(0));
    InitializableUpgradeabilityProxy.initialize(_logic, _data);
    assert(ADMIN_SLOT == bytes32(uint256(keccak256('eip1967.proxy.admin')) - 1));
    _setAdmin(_admin);
  }

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

File 2 of 7 : BaseAdminUpgradeabilityProxy.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.7.5;

import './UpgradeabilityProxy.sol';

/**
 * @title BaseAdminUpgradeabilityProxy
 * @dev From https://github.com/OpenZeppelin/openzeppelin-sdk/tree/solc-0.6/packages/lib/contracts/upgradeability
 * 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 BaseAdminUpgradeabilityProxy is BaseUpgradeabilityProxy {
  /**
   * @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)
    external
    payable
    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 virtual override {
    require(msg.sender != _admin(), 'Cannot call fallback function from the proxy admin');
    super._willFallback();
  }
}

File 3 of 7 : InitializableUpgradeabilityProxy.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.7.5;

import './BaseUpgradeabilityProxy.sol';

/**
 * @title InitializableUpgradeabilityProxy
 * @dev From https://github.com/OpenZeppelin/openzeppelin-sdk/tree/solc-0.6/packages/lib/contracts/upgradeability
 * 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 7 : UpgradeabilityProxy.sol
// SPDX-License-Identifier: agpl-3.0
pragma solidity 0.7.5;

import './BaseUpgradeabilityProxy.sol';

/**
 * @title UpgradeabilityProxy
 * @dev From https://github.com/OpenZeppelin/openzeppelin-sdk/tree/solc-0.6/packages/lib/contracts/upgradeability
 * Extends BaseUpgradeabilityProxy with a constructor for initializing
 * implementation and init data.
 */
contract UpgradeabilityProxy is BaseUpgradeabilityProxy {
  /**
   * @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);
    }
  }
}

File 5 of 7 : BaseUpgradeabilityProxy.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.7.5;

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

/**
 * @title BaseUpgradeabilityProxy
 * @dev From https://github.com/OpenZeppelin/openzeppelin-sdk/tree/solc-0.6/packages/lib/contracts/upgradeability
 * 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;
    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 6 of 7 : Proxy.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.7.5;

/**
 * @title Proxy
 * @dev From https://github.com/OpenZeppelin/openzeppelin-sdk/tree/solc-0.6/packages/lib/contracts/upgradeability
 * 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 {
    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 7 of 7 : Address.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.7.5;

/**
 * @dev Collection of functions related to the address type
 * From https://github.com/OpenZeppelin/openzeppelin-contracts
 */
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
  },
  "evmVersion": "istanbul",
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract ABI

[{"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":"_logic","type":"address"},{"internalType":"address","name":"_admin","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"payable","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"}]

608060405234801561001057600080fd5b50610905806100206000396000f3fe6080604052600436106100705760003560e01c80638f2839701161004e5780638f2839701461015e578063cf7a1d7714610191578063d1f5789414610250578063f851a4401461030657610070565b80633659cfe61461007a5780634f1ef286146100ad5780635c60da1b1461012d575b61007861031b565b005b34801561008657600080fd5b506100786004803603602081101561009d57600080fd5b50356001600160a01b0316610335565b610078600480360360408110156100c357600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100ee57600080fd5b82018360208201111561010057600080fd5b8035906020019184600183028401116401000000008311171561012257600080fd5b50909250905061036f565b34801561013957600080fd5b5061014261041c565b604080516001600160a01b039092168252519081900360200190f35b34801561016a57600080fd5b506100786004803603602081101561018157600080fd5b50356001600160a01b0316610459565b610078600480360360608110156101a757600080fd5b6001600160a01b0382358116926020810135909116918101906060810160408201356401000000008111156101db57600080fd5b8201836020820111156101ed57600080fd5b8035906020019184600183028401116401000000008311171561020f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610513945050505050565b6100786004803603604081101561026657600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561029157600080fd5b8201836020820111156102a357600080fd5b803590602001918460018302840111640100000000831117156102c557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610543945050505050565b34801561031257600080fd5b50610142610623565b61032361064e565b61033361032e610656565b61067b565b565b61033d61069f565b6001600160a01b0316336001600160a01b031614156103645761035f816106c4565b61036c565b61036c61031b565b50565b61037761069f565b6001600160a01b0316336001600160a01b0316141561040f57610399836106c4565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d80600081146103f6576040519150601f19603f3d011682016040523d82523d6000602084013e6103fb565b606091505b505090508061040957600080fd5b50610417565b61041761031b565b505050565b600061042661069f565b6001600160a01b0316336001600160a01b0316141561044e57610447610656565b9050610456565b61045661031b565b90565b61046161069f565b6001600160a01b0316336001600160a01b03161415610364576001600160a01b0381166104bf5760405162461bcd60e51b815260040180806020018281038252603681526020018061085f6036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104e861069f565b604080516001600160a01b03928316815291841660208301528051918290030190a161035f81610704565b600061051d610656565b6001600160a01b03161461053057600080fd5b61053a8382610543565b61041782610704565b600061054d610656565b6001600160a01b03161461056057600080fd5b61056982610728565b80511561061f576000826001600160a01b0316826040518082805190602001908083835b602083106105ac5780518252601f19909201916020918201910161058d565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d806000811461060c576040519150601f19603f3d011682016040523d82523d6000602084013e610611565b606091505b505090508061041757600080fd5b5050565b600061062d61069f565b6001600160a01b0316336001600160a01b0316141561044e5761044761069f565b610333610790565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e80801561069a573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6106cd81610728565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b610731816107f0565b61076c5760405162461bcd60e51b815260040180806020018281038252603b815260200180610895603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b61079861069f565b6001600160a01b0316336001600160a01b031614156107e85760405162461bcd60e51b815260040180806020018281038252603281526020018061082d6032913960400191505060405180910390fd5b610333610333565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061082457508115155b94935050505056fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a2646970667358221220b419f3d483ccaf851ac2bf3f926e4683f108a35602630e2efdb559e1f37494ed64736f6c63430007050033

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.