Contract 0xd56339f80586c08b7a4e3a68678d16d37237bd96

 

Contract Overview

Balance:
0 BNB

BNB Value:
$0.00

Token:
Txn Hash
Block
From
To
Value [Txn Fee]
0x70756cfeb88d6968d6ff7398879c90b2aba358c4b1c0d36a2b6690071fc144e872263862021-05-07 23:05:0321 secs ago0x0fcbeb2701c7f74fbfcbf51f126945834ad67fbc IN  0xd56339f80586c08b7a4e3a68678d16d37237bd960 BNB0.000913385
0x4a4270a3262f6fcdf87e8b4f24a8da998e6258b3ff95fdfed09eb3e6ee38976372263832021-05-07 23:04:5430 secs ago0x75af19d97124e42fc629b41b923d2a13f104a264 IN  0xd56339f80586c08b7a4e3a68678d16d37237bd960 BNB0.000912145
0xb83018ff14c5c93888be7b3d0b8878e017727e6bc4057eaf4f417e90eabe349d72263822021-05-07 23:04:5133 secs ago0x06dbc025d71396b9ce7dca3a8e7c68b0c9ea6d06 IN  0xd56339f80586c08b7a4e3a68678d16d37237bd960 BNB0.0008072
0x28a006f9bf3bd767455b0fc46170a590855f8c379f8ea8750d92a681a90c707d72263812021-05-07 23:04:4836 secs ago0x62c60c8c62ae20b23b6a2090faab3fe59df2bdab IN  0xd56339f80586c08b7a4e3a68678d16d37237bd960 BNB0.000913615
0x3aebeda45f2c444e2f6eb3339818a2d05c393c9e5106036265156611348be93972263762021-05-07 23:04:3351 secs ago0xb6ec6bbde8312f0ac6615a408f23f2d9db420d2b IN  0xd56339f80586c08b7a4e3a68678d16d37237bd960 BNB0.001049675
0x006f387e87a7f767af7a7e934b673964d27ba25437b837b0fc23fadec7a7824b72263742021-05-07 23:04:2757 secs ago0x889ccfcf1178eeafd89367840ae8216e5cf1e544 IN  0xd56339f80586c08b7a4e3a68678d16d37237bd960 BNB0.000913445
0x41e3736bcafd17994f5f3c365817caf5897c8a090b6fbce69dca4eb86fae92ed72263722021-05-07 23:04:211 min ago0x3c6c6541efc140759f61c1f401322953cec11eba IN  0xd56339f80586c08b7a4e3a68678d16d37237bd960 BNB0.000913385
0x84de3b4d08b7ea41718df9e8a7558269a348ab614d0d7dcef212a4d6072ea71b72263672021-05-07 23:04:061 min ago0xb6fe790d5ab01e2d46fdf0fe2152253afb62a50c IN  0xd56339f80586c08b7a4e3a68678d16d37237bd960 BNB0.000913385
0x0b91ae5424e654b89c42dfe08e0ba94dd3e32c544398039059d7dffa292f4d8572263662021-05-07 23:04:031 min ago0x0fcbeb2701c7f74fbfcbf51f126945834ad67fbc IN  0xd56339f80586c08b7a4e3a68678d16d37237bd960 BNB0.000913505
0x721cb0a633f727e49f98450ec7c9721cd5eae2e1d530c37ff0fd01bc9fe8582172263642021-05-07 23:03:571 min ago0x62c60c8c62ae20b23b6a2090faab3fe59df2bdab IN  0xd56339f80586c08b7a4e3a68678d16d37237bd960 BNB0.000913445
0xbc0ff1c2c9f84c6e43463593afa07e901aaa88fca9686ba5db7a2a9c715845d072263632021-05-07 23:03:541 min ago0x3b96099af4ef2b90bb4dd79be39a782101fb7986 IN  0xd56339f80586c08b7a4e3a68678d16d37237bd960 BNB0.00119142
0xa19374b75aeb44d00bcbabc327541929b999bcbf2ebd9be91be917b757e8deae72263492021-05-07 23:03:122 mins ago0xdb87c45755e995c72e09a88831a8aee633e1f279 IN  0xd56339f80586c08b7a4e3a68678d16d37237bd960 BNB0.000927615
0xdbf12f4fdb8bc700aa90ab27a825b1c68fba461cb4dcb554f51dbfc6c2acc48072263472021-05-07 23:03:062 mins ago0xd7a0a7370c1a52c6402a3f4782424f2b724be27f IN  0xd56339f80586c08b7a4e3a68678d16d37237bd960 BNB0.00073196
0x73e1c2c79c11ebc176f9f4b61ede741172f9a942c79ff5d0de3e7b6f158782ae72263432021-05-07 23:02:542 mins ago0x62c60c8c62ae20b23b6a2090faab3fe59df2bdab IN  0xd56339f80586c08b7a4e3a68678d16d37237bd960 BNB0.000913385
0x74acef8006d5c146d18e2d4598b65054a4b98591d4e9bf20f1e1c7fb501329af72263342021-05-07 23:02:272 mins ago0x2406cb09ecb754eed83302967d11faa6d28be10c IN  0xd56339f80586c08b7a4e3a68678d16d37237bd960 BNB0.000913505
0xffa7868392bdd7b01e4ed5254fb6f08dbeabf163d7f04ecc092350a16fcd255d72263332021-05-07 23:02:243 mins ago0xbf69c1896649df17696604630d66355ef1c1258d IN  0xd56339f80586c08b7a4e3a68678d16d37237bd960 BNB0.001656305
0xb1d036be7805614fc3b67921b9fc764a411de80bc9a615482080bf3f5670d1a672263302021-05-07 23:02:153 mins ago0x68ad88b310fd3c13320779ca4c8e31e9fc325ab2 IN  0xd56339f80586c08b7a4e3a68678d16d37237bd960 BNB0.000912085
0xf9132fad0809810522d7cb23ff358a51d84f548c8e3579c6df1682d55ff2e66572263302021-05-07 23:02:153 mins ago0x3c6c6541efc140759f61c1f401322953cec11eba IN  0xd56339f80586c08b7a4e3a68678d16d37237bd960 BNB0.000988445
0xca8c8b109de249e5f3d9cfb396e38b43ba6860b47b72f49114fe6270f062644972263282021-05-07 23:02:093 mins ago0xa2c3a26cf282ea25308e733e6ba2fa445be91eca IN  0xd56339f80586c08b7a4e3a68678d16d37237bd960 BNB0.00071132
0x33933c01d88ec58a3f4dd7def80992c812d0b91bcd5a13eefa0ef7a6e58a913472263272021-05-07 23:02:063 mins ago0x5b6b96376d80e655340c032ef06466d9b4913a7d IN  0xd56339f80586c08b7a4e3a68678d16d37237bd960 BNB0.000493795
0x02b5baf952719dcd69a0699081f5bbebf02950ff61ac2b7606bfc945750a968a72263262021-05-07 23:02:033 mins ago0x0fcbeb2701c7f74fbfcbf51f126945834ad67fbc IN  0xd56339f80586c08b7a4e3a68678d16d37237bd960 BNB0.000913325
0x852b0463794d80330e14e81b40b971e22677f467d298d960891d36e4d71fdbde72263252021-05-07 23:02:003 mins ago0x34b0de6f8b8695594b8b1ac2e8f95e7578fb83f0 IN  0xd56339f80586c08b7a4e3a68678d16d37237bd960 BNB0.000912085
0x534003c5ea4dd484d01629ddf73322ba308a2e61d7828bd13e770d3ddeed5c0272263252021-05-07 23:02:003 mins ago0x2ec47544fd1e0da093b5cca53cdeb654b9b01992 IN  0xd56339f80586c08b7a4e3a68678d16d37237bd960 BNB0.000913445
0x9633db76c83f4315a53bc51b63d441d98e11bddf0084aa8aa90bd2536f73f9d572263252021-05-07 23:02:003 mins ago0x3cebdc0108865a12d051ff2b055a7ccfb93ea953 IN  0xd56339f80586c08b7a4e3a68678d16d37237bd960 BNB0.000913385
0x6f49a992a77fcf6b9232bf4c14f5ba8fd055aceffc930d4120b84a3b8c9361d672263222021-05-07 23:01:513 mins ago0xd74b6acc40768295fc3d7d43edc089f4ac1fafaa IN  0xd56339f80586c08b7a4e3a68678d16d37237bd960 BNB0.000899735
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x5a99f01e2ba62a549ae9d1e0151a44c35197681f7b9b2c1b86bb06eb9bac155054713212021-03-07 11:59:0061 days 11 hrs ago 0xd56339f80586c08b7a4e3a68678d16d37237bd96 0x8dd39f0a49160cda5ef1e2a2fa7396eec7da82670 BNB
0x5a99f01e2ba62a549ae9d1e0151a44c35197681f7b9b2c1b86bb06eb9bac155054713212021-03-07 11:59:0061 days 11 hrs ago 0xd56339f80586c08b7a4e3a68678d16d37237bd96 0xec73ff6aef9516c35da8d98699c1a40617496b1b0 BNB
0xe94796db2f38365ba1d366d19838b98529774f0072941d94419235d153bfd83854713202021-03-07 11:58:5761 days 11 hrs ago 0xd56339f80586c08b7a4e3a68678d16d37237bd96 0xf98313f818c53e40bd758c5276ef4b434463bec40 BNB
0xe94796db2f38365ba1d366d19838b98529774f0072941d94419235d153bfd83854713202021-03-07 11:58:5761 days 11 hrs ago 0xd56339f80586c08b7a4e3a68678d16d37237bd96 ValueDefi: vBSWAP Token0 BNB
0xe94796db2f38365ba1d366d19838b98529774f0072941d94419235d153bfd83854713202021-03-07 11:58:5761 days 11 hrs ago 0xd56339f80586c08b7a4e3a68678d16d37237bd96 ValueDefi: vBSWAP Token0 BNB
0xe94796db2f38365ba1d366d19838b98529774f0072941d94419235d153bfd83854713202021-03-07 11:58:5761 days 11 hrs ago 0xd56339f80586c08b7a4e3a68678d16d37237bd96 ValueDefi: vBSWAP Token0 BNB
0xe94796db2f38365ba1d366d19838b98529774f0072941d94419235d153bfd83854713202021-03-07 11:58:5761 days 11 hrs ago 0xd56339f80586c08b7a4e3a68678d16d37237bd96 ValueDefi: vBSWAP Token0 BNB
0xe94796db2f38365ba1d366d19838b98529774f0072941d94419235d153bfd83854713202021-03-07 11:58:5761 days 11 hrs ago 0xd56339f80586c08b7a4e3a68678d16d37237bd96 ValueDefi: vBSWAP Token0 BNB
0xe94796db2f38365ba1d366d19838b98529774f0072941d94419235d153bfd83854713202021-03-07 11:58:5761 days 11 hrs ago 0xd56339f80586c08b7a4e3a68678d16d37237bd96 0xf98313f818c53e40bd758c5276ef4b434463bec40 BNB
0xe94796db2f38365ba1d366d19838b98529774f0072941d94419235d153bfd83854713202021-03-07 11:58:5761 days 11 hrs ago 0xd56339f80586c08b7a4e3a68678d16d37237bd96 0xec73ff6aef9516c35da8d98699c1a40617496b1b0 BNB
0xe94796db2f38365ba1d366d19838b98529774f0072941d94419235d153bfd83854713202021-03-07 11:58:5761 days 11 hrs ago 0x7a46e06d214bff1248449095a727faa08d042654 0xd56339f80586c08b7a4e3a68678d16d37237bd960 BNB
0xdd144f702f7c1c5cb77ea1ce36f3b551ae08df2947d7fc79003d77f0c94ad78a54713192021-03-07 11:58:5461 days 11 hrs ago 0xd56339f80586c08b7a4e3a68678d16d37237bd96 0x8dd39f0a49160cda5ef1e2a2fa7396eec7da82670 BNB
0xdd144f702f7c1c5cb77ea1ce36f3b551ae08df2947d7fc79003d77f0c94ad78a54713192021-03-07 11:58:5461 days 11 hrs ago 0xd56339f80586c08b7a4e3a68678d16d37237bd96 0xec73ff6aef9516c35da8d98699c1a40617496b1b0 BNB
0x844c019235ef7e8f1143d2546798aab667c9ddc3dc8b6acb48d5011494ed7c4554713082021-03-07 11:58:2161 days 11 hrs ago 0xd56339f80586c08b7a4e3a68678d16d37237bd96 0x8dd39f0a49160cda5ef1e2a2fa7396eec7da82670 BNB
0x844c019235ef7e8f1143d2546798aab667c9ddc3dc8b6acb48d5011494ed7c4554713082021-03-07 11:58:2161 days 11 hrs ago 0xd56339f80586c08b7a4e3a68678d16d37237bd96 0xec73ff6aef9516c35da8d98699c1a40617496b1b0 BNB
0xcf6b9ce0b986a29c157b6445ee11094c4fd8cfda48ae02c04d90ec5cdd7d979954712982021-03-07 11:57:5161 days 11 hrs ago 0xd56339f80586c08b7a4e3a68678d16d37237bd96 ValueDefi: vBSWAP Token0 BNB
0xcf6b9ce0b986a29c157b6445ee11094c4fd8cfda48ae02c04d90ec5cdd7d979954712982021-03-07 11:57:5161 days 11 hrs ago 0xd56339f80586c08b7a4e3a68678d16d37237bd96 ValueDefi: vBSWAP Token0 BNB
0xcf6b9ce0b986a29c157b6445ee11094c4fd8cfda48ae02c04d90ec5cdd7d979954712982021-03-07 11:57:5161 days 11 hrs ago 0xd56339f80586c08b7a4e3a68678d16d37237bd96 ValueDefi: vBSWAP Token0 BNB
0xcf6b9ce0b986a29c157b6445ee11094c4fd8cfda48ae02c04d90ec5cdd7d979954712982021-03-07 11:57:5161 days 11 hrs ago 0xd56339f80586c08b7a4e3a68678d16d37237bd96 ValueDefi: vBSWAP Token0 BNB
0xcf6b9ce0b986a29c157b6445ee11094c4fd8cfda48ae02c04d90ec5cdd7d979954712982021-03-07 11:57:5161 days 11 hrs ago 0xd56339f80586c08b7a4e3a68678d16d37237bd96 ValueDefi: vBSWAP Token0 BNB
0xcf6b9ce0b986a29c157b6445ee11094c4fd8cfda48ae02c04d90ec5cdd7d979954712982021-03-07 11:57:5161 days 11 hrs ago 0xd56339f80586c08b7a4e3a68678d16d37237bd96 0x7ce9f1a8e494d49e59a72fd0443d378448151b9c0 BNB
0xcf6b9ce0b986a29c157b6445ee11094c4fd8cfda48ae02c04d90ec5cdd7d979954712982021-03-07 11:57:5161 days 11 hrs ago 0xd56339f80586c08b7a4e3a68678d16d37237bd96 0xec73ff6aef9516c35da8d98699c1a40617496b1b0 BNB
0xab1f9e3413740de07798ba23c8ba413108ad4d9e99df6c708f0e5b1e4595b24b54712962021-03-07 11:57:4561 days 11 hrs ago 0xd56339f80586c08b7a4e3a68678d16d37237bd96 ValueDefi: vBSWAP Token0 BNB
0xab1f9e3413740de07798ba23c8ba413108ad4d9e99df6c708f0e5b1e4595b24b54712962021-03-07 11:57:4561 days 11 hrs ago 0xd56339f80586c08b7a4e3a68678d16d37237bd96 ValueDefi: vBSWAP Token0 BNB
0xab1f9e3413740de07798ba23c8ba413108ad4d9e99df6c708f0e5b1e4595b24b54712962021-03-07 11:57:4561 days 11 hrs ago 0xd56339f80586c08b7a4e3a68678d16d37237bd96 ValueDefi: vBSWAP Token0 BNB
[ Download CSV Export 
Loading

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

Contract Name:
AdminUpgradeabilityProxy

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 999999 runs

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

// SPDX-License-Identifier: MIT

pragma solidity 0.6.12;

/**
 * @title Proxy
 * @dev Implements delegation of calls to other contracts, with proper
 * forwarding of return values and bubbling of failures.
 * It defines a fallback function that delegates all calls to the address
 * returned by the abstract _implementation() internal function.
 */
abstract contract Proxy {
    /**
     * @dev Fallback function.
     * Implemented entirely in `_fallback`.
     */
    fallback() external payable {
        _fallback();
    }

    /**
     * @dev Receive function.
     * Implemented entirely in `_fallback`.
     */
    receive() 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());
    }
}

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

/**
 * @title UpgradeabilityProxy
 * @dev This contract implements a proxy that allows to change the
 * implementation address to which it will delegate.
 * Such a change is called an implementation upgrade.
 */
contract UpgradeabilityProxy is Proxy {
    /**
     * @dev Contract constructor.
     * @param _logic Address of the initial implementation.
     * @param _data Data to send as msg.data to the implementation to initialize the proxied contract.
     * It should include the signature and the parameters of the function to be called, as described in
     * https://solidity.readthedocs.io/en/v0.4.24/abi-spec.html#function-selector-and-argument-encoding.
     * This parameter is optional, if no data is given the initialization call to proxied contract will be skipped.
     */
    constructor(address _logic, bytes memory _data) public payable {
        assert(IMPLEMENTATION_SLOT == bytes32(uint256(keccak256("eip1967.proxy.implementation")) - 1));
        _setImplementation(_logic);
        if (_data.length > 0) {
            (bool success, ) = _logic.delegatecall(_data);
            require(success);
        }
    }

    /**
     * @dev Emitted when the implementation is upgraded.
     * @param implementation Address of the new implementation.
     */
    event Upgraded(address indexed implementation);

    /**
     * @dev Storage slot with the address of the current implementation.
     * This is the keccak-256 hash of "eip1967.proxy.implementation" subtracted by 1, and is
     * validated in the constructor.
     */
    bytes32 internal constant IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;

    /**
     * @dev Returns the current implementation.
     * @return impl Address of the current implementation
     */
    function _implementation() internal 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)
        }
    }
}

/**
 * @title AdminUpgradeabilityProxy
 * @dev This contract combines an upgradeability proxy with an authorization
 * mechanism for administrative tasks.
 * All external functions in this contract must be guarded by the
 * `ifAdmin` modifier. See ethereum/solidity#3864 for a Solidity
 * feature proposal that would enable this to be done automatically.
 */
contract AdminUpgradeabilityProxy is UpgradeabilityProxy {
    /**
     * Contract constructor.
     * @param _logic address of the initial implementation.
     * @param _admin Address of the proxy administrator.
     * @param _data Data to send as msg.data to the implementation to initialize the proxied contract.
     * It should include the signature and the parameters of the function to be called, as described in
     * https://solidity.readthedocs.io/en/v0.4.24/abi-spec.html#function-selector-and-argument-encoding.
     * This parameter is optional, if no data is given the initialization call to proxied contract will be skipped.
     */
    constructor(
        address _logic,
        address _admin,
        bytes memory _data
    ) public payable UpgradeabilityProxy(_logic, _data) {
        assert(ADMIN_SLOT == bytes32(uint256(keccak256("eip1967.proxy.admin")) - 1));
        _setAdmin(_admin);
    }

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

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

    bytes32 internal constant ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;

    /**
     * @dev Modifier to check whether the `msg.sender` is the admin.
     * If it is, it will run the function. Otherwise, it will delegate the call
     * to the implementation.
     */
    modifier ifAdmin() {
        if (msg.sender == _admin()) {
            _;
        } else {
            _fallback();
        }
    }

    /**
     * @return The address of the proxy admin.
     */
    function admin() external ifAdmin returns (address) {
        return _admin();
    }

    /**
     * @return The address of the implementation.
     */
    function implementation() external ifAdmin returns (address) {
        return _implementation();
    }

    /**
     * @dev Changes the admin of the proxy.
     * Only the current admin can call this function.
     * @param newAdmin Address to transfer proxy administration to.
     */
    function changeAdmin(address newAdmin) external ifAdmin {
        require(newAdmin != address(0), "Cannot change the admin of a proxy to the zero address");
        emit AdminChanged(_admin(), newAdmin);
        _setAdmin(newAdmin);
    }

    /**
     * @dev Upgrade the backing implementation of the proxy.
     * Only the admin can call this function.
     * @param newImplementation Address of the new implementation.
     */
    function upgradeTo(address newImplementation) external ifAdmin {
        _upgradeTo(newImplementation);
    }

    /**
     * @dev Upgrade the backing implementation of the proxy and call a function
     * on the new implementation.
     * This is useful to initialize the proxied contract.
     * @param newImplementation Address of the new implementation.
     * @param data Data to send as msg.data in the low level call.
     * It should include the signature and the parameters of the function to be called, as described in
     * https://solidity.readthedocs.io/en/v0.4.24/abi-spec.html#function-selector-and-argument-encoding.
     */
    function upgradeToAndCall(address newImplementation, bytes calldata data) 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();
    }
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"address","name":"_admin","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"changeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052604051610a34380380610a348339818101604052606081101561002657600080fd5b8151602083015160408085018051915193959294830192918464010000000082111561005157600080fd5b90830190602082018581111561006657600080fd5b825164010000000081118282018810171561008057600080fd5b82525081516020918201929091019080838360005b838110156100ad578181015183820152602001610095565b50505050905090810190601f1680156100da5780820380516001836020036101000a031916815260200191505b50604052508491508290506100ee826101bf565b8051156101a6576000826001600160a01b0316826040518082805190602001908083835b602083106101315780518252601f199092019160209182019101610112565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610191576040519150601f19603f3d011682016040523d82523d6000602084013e610196565b606091505b50509050806101a457600080fd5b505b506101ae9050565b6101b782610231565b50505061025b565b6101d28161025560201b6104bb1760201c565b61020d5760405162461bcd60e51b815260040180806020018281038252603b8152602001806109f9603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b3b151590565b61078f8061026a6000396000f3fe60806040526004361061005e5760003560e01c80635c60da1b116100435780635c60da1b146101425780638f28397014610180578063f851a440146101c05761006d565b80633659cfe6146100755780634f1ef286146100b55761006d565b3661006d5761006b6101d5565b005b61006b6101d5565b34801561008157600080fd5b5061006b6004803603602081101561009857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166101ef565b61006b600480360360408110156100cb57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561010357600080fd5b82018360208201111561011557600080fd5b8035906020019184600183028401116401000000008311171561013757600080fd5b509092509050610243565b34801561014e57600080fd5b50610157610317565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561018c57600080fd5b5061006b600480360360208110156101a357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661036e565b3480156101cc57600080fd5b50610157610476565b6101dd6104c1565b6101ed6101e8610555565b61057a565b565b6101f761059e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023857610233816105c3565b610240565b6102406101d5565b50565b61024b61059e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561030a57610287836105c3565b60008373ffffffffffffffffffffffffffffffffffffffff1683836040518083838082843760405192019450600093509091505080830381855af49150503d80600081146102f1576040519150601f19603f3d011682016040523d82523d6000602084013e6102f6565b606091505b505090508061030457600080fd5b50610312565b6103126101d5565b505050565b600061032161059e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156103635761035c610555565b905061036b565b61036b6101d5565b90565b61037661059e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102385773ffffffffffffffffffffffffffffffffffffffff8116610415576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806106e96036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61043e61059e565b6040805173ffffffffffffffffffffffffffffffffffffffff928316815291841660208301528051918290030190a161023381610610565b600061048061059e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156103635761035c61059e565b3b151590565b6104c961059e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561054d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806106b76032913960400191505060405180910390fd5b6101ed6101ed565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e808015610599573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6105cc81610634565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b61063d816104bb565b610692576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b81526020018061071f603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5556fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a2646970667358221220fb8cffffd84026d882acfa456d7fd273e880e685d858fafa865a7126ef6f123364736f6c634300060c003343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e7472616374206164647265737300000000000000000000000076a034e76aa835363056dd418611e4f81870f16e000000000000000000000000f295a7efaa974c72ab56519781096789e5642e3900000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000

Deployed ByteCode Sourcemap

11896:4529:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;684:11;:9;:11::i;:::-;11896:4529;;525:11;:9;:11::i;14734:111::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14734:111:0;;;;:::i;15393:240::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15393:240:0;;-1:-1:-1;15393:240:0;-1:-1:-1;15393:240:0;:::i;13990:104::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14289:242;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14289:242:0;;;;:::i;13827:86::-;;;;;;;;;;;;;:::i;2476:103::-;2517:15;:13;:15::i;:::-;2543:28;2553:17;:15;:17::i;:::-;2543:9;:28::i;:::-;2476:103::o;14734:111::-;13664:8;:6;:8::i;:::-;13650:22;;:10;:22;;;13646:100;;;14808:29:::1;14819:17;14808:10;:29::i;:::-;13646:100:::0;;;13723:11;:9;:11::i;:::-;14734:111;:::o;15393:240::-;13664:8;:6;:8::i;:::-;13650:22;;:10;:22;;;13646:100;;;15503:29:::1;15514:17;15503:10;:29::i;:::-;15544:12;15562:17;:30;;15593:4;;15562:36;;;;;;;;;;::::0;;::::1;::::0;-1:-1:-1;15562:36:0::1;::::0;-1:-1:-1;15562:36:0;;-1:-1:-1;;15562:36:0;;::::1;::::0;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15543:55;;;15617:7;15609:16;;;::::0;::::1;;13689:1;13646:100:::0;;;13723:11;:9;:11::i;:::-;15393:240;;;:::o;13990:104::-;14042:7;13664:8;:6;:8::i;:::-;13650:22;;:10;:22;;;13646:100;;;14069:17:::1;:15;:17::i;:::-;14062:24;;13646:100:::0;;;13723:11;:9;:11::i;:::-;13990:104;:::o;14289:242::-;13664:8;:6;:8::i;:::-;13650:22;;:10;:22;;;13646:100;;;14364:22:::1;::::0;::::1;14356:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14461:32;14474:8;:6;:8::i;:::-;14461:32;::::0;;::::1;::::0;;::::1;::::0;;;;::::1;;::::0;::::1;::::0;;;;;;;;;::::1;14504:19;14514:8;14504:9;:19::i;13827:86::-:0;13870:7;13664:8;:6;:8::i;:::-;13650:22;;:10;:22;;;13646:100;;;13897:8:::1;:6;:8::i;3267:444::-:0;3647:20;3695:8;;;3267:444::o;16235:187::-;16319:8;:6;:8::i;:::-;16305:22;;:10;:22;;;;16297:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16393:21;:19;:21::i;10556:190::-;10355:66;10717:11;;10694:45::o;1155:938::-;1490:14;1487:1;1484;1471:34;1708:1;1705;1689:14;1686:1;1670:14;1663:5;1650:60;1787:16;1784:1;1781;1766:38;1827:6;1904:76;;;;2039:16;2036:1;2029:27;1904:76;1944:16;1941:1;1934:27;15695:161;13341:66;15827:11;;15805:44::o;10897:155::-;10964:37;10983:17;10964:18;:37::i;:::-;11017:27;;;;;;;;;;;10897:155;:::o;15988:159::-;13341:66;16107:22;16092:48::o;11205:317::-;11288:37;11307:17;11288:18;:37::i;:::-;11280:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10355:66;11473:31;11458:57::o

Swarm Source

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