Contract 0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d6 1

 
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x5b6e4f9af50368f58b9aa4b71ba929eabd04ef003dbdff4579a9894ecfc358a8Buy Token BNB144551032022-01-17 21:35:564 hrs 27 mins ago0x9e6d235064dc06c6bf554ae950ad4c9f620b1852 IN  0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60.015 BNB0.00091223
0x83fe5532580a364fba8fe7e66ce0a63cf3986f75f966c57f5f39c3382abefb09Buy Token BNB144505752022-01-17 17:47:568 hrs 15 mins ago0xf4eb0596e8218dff961f203e37eb1c96314289c7 IN  0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60.015 BNB0.00091235
0xaaae99911b137c61509c1ee05e2926b6d32a3ed57454da4b7e9101c8cfbb04bfWithdraw Func144488472022-01-17 16:20:329 hrs 42 mins ago0x41ed750530754676100a00b3b98cc29a0006b5b2 IN  0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60 BNB0.00014834
0xc266fd0d3e44c7a273ef2b2ab0636c82bc14d2e0e46d62a39d842bde25409169Withdraw Func144488402022-01-17 16:20:099 hrs 43 mins ago0x41ed750530754676100a00b3b98cc29a0006b5b2 IN  0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60 BNB0.00014834
0x7cd8c846af1a39844ea2f633d57a3634e445e697daf95a995333e0f8fb84a510Withdraw BNB144488272022-01-17 16:19:259 hrs 43 mins ago0x41ed750530754676100a00b3b98cc29a0006b5b2 IN  0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60 BNB0.000165945
0xb731d66fad541e80f2b5ddc13b246c786ae98343a0d3ae0fe368d0978d0e42b3Buy Token BNB144481722022-01-17 15:45:0310 hrs 18 mins ago0x8e5499fe76aee31fa6fb10d2f117ccc200f24531 IN  0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60.017 BNB0.00091217
0x7b030d6bd7e792061b875403dbcb0f95ba74a9836dfabe61639686dece782785Buy Token BNB144470422022-01-17 14:45:5311 hrs 17 mins ago0xefaa77415301d369060f12536231cd4d2e2fca5e IN  0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60.0004 BNB0.00083723
0x13d3c44a554dd217515a200a5f4de9c57331bde0438e2c512fb6a07ee35ddae3Buy Token BNB144426982022-01-17 11:06:1514 hrs 56 mins ago0x7797ee2dfbad42b5719d191a8aec58aab708ac9b IN  0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60.0005 BNB0.00064325
0xd0ea8276449cf5dd3ee1d7239ba66764fa800fa081bd5497a1916d50c63e9051Buy Token BNB144423732022-01-17 10:49:4915 hrs 13 mins ago0xcb1de7f9216c208339fd59fb051d95a2b89cbd7b IN  0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60.005 BNB0.00064337
0x42ed59c2d4eafab6c56d29923ac8b864e47e9c41212bd5c54f07cac06dd8fccaBuy Token BNB144419122022-01-17 10:26:4415 hrs 36 mins ago0xa51d93a82094976d9476d57a1bd0a365f415c098 IN  0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60.005 BNB0.00091223
0x01e2d59b7ec4591bdfc297d03edc5256f1f1212c1ea6f5111c76c67f3a11842aBuy Token BNB144418412022-01-17 10:23:1115 hrs 40 mins ago0x86fc05482afd0873ad75096609951b562c177e17 IN  0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60.0489 BNB0.00064337
0x295561c85f5b76c385edab4d683109d2cf88f35ca3280a0d6a1cef78dbf5dd7dBuy Token BNB144334652022-01-17 3:21:4722 hrs 41 mins ago0xfdd233e9df50df1b97ada7ba4a8f97011a27defe IN  0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60.01 BNB0.00091235
0x3b9eb8443cbd22e07e39d652bb402d4ec2a452cbe0cd61d7d9c13ebeaba8c8fdBuy Token BNB144271512022-01-16 22:03:431 day 3 hrs ago0xcb1de7f9216c208339fd59fb051d95a2b89cbd7b IN  0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60.01 BNB0.00064337
0x8296ff6db151073fbc9d2106cdd557743d1a93a555babb282af9e0d059b72f55Buy Token BNB144234632022-01-16 18:59:191 day 7 hrs ago0xf063043f514654962cc5247b9a03462bd1631899 IN  0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60.0005 BNB0.00091223
0xbe507610b676a9d6a877b92d7a8ea55e6b77d4b7888e8a7428726ad871e21008Buy Token BNB144223542022-01-16 18:03:521 day 7 hrs ago0x1690e8e513028669cb9049a79e7237f18bc5d1a7 IN  0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60.008 BNB0.00091235
0x881eb0b32cb771ea0f4768035089a07fb969faab6b8b0395d04018c656a22692Buy Token BNB144221492022-01-16 17:53:371 day 8 hrs ago0x3209a4eeedaaa541cd29917348f2c89dc0f73752 IN  0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60.009 BNB0.00091235
0xafbedf12fa2f265f380e6ffa37aefd7f9b20be6073e4691da50525b165ecfb07Buy Token BNB144205852022-01-16 16:34:231 day 9 hrs ago0xff6c8ac320c93812cce8282724765cf7ad9b5518 IN  0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60.004 BNB0.00091223
0x7fe9fd6c7e0e8e5584e81b36eee234a55f2a6f05385ad70a3e12da72f7e2f714Buy Token BNB144115122022-01-16 8:57:561 day 17 hrs ago0xccbc4b7af10495f42f83afd08c843819851d0009 IN  0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60.01 BNB0.00091229
0x65ac10febee06c8e4c510a326ef686a6b6a5f3d1dd2c8627d479d0b00fb570beBuy Token BNB144090582022-01-16 6:55:141 day 19 hrs ago0x6e71c27c7f5b7848c2bbefc851ba08eb1440ef87 IN  0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60.02019 BNB0.00091223
0x1e8dd6f17a018a3daba1af587a37a0ebb2379951a14600b75b6b3fe6a5957cd4Buy Token BNB144007922022-01-16 0:01:532 days 2 hrs ago0x53821d08eacf2846215be30ec358b6da4e757dde IN  0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60.00225 BNB0.00091223
0x792e4c6adc8980a5e21ec02a689367c85f17ff329995b88203e31190f894cdb1Buy Token BNB143985592022-01-15 22:08:112 days 3 hrs ago0xcb1de7f9216c208339fd59fb051d95a2b89cbd7b IN  0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60.001002002 BNB0.00064337
0xeaf4ef0718c956ae168cf7b700d29f0ece3584a6ba280053a1176325e15c9b73Buy Token BNB143983292022-01-15 21:56:412 days 4 hrs ago0xcb1de7f9216c208339fd59fb051d95a2b89cbd7b IN  0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60.004004 BNB0.00064337
0xc7d874da86536612eeb61bfbbd66ecc7d699019b1019af70666641733306c530Buy Token BNB143964242022-01-15 20:21:262 days 5 hrs ago0x0556fe08b36576af62c517a025dbe0c09230e2c6 IN  0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60.032 BNB0.00064325
0xa63bb7d552b066afb00dea7900d9a0694bc9e8ce5b5b9a34969aa39c0e7e8414Buy Token BNB143943882022-01-15 18:38:022 days 7 hrs ago0x0556fe08b36576af62c517a025dbe0c09230e2c6 IN  0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60.03485 BNB0.00091223
0xef66259eeead031af2fd319434e98967a1527e39f388cdae02f2c088b3527db6Buy Token BNB143863782022-01-15 11:56:432 days 14 hrs ago0x8d1619854f5161b0f74ff7bc9e410c825eac6d23 IN  0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60.005 BNB0.00091223
[ Download CSV Export 
Latest 14 internal transactions
Parent Txn Hash Block From To Value
0x7cd8c846af1a39844ea2f633d57a3634e445e697daf95a995333e0f8fb84a510144488272022-01-17 16:19:259 hrs 43 mins ago 0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60x1125b0b13e379e802dde58d1dea6017c8748eceb171.086278184023992025 BNB
0x49facb901b3eeffdccd0c781e7356cf4eba655ef4f240a2c6519dab6c4a87691131620922021-12-03 15:10:2845 days 10 hrs ago 0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60x41ed750530754676100a00b3b98cc29a0006b5b2147.455384631448798985 BNB
0x46dd64c84bcdb786db86e2d58d46861355f9199552c0e962308cb24f25b83ce0131153652021-12-01 23:09:4847 days 2 hrs ago 0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60x1125b0b13e379e802dde58d1dea6017c8748eceb404.954751144778134 BNB
0xa749875ac5823ca0121cde277a299d79ea817cc94d2da9d2fd669f50cc96e45d130757542021-11-30 11:51:5048 days 14 hrs ago 0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60x1125b0b13e379e802dde58d1dea6017c8748eceb151.295066571988080545 BNB
0x0e9cbec7a3d2808d34c83e8e72447efb39b4669cb8d8535f9b41c2a4d1f5cec0130583172021-11-29 20:13:4949 days 5 hrs ago 0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60x41ed750530754676100a00b3b98cc29a0006b5b295.2698288963002 BNB
0x9d976fb7005ecd5ce86bda71724490cfafbc08ddb0cbb7dfd9b7820f6b56d675130449822021-11-29 7:48:1049 days 18 hrs ago 0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60x1125b0b13e379e802dde58d1dea6017c8748eceb341.603829699675652372 BNB
0x51cd469b61ee0a5166bd8936b071c0ac6e896b1f3e6bba78ae9ff440d35395e4130069432021-11-27 21:39:2451 days 4 hrs ago 0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60x1125b0b13e379e802dde58d1dea6017c8748eceb158.025599086962921355 BNB
0x03d4123a3bbc6ddb9ab752d99271cd116d5e574125a4360bd8ce61f3c7810ce3129871862021-11-27 3:53:0151 days 22 hrs ago 0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60x1125b0b13e379e802dde58d1dea6017c8748eceb197.111946138023527564 BNB
0xd659b7b7478a22a87e8a5ed3ce9ca8a3f2af5691e5a40c8bc427508ddfc845c1129718672021-11-26 14:08:3752 days 11 hrs ago 0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60x1125b0b13e379e802dde58d1dea6017c8748eceb172.392236479978 BNB
0x272684a2b3c08e869896bc60fdb358767f92211b4181001e8d29b403df3164b9129655552021-11-26 8:18:2152 days 17 hrs ago 0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60x1125b0b13e379e802dde58d1dea6017c8748eceb201.891515942228 BNB
0x07d60c11a40735b793c219dd7999f1ee5b70dc310d72fbf7e1f887e30224849d128971532021-11-23 18:52:4055 days 7 hrs ago 0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60x41ed750530754676100a00b3b98cc29a0006b5b2534.929713642417595002 BNB
0x86305296103c1fc70d235c3bb20c72d3ff2cdba9c7f171224cdaadddf06ed472127174972021-11-17 7:24:4361 days 18 hrs ago 0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60x41ed750530754676100a00b3b98cc29a0006b5b2118.88942594307 BNB
0x73e6ec08bfe8b242f17acde00ac1f944fa43b84194ed8e6ef13875e44ab9863e126660562021-11-15 9:32:2763 days 16 hrs ago 0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60x41ed750530754676100a00b3b98cc29a0006b5b2123.4808919153434319 BNB
0xbc28af4b6f9fd1caacc9901b7481e45c384dff1d5647ad531ad5e891e21e6b15125830782021-11-12 10:00:4966 days 16 hrs ago 0xe5b91f158b5689c0de62c8d4f13a0b57fd95f6d60x41ed750530754676100a00b3b98cc29a0006b5b2147.296773389876 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MUFCSellTokenProxy

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 5 : MUFCSellTokenProxy.sol
pragma solidity 0.6.12;

import './libs/proxy/TransparentUpgradeableProxy.sol';

contract MUFCSellTokenProxy is TransparentUpgradeableProxy {
  constructor(
    address logic,
    address admin,
    bytes memory data
  ) public TransparentUpgradeableProxy(logic, admin, data) {}
}

File 2 of 5 : TransparentUpgradeableProxy.sol
// SPDX-License-Identifier: MIT

pragma solidity >=0.6.0 <0.8.0;

import "./UpgradeableProxy.sol";

/**
 * @dev This contract implements a proxy that is upgradeable by an admin.
 *
 * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector
 * clashing], which can potentially be used in an attack, this contract uses the
 * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two
 * things that go hand in hand:
 *
 * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if
 * that call matches one of the admin functions exposed by the proxy itself.
 * 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the
 * implementation. If the admin tries to call a function on the implementation it will fail with an error that says
 * "admin cannot fallback to proxy target".
 *
 * These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing
 * the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due
 * to sudden errors when trying to call a function from the proxy implementation.
 *
 * Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,
 * you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.
 */
contract TransparentUpgradeableProxy is UpgradeableProxy {
    /**
     * @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and
     * optionally initialized with `_data` as explained in {UpgradeableProxy-constructor}.
     */
    constructor(address _logic, address admin_, bytes memory _data) public payable UpgradeableProxy(_logic, _data) {
        assert(_ADMIN_SLOT == bytes32(uint256(keccak256("eip1967.proxy.admin")) - 1));
        _setAdmin(admin_);
    }

    /**
     * @dev Emitted when the admin account has changed.
     */
    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 private constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;

    /**
     * @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin.
     */
    modifier ifAdmin() {
        if (msg.sender == _admin()) {
            _;
        } else {
            _fallback();
        }
    }

    /**
     * @dev Returns the current admin.
     *
     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}.
     *
     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the
     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.
     * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`
     */
    function admin() external ifAdmin returns (address admin_) {
        admin_ = _admin();
    }

    /**
     * @dev Returns the current implementation.
     *
     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}.
     *
     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the
     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.
     * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`
     */
    function implementation() external ifAdmin returns (address implementation_) {
        implementation_ = _implementation();
    }

    /**
     * @dev Changes the admin of the proxy.
     *
     * Emits an {AdminChanged} event.
     *
     * NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}.
     */
    function changeAdmin(address newAdmin) external virtual ifAdmin {
        require(newAdmin != address(0), "TransparentUpgradeableProxy: new admin is the zero address");
        emit AdminChanged(_admin(), newAdmin);
        _setAdmin(newAdmin);
    }

    /**
     * @dev Upgrade the implementation of the proxy.
     *
     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}.
     */
    function upgradeTo(address newImplementation) external virtual ifAdmin {
        _upgradeTo(newImplementation);
    }

    /**
     * @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified
     * by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the
     * proxied contract.
     *
     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}.
     */
    function upgradeToAndCall(address newImplementation, bytes calldata data) external payable virtual ifAdmin {
        _upgradeTo(newImplementation);
        Address.functionDelegateCall(newImplementation, data);
    }

    /**
     * @dev Returns the current admin.
     */
    function _admin() internal view virtual returns (address adm) {
        bytes32 slot = _ADMIN_SLOT;
        // solhint-disable-next-line no-inline-assembly
        assembly {
            adm := sload(slot)
        }
    }

    /**
     * @dev Stores a new address in the EIP1967 admin slot.
     */
    function _setAdmin(address newAdmin) private {
        bytes32 slot = _ADMIN_SLOT;

        // solhint-disable-next-line no-inline-assembly
        assembly {
            sstore(slot, newAdmin)
        }
    }

    /**
     * @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}.
     */
    function _beforeFallback() internal virtual override {
        require(msg.sender != _admin(), "TransparentUpgradeableProxy: admin cannot fallback to proxy target");
        super._beforeFallback();
    }
}

File 3 of 5 : UpgradeableProxy.sol
// SPDX-License-Identifier: MIT

pragma solidity >=0.6.0 <0.8.0;

import "./Proxy.sol";
import "../utils/Address.sol";

/**
 * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an
 * implementation address that can be changed. This address is stored in storage in the location specified by
 * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the
 * implementation behind the proxy.
 *
 * Upgradeability is only provided internally through {_upgradeTo}. For an externally upgradeable proxy see
 * {TransparentUpgradeableProxy}.
 */
contract UpgradeableProxy is Proxy {
    /**
     * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.
     *
     * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded
     * function call, and allows initializating the storage of the proxy like a Solidity constructor.
     */
    constructor(address _logic, bytes memory _data) public payable {
        assert(_IMPLEMENTATION_SLOT == bytes32(uint256(keccak256("eip1967.proxy.implementation")) - 1));
        _setImplementation(_logic);
        if(_data.length > 0) {
            Address.functionDelegateCall(_logic, _data);
        }
    }

    /**
     * @dev Emitted when the implementation is upgraded.
     */
    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 private constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;

    /**
     * @dev Returns the current implementation address.
     */
    function _implementation() internal view virtual override returns (address impl) {
        bytes32 slot = _IMPLEMENTATION_SLOT;
        // solhint-disable-next-line no-inline-assembly
        assembly {
            impl := sload(slot)
        }
    }

    /**
     * @dev Upgrades the proxy to a new implementation.
     *
     * Emits an {Upgraded} event.
     */
    function _upgradeTo(address newImplementation) internal virtual {
        _setImplementation(newImplementation);
        emit Upgraded(newImplementation);
    }

    /**
     * @dev Stores a new address in the EIP1967 implementation slot.
     */
    function _setImplementation(address newImplementation) private {
        require(Address.isContract(newImplementation), "UpgradeableProxy: new implementation is not a contract");

        bytes32 slot = _IMPLEMENTATION_SLOT;

        // solhint-disable-next-line no-inline-assembly
        assembly {
            sstore(slot, newImplementation)
        }
    }
}

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

pragma solidity >=0.6.0 <0.8.0;

/**
 * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM
 * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to
 * be specified by overriding the virtual {_implementation} function.
 *
 * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a
 * different contract through the {_delegate} function.
 *
 * The success and return data of the delegated call will be returned back to the caller of the proxy.
 */
abstract contract Proxy {
    /**
     * @dev Delegates the current call to `implementation`.
     *
     * This function does not return to its internall call site, it will return directly to the external caller.
     */
    function _delegate(address implementation) internal virtual {
        // solhint-disable-next-line no-inline-assembly
        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 This is a virtual function that should be overriden so it returns the address to which the fallback function
     * and {_fallback} should delegate.
     */
    function _implementation() internal view virtual returns (address);

    /**
     * @dev Delegates the current call to the address returned by `_implementation()`.
     *
     * This function does not return to its internall call site, it will return directly to the external caller.
     */
    function _fallback() internal virtual {
        _beforeFallback();
        _delegate(_implementation());
    }

    /**
     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other
     * function in the contract matches the call data.
     */
    fallback () external payable virtual {
        _fallback();
    }

    /**
     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data
     * is empty.
     */
    receive () external payable virtual {
        _fallback();
    }

    /**
     * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`
     * call, or as part of the Solidity `fallback` or `receive` functions.
     *
     * If overriden should call `super._beforeFallback()`.
     */
    function _beforeFallback() internal virtual {
    }
}

File 5 of 5 : 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"
      ]
    }
  },
  "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":"nonpayable","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":"admin_","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":"implementation_","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"}]

60806040523480156200001157600080fd5b5060405162000c9238038062000c92833981810160405260608110156200003757600080fd5b815160208301516040808501805191519395929483019291846401000000008211156200006357600080fd5b9083019060208201858111156200007957600080fd5b82516401000000008111828201881017156200009457600080fd5b82525081516020918201929091019080838360005b83811015620000c3578181015183820152602001620000a9565b50505050905090810190601f168015620000f15780820380516001836020036101000a031916815260200191505b50604052508491508390508282816200010a826200014b565b8051156200012b57620001298282620001c260201b620003841760201c565b505b50620001349050565b6200013f82620001f1565b505050505050620003d3565b62000161816200021560201b620003b01760201c565b6200019e5760405162461bcd60e51b815260040180806020018281038252603681526020018062000c366036913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b6060620001ea838360405180606001604052806027815260200162000c0f602791396200021b565b9392505050565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b3b151590565b6060620002288462000215565b620002655760405162461bcd60e51b815260040180806020018281038252602681526020018062000c6c6026913960400191505060405180910390fd5b60006060856001600160a01b0316856040518082805190602001908083835b60208310620002a55780518252601f19909201916020918201910162000284565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d806000811462000307576040519150601f19603f3d011682016040523d82523d6000602084013e6200030c565b606091505b5090925090506200031f82828662000329565b9695505050505050565b606083156200033a575081620001ea565b8251156200034b5782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620003975781810151838201526020016200037d565b50505050905090810190601f168015620003c55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b61082c80620003e36000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100985780635c60da1b146101185780638f28397014610149578063f851a4401461017c5761005d565b3661005d5761005b610191565b005b61005b610191565b34801561007157600080fd5b5061005b6004803603602081101561008857600080fd5b50356001600160a01b03166101ab565b61005b600480360360408110156100ae57600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100d957600080fd5b8201836020820111156100eb57600080fd5b8035906020019184600183028401116401000000008311171561010d57600080fd5b5090925090506101e5565b34801561012457600080fd5b5061012d610262565b604080516001600160a01b039092168252519081900360200190f35b34801561015557600080fd5b5061005b6004803603602081101561016c57600080fd5b50356001600160a01b031661029f565b34801561018857600080fd5b5061012d610359565b6101996103b6565b6101a96101a4610416565b61043b565b565b6101b361045f565b6001600160a01b0316336001600160a01b031614156101da576101d581610484565b6101e2565b6101e2610191565b50565b6101ed61045f565b6001600160a01b0316336001600160a01b031614156102555761020f83610484565b61024f8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061038492505050565b5061025d565b61025d610191565b505050565b600061026c61045f565b6001600160a01b0316336001600160a01b031614156102945761028d610416565b905061029c565b61029c610191565b90565b6102a761045f565b6001600160a01b0316336001600160a01b031614156101da576001600160a01b0381166103055760405162461bcd60e51b815260040180806020018281038252603a8152602001806106f8603a913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61032e61045f565b604080516001600160a01b03928316815291841660208301528051918290030190a16101d5816104c4565b600061036361045f565b6001600160a01b0316336001600160a01b031614156102945761028d61045f565b60606103a98383604051806060016040528060278152602001610732602791396104e8565b9392505050565b3b151590565b6103be61045f565b6001600160a01b0316336001600160a01b0316141561040e5760405162461bcd60e51b81526004018080602001828103825260428152602001806107b56042913960600191505060405180910390fd5b6101a96101a9565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e80801561045a573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b61048d816105eb565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b60606104f3846103b0565b61052e5760405162461bcd60e51b815260040180806020018281038252602681526020018061078f6026913960400191505060405180910390fd5b60006060856001600160a01b0316856040518082805190602001908083835b6020831061056c5780518252601f19909201916020918201910161054d565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146105cc576040519150601f19603f3d011682016040523d82523d6000602084013e6105d1565b606091505b50915091506105e1828286610653565b9695505050505050565b6105f4816103b0565b61062f5760405162461bcd60e51b81526004018080602001828103825260368152602001806107596036913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b606083156106625750816103a9565b8251156106725782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106bc5781810151838201526020016106a4565b50505050905090810190601f1680156106e95780820380516001836020036101000a031916815260200191505b509250505060405180910390fdfe5472616e73706172656e745570677261646561626c6550726f78793a206e65772061646d696e20697320746865207a65726f2061646472657373416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65645570677261646561626c6550726f78793a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e74726163745472616e73706172656e745570677261646561626c6550726f78793a2061646d696e2063616e6e6f742066616c6c6261636b20746f2070726f787920746172676574a2646970667358221220268dc0ffed3e3f16a721013b932a06f0ce95e262300891a755d11aba4836660064736f6c634300060c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65645570677261646561626c6550726f78793a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374000000000000000000000000be2d189a5173dbd8446777786d3dc50e75ba1eed000000000000000000000000b7fbdbac9b23c0337832bf5de6b8b7d89a761b6d00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044485cc95500000000000000000000000041ed750530754676100a00b3b98cc29a0006b5b2000000000000000000000000387c1c2c9cd90babc3a05d08589858d3732a659a00000000000000000000000000000000000000000000000000000000

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

000000000000000000000000be2d189a5173dbd8446777786d3dc50e75ba1eed000000000000000000000000b7fbdbac9b23c0337832bf5de6b8b7d89a761b6d00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044485cc95500000000000000000000000041ed750530754676100a00b3b98cc29a0006b5b2000000000000000000000000387c1c2c9cd90babc3a05d08589858d3732a659a00000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : logic (address): 0xbe2d189a5173dbd8446777786d3dc50e75ba1eed
Arg [1] : admin (address): 0xb7fbdbac9b23c0337832bf5de6b8b7d89a761b6d
Arg [2] : data (bytes): 0x485cc95500000000000000000000000041ed750530754676100a00b3b98cc29a0006b5b2000000000000000000000000387c1c2c9cd90babc3a05d08589858d3732a659a

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 000000000000000000000000be2d189a5173dbd8446777786d3dc50e75ba1eed
Arg [1] : 000000000000000000000000b7fbdbac9b23c0337832bf5de6b8b7d89a761b6d
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000044
Arg [4] : 485cc95500000000000000000000000041ed750530754676100a00b3b98cc29a
Arg [5] : 0006b5b2000000000000000000000000387c1c2c9cd90babc3a05d08589858d3
Arg [6] : 732a659a00000000000000000000000000000000000000000000000000000000


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.