Contract 0x0E9766dF73973abCfEDDE700497c57110ee5c301

 

Contract Overview

Balance:
56.406196297103342965 BNB

BNB Value:
$33,211.40 (@ $588.79/BNB)

Token:
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x8eb5da8be22e42de9fdb971d8b16a837202ac8fe898a43f53e5b3e37f27b5609Redeem Rewards132679652021-12-07 9:12:5010 mins ago0x8e8c37bae20d2e6e364c7aeeb20d321e74469b0c IN  0x0e9766df73973abcfedde700497c57110ee5c3010 BNB0.00164281
0x17732596eebda7d764954d67669bf9755bb120b7336a43cf1f6d6aa882b13951Redeem Rewards132679042021-12-07 9:09:4713 mins ago0xfe9231675f993a6877830e26647c2afe61cbd8ae IN  0x0e9766df73973abcfedde700497c57110ee5c3010 BNB0.00164281
0x999d9acb89fd886f2db6be931f992a432871b78e42de69f339c1e62df006f6b8Redeem Rewards132674302021-12-07 8:46:0336 mins ago0x89df813236f4418082796197f837b2526137fb2b IN  0x0e9766df73973abcfedde700497c57110ee5c3010 BNB0.00164281
0x16ddb88bff6467ee474266614a46470655b834a6608f09246e6162d18b17cb52Redeem Rewards132671752021-12-07 8:33:1649 mins ago0x5e07e3cf7c867733c9681a19a5ca046ef99dfc6d IN  0x0e9766df73973abcfedde700497c57110ee5c3010 BNB0.00164281
0x7d19a20a7aced45d5653f44837064be3eeaeb58a8c04586dc9327fb29fd8579bRedeem Rewards132671422021-12-07 8:31:3751 mins ago0x3212599885c0b4aca6118f6f4f37ddeee8ef18fd IN  0x0e9766df73973abcfedde700497c57110ee5c3010 BNB0.001971528
0x20f5e00e4ccc9a74c8e3283e4d65955f4f2ccc86a0b503d8d7ff5700be09a071Redeem Rewards132669812021-12-07 8:22:461 hr ago0xf2519e6eb874518e93fe8f96a3be5c97a62bc207 IN  0x0e9766df73973abcfedde700497c57110ee5c3010 BNB0.00164281
0x34eaedbaf0b002bd9311916369af9814c041d0916e812e4084974edf0d4ef124Redeem Rewards132669182021-12-07 8:19:261 hr 3 mins ago0xde8dccac777881d88a374b63855cd80abd1efd70 IN  0x0e9766df73973abcfedde700497c57110ee5c3010 BNB0.00164281
0x3acb54e999ef25fdc3f3145ad3d6ada346f491595e87e02d75a0a01d5fd2ef1fRedeem Rewards132665432021-12-07 8:00:391 hr 22 mins ago0xeb8280c7c4382f95ab17bb49267f8dfa107e6db9 IN  0x0e9766df73973abcfedde700497c57110ee5c3010 BNB0.00164294
0x639536f47079122f91357e83363188518944c33f9646bb4d0efeff19d0e7e4bbApprove132665132021-12-07 7:59:091 hr 23 mins ago0x0d867c7f786261a7f5c6c59ce80908d47d2864e3 IN  0x0e9766df73973abcfedde700497c57110ee5c3010 BNB0.00023691
0x77d5eb5b2c47bab983094b7d1dbf501d897cfbdaac379682a75c6e889a277106Redeem Rewards132664522021-12-07 7:56:061 hr 26 mins ago0xd31adb751608d3d3fef588229124b5d9b8717be5 IN  0x0e9766df73973abcfedde700497c57110ee5c3010 BNB0.00164281
0xe5ae341101cb2987cdf91d5a307d14342dac96e6e67d3408951a64a439c28aa2Redeem Rewards132663272021-12-07 7:49:511 hr 33 mins ago0x9d96881b05d00add5d0f346492cb6757d26f0e39 IN  0x0e9766df73973abcfedde700497c57110ee5c3010 BNB0.00483155
0x5e3411aaf5e6d388bfe9ea1c172615a9c44d87cdffdf52db6eae8e40c9f532edRedeem Rewards132660772021-12-07 7:37:121 hr 45 mins ago0x0ed37292b43f8dc44d11630603c8a40655ac8dd4 IN  0x0e9766df73973abcfedde700497c57110ee5c3010 BNB0.00164281
0x3de7eba6a07ce2b2b5fc9657671959f668b5209b90c064aa803a282051662468Transfer132659842021-12-07 7:32:031 hr 50 mins ago0xa2d435706c78448a9d7522c1fa9acff39496eb81 IN  0x0e9766df73973abcfedde700497c57110ee5c3010 BNB0.006297895
0xfc22684166cd5250841d9c025e72880e13e48e4f3c0a12b3e0d3bf3a6c64673dRedeem Rewards132658132021-12-07 7:22:551 hr 59 mins ago0x8ae61e7bfe679b8907e5295425b4c950697347fc IN  0x0e9766df73973abcfedde700497c57110ee5c3010 BNB0.00487355
0xc97073a955c5aa9ef64f932fc49a1e1f18c122fd7967cfbbec6ce415b2652875Redeem Rewards132656592021-12-07 7:14:442 hrs 8 mins ago0x0a9d3e4df358d3e9adda6a9e35296030510ff92f IN  0x0e9766df73973abcfedde700497c57110ee5c3010 BNB0.00164281
0x7b657889de2a594e7825361e00978639ee436fb0962bd1b971e3d3d1b73d11c7Redeem Rewards132655492021-12-07 7:08:542 hrs 13 mins ago0xb8fe183b4b9c4f3a792f86ceefe72f46e58f843b IN  0x0e9766df73973abcfedde700497c57110ee5c3010 BNB0.00164294
0xeac9fdfd3f78c61bc6ca396220f302905d158205b3d1f5a17b43f1017bd40cf7Redeem Rewards132653152021-12-07 6:56:512 hrs 26 mins ago0x8e3a01caba38df2a1c4bff1dae26cf0a1d02e7c7 IN  0x0e9766df73973abcfedde700497c57110ee5c3010 BNB0.00164281
0xdbaf66282433bd3d918a1a1921b3883cd584374751e890ab92605682734f1c5bRedeem Rewards132648622021-12-07 6:33:532 hrs 48 mins ago0x7f13c1ea99ebf2534095ad5663e80308f6a7824f IN  0x0e9766df73973abcfedde700497c57110ee5c3010 BNB0.00164281
0x97137baa759afd1f7de229bd3095b1727471fd8f8e0b8bb9f1ba2be397755a33Approve132647132021-12-07 6:26:262 hrs 56 mins ago0x73df077bfcd36f08c7f7716b4b6b2505c1e2f87a IN  0x0e9766df73973abcfedde700497c57110ee5c3010 BNB0.00023691
0x485fe8b886f964b32cd899d0311bebb4f040a4228286b9efdad17838e87f83f5Approve132646462021-12-07 6:23:012 hrs 59 mins ago0x7663fb4d8649f098c3d2203ec5bdb23609de2bfa IN  0x0e9766df73973abcfedde700497c57110ee5c3010 BNB0.00023691
0x016640b497ee3d1bb461de105c744277255b9ba60c6b562cadf475636c4e163bRedeem Rewards132641502021-12-07 5:57:163 hrs 25 mins ago0x9060b2821ce59aa888cd3e90dc0efabd4a3b15f4 IN  0x0e9766df73973abcfedde700497c57110ee5c3010 BNB0.00164281
0x4a0db21556588ebc3acdd485dcc8c3da910f1f506a5d9cb63cd099210b49c95dApprove132640532021-12-07 5:52:253 hrs 30 mins ago0xcb00679d0844e392b9aeb89652ce6af6404ad867 IN  0x0e9766df73973abcfedde700497c57110ee5c3010 BNB0.00023691
0x7c6fcc0e68c6c441a46c458e2ca8517fbedda391dc526bfe3f5fcdbd255aae56Redeem Rewards132636372021-12-07 5:29:573 hrs 52 mins ago0xc9b8734f55397fc68bb4d4316db8ed9888776ea3 IN  0x0e9766df73973abcfedde700497c57110ee5c3010 BNB0.00164281
0x6cd1962425ec663f76c4e35e0d748d968fb625e3d24ade667b84a55f03e038c1Approve132632612021-12-07 5:10:444 hrs 12 mins ago0xf6cba3d70989cdebd4e50d9a51d523e00219d90b IN  0x0e9766df73973abcfedde700497c57110ee5c3010 BNB0.000331674
0x479d34f8a3ae704cd39a743105323f5dac990ff7b151bc5670720c5c58b301e8Redeem Rewards132631622021-12-07 5:05:474 hrs 17 mins ago0xc8d6b23e5ca2a856e78f14f6c5cd95db9c12745a IN  0x0e9766df73973abcfedde700497c57110ee5c3010 BNB0.00164281
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x9cd7dd1f589e6004cee6b9ea23a5bf62eb53bc1e2a932d40ea61ed0e398f55de132680652021-12-07 9:17:505 mins ago 0x0e9766df73973abcfedde700497c57110ee5c301 PancakeSwap: Router v20.014874049391648623 BNB
0x9cd7dd1f589e6004cee6b9ea23a5bf62eb53bc1e2a932d40ea61ed0e398f55de132680652021-12-07 9:17:505 mins ago 0x0e9766df73973abcfedde700497c57110ee5c301 0x0e9766df73973abcfedde700497c57110ee5c3010.003715910169922014 BNB
0x9cd7dd1f589e6004cee6b9ea23a5bf62eb53bc1e2a932d40ea61ed0e398f55de132680652021-12-07 9:17:505 mins ago 0x0e9766df73973abcfedde700497c57110ee5c3010x0a199377f5489a285c70f03326b6d4bf769c10d30.011147730509766043 BNB
0x9cd7dd1f589e6004cee6b9ea23a5bf62eb53bc1e2a932d40ea61ed0e398f55de132680652021-12-07 9:17:505 mins ago PancakeSwap: Router v2 0x0e9766df73973abcfedde700497c57110ee5c3010.10408711960565867 BNB
0x8eb5da8be22e42de9fdb971d8b16a837202ac8fe898a43f53e5b3e37f27b5609132679652021-12-07 9:12:5010 mins ago 0x0e9766df73973abcfedde700497c57110ee5c3010x8e8c37bae20d2e6e364c7aeeb20d321e74469b0c0.002770515291548607 BNB
0x17732596eebda7d764954d67669bf9755bb120b7336a43cf1f6d6aa882b13951132679042021-12-07 9:09:4713 mins ago 0x0e9766df73973abcfedde700497c57110ee5c3010xfe9231675f993a6877830e26647c2afe61cbd8ae0.059389274898350008 BNB
0x999d9acb89fd886f2db6be931f992a432871b78e42de69f339c1e62df006f6b8132674302021-12-07 8:46:0336 mins ago 0x0e9766df73973abcfedde700497c57110ee5c3010x89df813236f4418082796197f837b2526137fb2b0.008187676298178012 BNB
0x16ddb88bff6467ee474266614a46470655b834a6608f09246e6162d18b17cb52132671752021-12-07 8:33:1649 mins ago 0x0e9766df73973abcfedde700497c57110ee5c3010x5e07e3cf7c867733c9681a19a5ca046ef99dfc6d0.034455449033197808 BNB
0x7d19a20a7aced45d5653f44837064be3eeaeb58a8c04586dc9327fb29fd8579b132671422021-12-07 8:31:3751 mins ago 0x0e9766df73973abcfedde700497c57110ee5c3010x3212599885c0b4aca6118f6f4f37ddeee8ef18fd0.107834746837223719 BNB
0x20f5e00e4ccc9a74c8e3283e4d65955f4f2ccc86a0b503d8d7ff5700be09a071132669812021-12-07 8:22:461 hr ago 0x0e9766df73973abcfedde700497c57110ee5c3010xf2519e6eb874518e93fe8f96a3be5c97a62bc2070.049101972378446104 BNB
0x34eaedbaf0b002bd9311916369af9814c041d0916e812e4084974edf0d4ef124132669182021-12-07 8:19:261 hr 3 mins ago 0x0e9766df73973abcfedde700497c57110ee5c3010xde8dccac777881d88a374b63855cd80abd1efd700.008426667391960823 BNB
0x3acb54e999ef25fdc3f3145ad3d6ada346f491595e87e02d75a0a01d5fd2ef1f132665432021-12-07 8:00:391 hr 22 mins ago 0x0e9766df73973abcfedde700497c57110ee5c3010xeb8280c7c4382f95ab17bb49267f8dfa107e6db90.113604593092601516 BNB
0x9a10d85d3576ace38f89994646781db45794711f5c5f3d9450e6185a4a1751fd132665372021-12-07 8:00:211 hr 22 mins ago 0x0e9766df73973abcfedde700497c57110ee5c301 PancakeSwap: Router v20.014845332609394361 BNB
0x9a10d85d3576ace38f89994646781db45794711f5c5f3d9450e6185a4a1751fd132665372021-12-07 8:00:211 hr 22 mins ago 0x0e9766df73973abcfedde700497c57110ee5c301 0x0e9766df73973abcfedde700497c57110ee5c3010.003708735998288164 BNB
0x9a10d85d3576ace38f89994646781db45794711f5c5f3d9450e6185a4a1751fd132665372021-12-07 8:00:211 hr 22 mins ago 0x0e9766df73973abcfedde700497c57110ee5c3010x0a199377f5489a285c70f03326b6d4bf769c10d30.011126207994864493 BNB
0x9a10d85d3576ace38f89994646781db45794711f5c5f3d9450e6185a4a1751fd132665372021-12-07 8:00:211 hr 22 mins ago PancakeSwap: Router v2 0x0e9766df73973abcfedde700497c57110ee5c3010.103886162417035421 BNB
0x4ac078ebb5a1fad0c35891ab30827908fa8b1135d06bcf051928292164b542a5132665362021-12-07 8:00:181 hr 22 mins ago 0x0e9766df73973abcfedde700497c57110ee5c301 PancakeSwap: Router v20.014941360730959422 BNB
0x4ac078ebb5a1fad0c35891ab30827908fa8b1135d06bcf051928292164b542a5132665362021-12-07 8:00:181 hr 22 mins ago 0x0e9766df73973abcfedde700497c57110ee5c301 0x0e9766df73973abcfedde700497c57110ee5c3010.00373272622879812 BNB
0x4ac078ebb5a1fad0c35891ab30827908fa8b1135d06bcf051928292164b542a5132665362021-12-07 8:00:181 hr 22 mins ago 0x0e9766df73973abcfedde700497c57110ee5c3010x0a199377f5489a285c70f03326b6d4bf769c10d30.01119817868639436 BNB
0x4ac078ebb5a1fad0c35891ab30827908fa8b1135d06bcf051928292164b542a5132665362021-12-07 8:00:181 hr 22 mins ago PancakeSwap: Router v2 0x0e9766df73973abcfedde700497c57110ee5c3010.10455815766941513 BNB
0xc2a503fbebba00a8408fcb300e060f8b8661453e3d49a7399f89d20126d00565132665002021-12-07 7:58:301 hr 24 mins ago 0x0e9766df73973abcfedde700497c57110ee5c301 PancakeSwap: Router v20.014941360730959422 BNB
0xc2a503fbebba00a8408fcb300e060f8b8661453e3d49a7399f89d20126d00565132665002021-12-07 7:58:301 hr 24 mins ago 0x0e9766df73973abcfedde700497c57110ee5c301 0x0e9766df73973abcfedde700497c57110ee5c3010.00373272622879812 BNB
0xc2a503fbebba00a8408fcb300e060f8b8661453e3d49a7399f89d20126d00565132665002021-12-07 7:58:301 hr 24 mins ago 0x0e9766df73973abcfedde700497c57110ee5c3010x0a199377f5489a285c70f03326b6d4bf769c10d30.01119817868639436 BNB
0xc2a503fbebba00a8408fcb300e060f8b8661453e3d49a7399f89d20126d00565132665002021-12-07 7:58:301 hr 24 mins ago PancakeSwap: Router v2 0x0e9766df73973abcfedde700497c57110ee5c3010.10455815766941513 BNB
0x77d5eb5b2c47bab983094b7d1dbf501d897cfbdaac379682a75c6e889a277106132664522021-12-07 7:56:061 hr 26 mins ago 0x0e9766df73973abcfedde700497c57110ee5c3010xd31adb751608d3d3fef588229124b5d9b8717be50.009443927150853536 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BEP20UpgradeableProxy

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at BscScan.com on 2021-11-10
*/

/**
 *Submitted for verification at BscScan.com on 2021-07-27
*/

pragma solidity ^0.6.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 {
        // 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 virtual view 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 {
        _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 () payable external {
        _fallback();
    }

    /**
     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data
     * is empty.
     */
    receive () payable external {
        _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: openzeppelin-solidity/contracts/utils/Address.sol



pragma solidity ^0.6.2;

/**
 * @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 in 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");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        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);
            }
        }
    }
}

// File: openzeppelin-solidity/contracts/proxy/UpgradeableProxy.sol



pragma solidity ^0.6.0;



/**
 * @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) {
            // solhint-disable-next-line avoid-low-level-calls
            (bool success,) = _logic.delegatecall(_data);
            require(success);
        }
    }

    /**
     * @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 override view 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 {
        _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: openzeppelin-solidity/contracts/proxy/TransparentUpgradeableProxy.sol



pragma solidity ^0.6.0;


/**
 * @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 inerface 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) {
        return _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) {
        return _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 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 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 ifAdmin {
        _upgradeTo(newImplementation);
        // solhint-disable-next-line avoid-low-level-calls
        (bool success,) = newImplementation.delegatecall(data);
        require(success);
    }

    /**
     * @dev Returns the current admin.
     */
    function _admin() internal view 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 override virtual {
        require(msg.sender != _admin(), "TransparentUpgradeableProxy: admin cannot fallback to proxy target");
        super._beforeFallback();
    }
}

// File: contracts/BEP20UpgradeableProxy.sol

pragma solidity ^0.6.0;


contract BEP20UpgradeableProxy is TransparentUpgradeableProxy {

    constructor(address logic, address admin, bytes memory data) TransparentUpgradeableProxy(logic, admin, data) public {

    }

}

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":"","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"}]

608060405234801561001057600080fd5b506040516108ef3803806108ef8339818101604052606081101561003357600080fd5b8151602083015160408085018051915193959294830192918464010000000082111561005e57600080fd5b90830190602082018581111561007357600080fd5b825164010000000081118282018810171561008d57600080fd5b82525081516020918201929091019080838360005b838110156100ba5781810151838201526020016100a2565b50505050905090810190601f1680156100e75780820380516001836020036101000a031916815260200191505b50604052508491508390508282816100fe826101d2565b8051156101b6576000826001600160a01b0316826040518082805190602001908083835b602083106101415780518252601f199092019160209182019101610122565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146101a1576040519150601f19603f3d011682016040523d82523d6000602084013e6101a6565b606091505b50509050806101b457600080fd5b505b506101be9050565b6101c782610244565b50505050505061026e565b6101e58161026860201b6103b41760201c565b6102205760405162461bcd60e51b81526004018080602001828103825260368152602001806108b96036913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b3b151590565b61063c8061027d6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100985780635c60da1b146101185780638f28397014610149578063f851a4401461017c5761005d565b3661005d5761005b610191565b005b61005b610191565b34801561007157600080fd5b5061005b6004803603602081101561008857600080fd5b50356001600160a01b03166101ab565b61005b600480360360408110156100ae57600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100d957600080fd5b8201836020820111156100eb57600080fd5b8035906020019184600183028401116401000000008311171561010d57600080fd5b5090925090506101e5565b34801561012457600080fd5b5061012d610292565b604080516001600160a01b039092168252519081900360200190f35b34801561015557600080fd5b5061005b6004803603602081101561016c57600080fd5b50356001600160a01b03166102cf565b34801561018857600080fd5b5061012d610389565b6101996103ba565b6101a96101a461041a565b61043f565b565b6101b3610463565b6001600160a01b0316336001600160a01b031614156101da576101d581610488565b6101e2565b6101e2610191565b50565b6101ed610463565b6001600160a01b0316336001600160a01b031614156102855761020f83610488565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d806000811461026c576040519150601f19603f3d011682016040523d82523d6000602084013e610271565b606091505b505090508061027f57600080fd5b5061028d565b61028d610191565b505050565b600061029c610463565b6001600160a01b0316336001600160a01b031614156102c4576102bd61041a565b90506102cc565b6102cc610191565b90565b6102d7610463565b6001600160a01b0316336001600160a01b031614156101da576001600160a01b0381166103355760405162461bcd60e51b815260040180806020018281038252603a815260200180610555603a913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61035e610463565b604080516001600160a01b03928316815291841660208301528051918290030190a16101d5816104c8565b6000610393610463565b6001600160a01b0316336001600160a01b031614156102c4576102bd610463565b3b151590565b6103c2610463565b6001600160a01b0316336001600160a01b031614156104125760405162461bcd60e51b81526004018080602001828103825260428152602001806105c56042913960600191505060405180910390fd5b6101a96101a9565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e80801561045e573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b610491816104ec565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b6104f5816103b4565b6105305760405162461bcd60e51b815260040180806020018281038252603681526020018061058f6036913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5556fe5472616e73706172656e745570677261646561626c6550726f78793a206e65772061646d696e20697320746865207a65726f20616464726573735570677261646561626c6550726f78793a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e74726163745472616e73706172656e745570677261646561626c6550726f78793a2061646d696e2063616e6e6f742066616c6c6261636b20746f2070726f787920746172676574a264697066735822122044bbec8e6dd43d28418500dc79a3ce73ccf03aaf8f38e91bc00e44564eade01564736f6c634300060c00335570677261646561626c6550726f78793a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e74726163740000000000000000000000009f2ce975dfee54c6a9e9c825f7c022d32453da77000000000000000000000000232a5c237e5f7370bc82ae08647af3352e5cab4a00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044485cc95500000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e0000000000000000000000003ba9685e02247bf459ec777898cef384c906a38500000000000000000000000000000000000000000000000000000000

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

0000000000000000000000009f2ce975dfee54c6a9e9c825f7c022d32453da77000000000000000000000000232a5c237e5f7370bc82ae08647af3352e5cab4a00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044485cc95500000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e0000000000000000000000003ba9685e02247bf459ec777898cef384c906a38500000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : logic (address): 0x9f2ce975dfee54c6a9e9c825f7c022d32453da77
Arg [1] : admin (address): 0x232a5c237e5f7370bc82ae08647af3352e5cab4a
Arg [2] : data (bytes): 0x485cc95500000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e0000000000000000000000003ba9685e02247bf459ec777898cef384c906a385

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000009f2ce975dfee54c6a9e9c825f7c022d32453da77
Arg [1] : 000000000000000000000000232a5c237e5f7370bc82ae08647af3352e5cab4a
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000044
Arg [4] : 485cc95500000000000000000000000010ed43c718714eb63d5aa57b78b54704
Arg [5] : e256024e0000000000000000000000003ba9685e02247bf459ec777898cef384
Arg [6] : c906a38500000000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

18734:202:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2913:11;:9;:11::i;:::-;18734:202;;2689:11;:9;:11::i;16933:111::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16933:111:0;-1:-1:-1;;;;;16933:111:0;;:::i;17430:299::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17430:299:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17430:299:0;;-1:-1:-1;17430:299:0;-1:-1:-1;17430:299:0;:::i;16199:104::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;16199:104:0;;;;;;;;;;;;;;16519:246;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16519:246:0;-1:-1:-1;;;;;16519:246:0;;:::i;15640:86::-;;;;;;;;;;;;;:::i;2341:105::-;2382:17;:15;:17::i;:::-;2410:28;2420:17;:15;:17::i;:::-;2410:9;:28::i;:::-;2341:105::o;16933:111::-;15096:8;:6;:8::i;:::-;-1:-1:-1;;;;;15082:22:0;:10;-1:-1:-1;;;;;15082:22:0;;15078:100;;;17007:29:::1;17018:17;17007:10;:29::i;:::-;15078:100:::0;;;15155:11;:9;:11::i;:::-;16933:111;:::o;17430:299::-;15096:8;:6;:8::i;:::-;-1:-1:-1;;;;;15082:22:0;:10;-1:-1:-1;;;;;15082:22:0;;15078:100;;;17540:29:::1;17551:17;17540:10;:29::i;:::-;17641:12;17658:17;-1:-1:-1::0;;;;;17658:30:0::1;17689:4;;17658:36;;;;;;;;;;::::0;;::::1;::::0;-1:-1:-1;17658:36:0::1;::::0;-1:-1:-1;17658:36:0;;-1:-1:-1;;17658:36:0;;::::1;::::0;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17640:54;;;17713:7;17705:16;;;::::0;::::1;;15121:1;15078:100:::0;;;15155:11;:9;:11::i;:::-;17430:299;;;:::o;16199:104::-;16251:7;15096:8;:6;:8::i;:::-;-1:-1:-1;;;;;15082:22:0;:10;-1:-1:-1;;;;;15082:22:0;;15078:100;;;16278:17:::1;:15;:17::i;:::-;16271:24;;15078:100:::0;;;15155:11;:9;:11::i;:::-;16199:104;:::o;16519:246::-;15096:8;:6;:8::i;:::-;-1:-1:-1;;;;;15082:22:0;:10;-1:-1:-1;;;;;15082:22:0;;15078:100;;;-1:-1:-1;;;;;16594:22:0;::::1;16586:93;;;;-1:-1:-1::0;;;16586:93:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16695:32;16708:8;:6;:8::i;:::-;16695:32;::::0;;-1:-1:-1;;;;;16695:32:0;;::::1;::::0;;;;::::1;;::::0;::::1;::::0;;;;;;;;;::::1;16738:19;16748:8;16738:9;:19::i;15640:86::-:0;15683:7;15096:8;:6;:8::i;:::-;-1:-1:-1;;;;;15082:22:0;:10;-1:-1:-1;;;;;15082:22:0;;15078:100;;;15710:8:::1;:6;:8::i;4055:422::-:0;4422:20;4461:8;;;4055:422::o;18443:207::-;18529:8;:6;:8::i;:::-;-1:-1:-1;;;;;18515:22:0;:10;-1:-1:-1;;;;;18515:22:0;;;18507:101;;;;-1:-1:-1;;;18507:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18619:23;:21;:23::i;11331:248::-;11181:66;11550:11;;11527:45::o;941:907::-;1333:14;1330:1;1327;1314:34;1551:1;1548;1532:14;1529:1;1513:14;1506:5;1493:60;1630:16;1627:1;1624;1609:38;1670:6;1739:38;;;;1811:16;1808:1;1801:27;1739:38;1758:16;1755:1;1748:27;17795:219;14835:66;17985:11;;17963:44::o;11706:155::-;11773:37;11792:17;11773:18;:37::i;:::-;11826:27;;-1:-1:-1;;;;;11826:27:0;;;;;;;;11706:155;:::o;18101:216::-;14835:66;18277:22;18262:48::o;11957:369::-;12039:37;12058:17;12039:18;:37::i;:::-;12031:104;;;;-1:-1:-1;;;12031:104:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11181:66;12277:31;12262:57::o

Swarm Source

ipfs://44bbec8e6dd43d28418500dc79a3ce73ccf03aaf8f38e91bc00e44564eade015
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.