Contract 0xac1f9fadc33cc0799cf7e3051e5f6b28c98966ee

 

Contract Overview

Balance:
0 BNB

BNB Value:
$0.00

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xadf941e986306eac72af2f0ed60f504d32718bf272381d2d3bed906a2b1c930eSet Approval For...120442042021-10-24 7:40:191 hr 34 mins ago0x6f16191e2e1845f3855c3c206dfc33e5e133ccba IN  0xac1f9fadc33cc0799cf7e3051e5f6b28c98966ee0 BNB0.00023901
0x69840575ff7637ed8338a7f071b11c84f538eb6d9d2ed1b32d1b9702daeae3f9Safe Transfer Fr...120440972021-10-24 7:34:581 hr 39 mins ago0x217e1bfc4ae71d2469ebabdd8b80aaa0ebbda211 IN  0xac1f9fadc33cc0799cf7e3051e5f6b28c98966ee0 BNB0.00021299
0x129954b059ae63b227b15acd4af2323616e4ca9251e715fe3408727bdc9e038fSet Approval For...120423252021-10-24 6:06:043 hrs 8 mins ago0x8d65d23a2a91b03dc84f24e114213ac23aca60c5 IN  0xac1f9fadc33cc0799cf7e3051e5f6b28c98966ee0 BNB0.00023901
0xcb3d616f93d7dad80b082cc51512d94525b86c1cfd39f5a02c93e1b15ce633a9Set Approval For...120398972021-10-24 4:02:575 hrs 11 mins ago0xba572e4eaf49235ab716539caf8ed9f300b4939a IN  0xac1f9fadc33cc0799cf7e3051e5f6b28c98966ee0 BNB0.00023907
0xdebcab5a26e7e96524d8917c8fd714250b9bb337738ba4ac4c8c4fea1c2b4e62Set Approval For...120388802021-10-24 3:12:056 hrs 2 mins ago0x339395982f87de600746d091bf73474fec9fc755 IN  0xac1f9fadc33cc0799cf7e3051e5f6b28c98966ee0 BNB0.00023901
0x91391c13cb723ff5d57b1bba8396989ba4638bfdd4bd867c405c17b037f227b0Safe Transfer Fr...120378492021-10-24 2:20:306 hrs 53 mins ago0xfbb61225a18e5059f836a944475504731364de22 IN  0xac1f9fadc33cc0799cf7e3051e5f6b28c98966ee0 BNB0.00084892
0x6e7b9ec7ba26c1a57a47415b6663a09502b74f79a8968c3e1ca987cd8152b886Set Approval For...120309122021-10-23 20:32:3512 hrs 41 mins ago0xb8f009508ec983c114720e8c5676a72fc0787c05 IN  0xac1f9fadc33cc0799cf7e3051e5f6b28c98966ee0 BNB0.00023907
0xd7780afd22ba1fab66d3f2b10be5b377b0edad656bd3a8fd03cdeb767af0af74Set Approval For...120253192021-10-23 15:51:1617 hrs 23 mins ago0x3e5fc15d6a23ab068ee1b9afe669ef38a5cabb36 IN  0xac1f9fadc33cc0799cf7e3051e5f6b28c98966ee0 BNB0.00023907
0x96d6091039ca471bb17908ddb56744f0a12038aab6aa6c7e2f7898c5d5c477acSafe Transfer Fr...120250222021-10-23 15:35:5417 hrs 38 mins ago0x28ea994bcfc87659b9b6d0e7a61012a71546c2d5 IN  0xac1f9fadc33cc0799cf7e3051e5f6b28c98966ee0 BNB0.00021299
0x0889c0540450ce3ff8a920b5c619f366b2d23d0e5f8d41b8b90f248e5ab2068eSet Approval For...120245512021-10-23 15:12:2018 hrs 2 mins ago0xcf8417cdcb5a42def70c7399cd13be4111184953 IN  0xac1f9fadc33cc0799cf7e3051e5f6b28c98966ee0 BNB0.00023901
0x06717ba56be0ff06acfa86c807a485819e25e694a4bb30d3db3c738d276e0a98Set Approval For...120221632021-10-23 13:12:0220 hrs 2 mins ago0x3b5a9164ec92be42eadf428748b7c62bc74f96ef IN  0xac1f9fadc33cc0799cf7e3051e5f6b28c98966ee0 BNB0.00023901
0x21cc164ed6639be02e6730f0723eb74cd360f1bd4b1085ea3244426bea058f5eSafe Transfer Fr...120209252021-10-23 12:09:4521 hrs 4 mins ago0x0c650329b94f5b08e13ae27abe974b00bf19129c IN  0xac1f9fadc33cc0799cf7e3051e5f6b28c98966ee0 BNB0.00013793
0x5ec2871d23a1be81d3084efc999e8fbf31e6276380d4fbc7808d4c481e148bd8Safe Transfer Fr...120208982021-10-23 12:08:2421 hrs 5 mins ago0x36c7e7bef0673f752ed4d471bef5b4ebb8aca0de IN  0xac1f9fadc33cc0799cf7e3051e5f6b28c98966ee0 BNB0.00013799
0x67a1fcf63275707ccafd04d88d206201828430c00d86885663b2728660c5cd2cSafe Transfer Fr...120208342021-10-23 12:05:1221 hrs 9 mins ago0x79e84ee6f0513cc96f31877a4078c0cdd4bda5ab IN  0xac1f9fadc33cc0799cf7e3051e5f6b28c98966ee0 BNB0.00021299
0x4681345e1ca0e41442f271c6766fa5ead7ec188cf5bfc8db2f0cd57bc74df0e2Set Approval For...120158312021-10-23 7:54:311 day 1 hr ago0x6a990dbc19f8791c35ec11cc5c1890fdd746b1c2 IN  0xac1f9fadc33cc0799cf7e3051e5f6b28c98966ee0 BNB0.00023907
0xef5333e95cae08547bb59702d6e74ca2a518ff461072b144fd94f9edcf25f6a0Safe Transfer Fr...120106932021-10-23 3:35:491 day 5 hrs ago0xf64e0f863e61dd902cfa9cdabe166931dcffcaf5 IN  0xac1f9fadc33cc0799cf7e3051e5f6b28c98966ee0 BNB0.00021299
0xeaa24f962e680aa91f5de0d19ab1591b1f748cc368c9628e268f3195a54592a8Set Approval For...120106202021-10-23 3:31:221 day 5 hrs ago0xca66cec76f9e02b343ef2fdf9e37a15928a0570d IN  0xac1f9fadc33cc0799cf7e3051e5f6b28c98966ee0 BNB0.00023907
0x0c2650fd91365550c53c27f49cb85fcc01f817a3f574d387d2ed86300720166eSet Approval For...119987512021-10-22 17:30:271 day 15 hrs ago0x6f16191e2e1845f3855c3c206dfc33e5e133ccba IN  0xac1f9fadc33cc0799cf7e3051e5f6b28c98966ee0 BNB0.00014307
0x6f55ce88ee1eec14091896b2805b93f7457344f4a4192e2a51dfb00d49d33bfdSet Approval For...119987462021-10-22 17:30:121 day 15 hrs ago0x6f16191e2e1845f3855c3c206dfc33e5e133ccba IN  0xac1f9fadc33cc0799cf7e3051e5f6b28c98966ee0 BNB0.00023907
0x7f907420edea65fbe12d0cbc86a9ac69b9922bdfad9f538dc1b81f07934b29b7Set Approval For...119985252021-10-22 17:19:081 day 15 hrs ago0x00efd722c6c2a169929f197abe9da2d559d8a083 IN  0xac1f9fadc33cc0799cf7e3051e5f6b28c98966ee0 BNB0.00023907
0xb918b015ff15f64d5bfede3bdcd55a7910df00bd96a9b8477cc638fb1efed0c5Set Approval For...119929532021-10-22 12:38:491 day 20 hrs ago0x65a8d065bf292508f8524e60c2fda7f95856d66b IN  0xac1f9fadc33cc0799cf7e3051e5f6b28c98966ee0 BNB0.00023907
0xb8177c88944cd97a92a6a9eceb8d2f9f9d617a160f205819aa8155faa2ae62dbSet Approval For...119928372021-10-22 12:32:581 day 20 hrs ago0x45228ae3e5be21e67114bf5f6729df2d69378268 IN  0xac1f9fadc33cc0799cf7e3051e5f6b28c98966ee0 BNB0.00023907
0xbd1c01d7d6b92d2b985cf5f3c4ee57e55773ddc964311a4d33cab6614e130de8Set Approval For...119927252021-10-22 12:27:221 day 20 hrs ago0x3dcf89abc2e7afc341a4dee1a5edc7411399c7fb IN  0xac1f9fadc33cc0799cf7e3051e5f6b28c98966ee0 BNB0.00023901
0x133c5399599ca5270bd7ff4324d6c9aa4b60e6f77a4c97f30e0c6caff7a59366Set Approval For...119923732021-10-22 12:09:421 day 21 hrs ago0x45228ae3e5be21e67114bf5f6729df2d69378268 IN  0xac1f9fadc33cc0799cf7e3051e5f6b28c98966ee0 BNB0.00023901
0xfe59cc239284f2781bbba663ffda0246bc595768c645c45e6fc1188d9c07ecb4Set Approval For...119896872021-10-22 9:53:401 day 23 hrs ago0x3e5fc15d6a23ab068ee1b9afe669ef38a5cabb36 IN  0xac1f9fadc33cc0799cf7e3051e5f6b28c98966ee0 BNB0.00023901
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SecondLiveNFTProxy

Compiler Version
v0.6.2+commit.bacdbe57

Optimization Enabled:
Yes with 200 runs

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

/***
 * 
 * ███████╗███████╗ ██████╗ ██████╗ ███╗   ██╗██████╗ ██╗     ██╗██╗   ██╗███████╗
 * ██╔════╝██╔════╝██╔════╝██╔═══██╗████╗  ██║██╔══██╗██║     ██║██║   ██║██╔════╝
 * ███████╗█████╗  ██║     ██║   ██║██╔██╗ ██║██║  ██║██║     ██║██║   ██║█████╗  
 * ╚════██║██╔══╝  ██║     ██║   ██║██║╚██╗██║██║  ██║██║     ██║╚██╗ ██╔╝██╔══╝  
 * ███████║███████╗╚██████╗╚██████╔╝██║ ╚████║██████╔╝███████╗██║ ╚████╔╝ ███████╗
 * ╚══════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═╝  ╚═══╝╚═════╝ ╚══════╝╚═╝  ╚═══╝  ╚══════╝
 *    
 * https://secondlive.world
                               
* MIT License
* ===========
*
* Copyright (c) 2021 secondlive
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
*/// File: @openzeppelin/contracts/proxy/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: @openzeppelin/contracts/utils/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);
            }
        }
    }
}

// File: @openzeppelin/contracts/proxy/UpgradeableProxy.sol

// SPDX-License-Identifier: MIT

pragma solidity >=0.6.0 <0.8.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) {
            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: @openzeppelin/contracts/proxy/TransparentUpgradeableProxy.sol

// SPDX-License-Identifier: MIT

pragma solidity >=0.6.0 <0.8.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 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: contracts/SecondLive/SecondLiveNFTProxy.sol

pragma solidity ^0.6.0;


contract SecondLiveNFTProxy is TransparentUpgradeableProxy {
    constructor(address _implementation, bytes memory _data)
        public
        TransparentUpgradeableProxy(_implementation, msg.sender, _data)
    {}

    // Allow anyone to view the implementation address
    function proxyImplementation() external view returns (address) {
        return _implementation();
    }

    function proxyAdmin() external view returns (address) {
        return _admin();
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_implementation","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":[],"name":"proxyAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxyImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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"}]

60806040523480156200001157600080fd5b5060405162000dd838038062000dd8833981810160405260408110156200003757600080fd5b8151602083018051604051929492938301929190846401000000008211156200005f57600080fd5b9083019060208201858111156200007557600080fd5b82516401000000008111828201881017156200009057600080fd5b82525081516020918201929091019080838360005b83811015620000bf578181015183820152602001620000a5565b50505050905090810190601f168015620000ed5780820380516001836020036101000a031916815260200191505b5060408181527f656970313936372e70726f78792e696d706c656d656e746174696f6e0000000082525190819003601c0190208593503392508491508390829060008051602062000d35833981519152600019909101146200014b57fe5b6200015f826001600160e01b03620001f116565b80511562000180576200017e82826200025760201b620004f91760201c565b505b5050604080517f656970313936372e70726f78792e61646d696e000000000000000000000000008152905190819003601301902060008051602062000d1583398151915260001990910114620001d257fe5b620001e6826001600160e01b036200028f16565b505050505062000472565b6200020781620002a260201b620006b41760201c565b620002445760405162461bcd60e51b815260040180806020018281038252603681526020018062000d7c6036913960400191505060405180910390fd5b60008051602062000d3583398151915255565b606062000288838360405180606001604052806027815260200162000d55602791396001600160e01b03620002a816565b9392505050565b60008051602062000d1583398151915255565b3b151590565b6060620002be846001600160e01b03620002a216565b620002fb5760405162461bcd60e51b815260040180806020018281038252602681526020018062000db26026913960400191505060405180910390fd5b60006060856001600160a01b0316856040518082805190602001908083835b602083106200033b5780518252601f1990920191602091820191016200031a565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146200039d576040519150601f19603f3d011682016040523d82523d6000602084013e620003a2565b606091505b509092509050620003be8282866001600160e01b03620003c816565b9695505050505050565b60608315620003d957508162000288565b825115620003ea5782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620004365781810151838201526020016200041c565b50505050905090810190601f168015620004645780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b61089380620004826000396000f3fe6080604052600436106100745760003560e01c80634f1ef2861161004e5780634f1ef286146101045780635c60da1b146101845780638f28397014610199578063f851a440146101cc57610083565b80630c870f911461008b5780633659cfe6146100bc5780633e47158c146100ef57610083565b36610083576100816101e1565b005b6100816101e1565b34801561009757600080fd5b506100a06101fb565b604080516001600160a01b039092168252519081900360200190f35b3480156100c857600080fd5b50610081600480360360208110156100df57600080fd5b50356001600160a01b031661020b565b3480156100fb57600080fd5b506100a0610245565b6100816004803603604081101561011a57600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561014557600080fd5b82018360208201111561015757600080fd5b8035906020019184600183028401116401000000008311171561017957600080fd5b50909250905061024f565b34801561019057600080fd5b506100a06102cc565b3480156101a557600080fd5b50610081600480360360208110156101bc57600080fd5b50356001600160a01b0316610306565b3480156101d857600080fd5b506100a06103c0565b6101e96103eb565b6101f96101f461044b565b610470565b565b600061020561044b565b90505b90565b610213610494565b6001600160a01b0316336001600160a01b0316141561023a57610235816104b9565b610242565b6102426101e1565b50565b6000610205610494565b610257610494565b6001600160a01b0316336001600160a01b031614156102bf57610279836104b9565b6102b98383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104f992505050565b506102c7565b6102c76101e1565b505050565b60006102d6610494565b6001600160a01b0316336001600160a01b031614156102fe576102f761044b565b9050610208565b6102086101e1565b61030e610494565b6001600160a01b0316336001600160a01b0316141561023a576001600160a01b03811661036c5760405162461bcd60e51b815260040180806020018281038252603a81526020018061075f603a913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f610395610494565b604080516001600160a01b03928316815291841660208301528051918290030190a161023581610525565b60006103ca610494565b6001600160a01b0316336001600160a01b031614156102fe576102f7610494565b6103f3610494565b6001600160a01b0316336001600160a01b031614156104435760405162461bcd60e51b815260040180806020018281038252604281526020018061081c6042913960600191505060405180910390fd5b6101f96101f9565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e80801561048f573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6104c281610549565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061051e8383604051806060016040528060278152602001610799602791396105b1565b9392505050565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b610552816106b4565b61058d5760405162461bcd60e51b81526004018080602001828103825260368152602001806107c06036913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b60606105bc846106b4565b6105f75760405162461bcd60e51b81526004018080602001828103825260268152602001806107f66026913960400191505060405180910390fd5b60006060856001600160a01b0316856040518082805190602001908083835b602083106106355780518252601f199092019160209182019101610616565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610695576040519150601f19603f3d011682016040523d82523d6000602084013e61069a565b606091505b50915091506106aa8282866106ba565b9695505050505050565b3b151590565b606083156106c957508161051e565b8251156106d95782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561072357818101518382015260200161070b565b50505050905090810190601f1680156107505780820380516001836020036101000a031916815260200191505b509250505060405180910390fdfe5472616e73706172656e745570677261646561626c6550726f78793a206e65772061646d696e20697320746865207a65726f2061646472657373416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65645570677261646561626c6550726f78793a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e74726163745472616e73706172656e745570677261646561626c6550726f78793a2061646d696e2063616e6e6f742066616c6c6261636b20746f2070726f787920746172676574a2646970667358221220323f58d8baa4ca56a95e412c3f1a97dc51323bbf259076aa2fa033af01badf1064736f6c63430006020033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65645570677261646561626c6550726f78793a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e747261637400000000000000000000000079728b72841aa4fc569566fd3bcf8f4feca9f28800000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000

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

00000000000000000000000079728b72841aa4fc569566fd3bcf8f4feca9f28800000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _implementation (address): 0x79728b72841aa4fc569566fd3bcf8f4feca9f288
Arg [1] : _data (bytes): 0x

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000079728b72841aa4fc569566fd3bcf8f4feca9f288
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

23252:488:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5467:11;:9;:11::i;:::-;23252:488;;5235:11;:9;:11::i;23535:106::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23535:106:0;;;:::i;:::-;;;;-1:-1:-1;;;;;23535:106:0;;;;;;;;;;;;;;21508:119;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21508:119:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21508:119:0;-1:-1:-1;;;;;21508:119:0;;:::i;23649:88::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23649:88:0;;;:::i;22012:219::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;22012:219:0;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;22012:219:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;22012:219:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;22012:219:0;;-1:-1:-1;22012:219:0;-1:-1:-1;22012:219:0;:::i;20742:131::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20742:131:0;;;:::i;21087:254::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21087:254:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21087:254:0;-1:-1:-1;;;;;21087:254:0;;:::i;20176:95::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20176:95:0;;;:::i;4871:113::-;4920:17;:15;:17::i;:::-;4948:28;4958:17;:15;:17::i;:::-;4948:9;:28::i;:::-;4871:113::o;23535:106::-;23589:7;23616:17;:15;:17::i;:::-;23609:24;;23535:106;;:::o;21508:119::-;19634:8;:6;:8::i;:::-;-1:-1:-1;;;;;19620:22:0;:10;-1:-1:-1;;;;;19620:22:0;;19616:100;;;21590:29:::1;21601:17;21590:10;:29::i;:::-;19616:100:::0;;;19693:11;:9;:11::i;:::-;21508:119;:::o;23649:88::-;23694:7;23721:8;:6;:8::i;22012:219::-;19634:8;:6;:8::i;:::-;-1:-1:-1;;;;;19620:22:0;:10;-1:-1:-1;;;;;19620:22:0;;19616:100;;;22130:29:::1;22141:17;22130:10;:29::i;:::-;22170:53;22199:17;22218:4;;22170:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;22170:28:0::1;::::0;-1:-1:-1;;;22170:53:0:i:1;:::-;;19616:100:::0;;;19693:11;:9;:11::i;:::-;22012:219;;;:::o;20742:131::-;20794:23;19634:8;:6;:8::i;:::-;-1:-1:-1;;;;;19620:22:0;:10;-1:-1:-1;;;;;19620:22:0;;19616:100;;;20848:17:::1;:15;:17::i;:::-;20830:35;;19616:100:::0;;;19693:11;:9;:11::i;21087:254::-;19634:8;:6;:8::i;:::-;-1:-1:-1;;;;;19620:22:0;:10;-1:-1:-1;;;;;19620:22:0;;19616:100;;;-1:-1:-1;;;;;21170:22:0;::::1;21162:93;;;;-1:-1:-1::0;;;21162:93:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21271:32;21284:8;:6;:8::i;:::-;21271:32;::::0;;-1:-1:-1;;;;;21271:32:0;;::::1;::::0;;;;::::1;;::::0;::::1;::::0;;;;;;;;;::::1;21314:19;21324:8;21314:9;:19::i;20176:95::-:0;20219:14;19634:8;:6;:8::i;:::-;-1:-1:-1;;;;;19620:22:0;:10;-1:-1:-1;;;;;19620:22:0;;19616:100;;;20255:8:::1;:6;:8::i;22953:207::-:0;23039:8;:6;:8::i;:::-;-1:-1:-1;;;;;23025:22:0;:10;-1:-1:-1;;;;;23025:22:0;;;23017:101;;;;-1:-1:-1;;;23017:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23129:23;:21;:23::i;15826:256::-;15676:66;16053:11;;16030:45::o;3464:915::-;3864:14;3861:1;3858;3845:34;4082:1;4079;4063:14;4060:1;4044:14;4037:5;4024:60;4161:16;4158:1;4155;4140:38;4201:6;4270:38;;;;4342:16;4339:1;4332:27;4270:38;4289:16;4286:1;4279:27;22297:227;19373:66;22495:11;;22473:44::o;16208:163::-;16283:37;16302:17;16283:18;:37::i;:::-;16336:27;;-1:-1:-1;;;;;16336:27:0;;;;;;;;16208:163;:::o;12324:200::-;12407:12;12439:77;12460:6;12468:4;12439:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;12432:84;12324:200;-1:-1:-1;;;12324:200:0:o;22611:216::-;19373:66;22787:22;22772:48::o;16467:369::-;16549:37;16568:17;16549:18;:37::i;:::-;16541:104;;;;-1:-1:-1;;;16541:104:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15676:66;16787:31;16772:57::o;12718:423::-;12829:12;12862:18;12873:6;12862:10;:18::i;:::-;12854:69;;;;-1:-1:-1;;;12854:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12997:12;13011:23;13038:6;-1:-1:-1;;;;;13038:19:0;13058:4;13038:25;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;13038:25:0;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;12996:67:0;;;;13081:52;13099:7;13108:10;13120:12;13081:17;:52::i;:::-;13074:59;12718:423;-1:-1:-1;;;;;;12718:423:0:o;6639:422::-;7006:20;7045:8;;;6639:422::o;13149:742::-;13264:12;13293:7;13289:595;;;-1:-1:-1;13324:10:0;13317:17;;13289:595;13438:17;;:21;13434:439;;13701:10;13695:17;13762:15;13749:10;13745:2;13741:19;13734:44;13649:148;13844:12;13837:20;;-1:-1:-1;;;13837:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;13837:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Swarm Source

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