Contract 0x70c575588b98c1f46b1382c706adaf398a874e3e 2

 
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xe82643f506a3154ec210b4cd769a8dd908e9bed9f1a7bcfa39e6662aa04db736Run Adventure VR...285522892022-05-20 14:57:417 mins ago0x5fd36a4a4bcfe5ea059706a6a09c26b62be4059a IN  0x70c575588b98c1f46b1382c706adaf398a874e3e0 MATIC0.0400751883 192.15
0x96b125821f93ea7b22285a64ac89d48937405b741fe98809f031f466fd80ba26Run Adventure VR...285522892022-05-20 14:57:417 mins ago0x5fd36a4a4bcfe5ea059706a6a09c26b62be4059a IN  0x70c575588b98c1f46b1382c706adaf398a874e3e0 MATIC0.0421826895 192.15
0x86da014d5b891d5fb5914df003679306283c44c7fa1e291fc1ec94e9810a8911Run Adventure VR...285522862022-05-20 14:57:298 mins ago0x5fd36a4a4bcfe5ea059706a6a09c26b62be4059a IN  0x70c575588b98c1f46b1382c706adaf398a874e3e0 MATIC0.0421826895 192.15
0x552dd755093e4fbf71d0c14106409fb730484b7b2be6b1c29534c81d70d42a8fRun Adventure VR...285522852022-05-20 14:57:258 mins ago0x5fd36a4a4bcfe5ea059706a6a09c26b62be4059a IN  0x70c575588b98c1f46b1382c706adaf398a874e3e0 MATIC0.0421826895 192.15
0x62b3efc33098aeba78a5a08dab04886886d6daf1a31bf6b9ff4a77d69210bbe1Run Adventure VR...285522842022-05-20 14:57:218 mins ago0x5fd36a4a4bcfe5ea059706a6a09c26b62be4059a IN  0x70c575588b98c1f46b1382c706adaf398a874e3e0 MATIC0.0421826895 192.15
0x047f5a7fdf8f952f0f6a9809925482a0610b19555db205dc491f2a7b4a4f5efdRun Adventure VR...285522832022-05-20 14:57:178 mins ago0x5fd36a4a4bcfe5ea059706a6a09c26b62be4059a IN  0x70c575588b98c1f46b1382c706adaf398a874e3e0 MATIC0.0421826895 192.15
0x2d2303a1a126f2c355add3e56e44404cc0646cb59a56f211e8be46e4cf89c338Run Adventure VR...285522822022-05-20 14:57:138 mins ago0x5fd36a4a4bcfe5ea059706a6a09c26b62be4059a IN  0x70c575588b98c1f46b1382c706adaf398a874e3e0 MATIC0.0421826895 192.15
0x8cb48ac27f69a4da526c88819331403adc40761cb8cf4b51c508be31f1c9127dRun Adventure VR...285522812022-05-20 14:57:098 mins ago0x5fd36a4a4bcfe5ea059706a6a09c26b62be4059a IN  0x70c575588b98c1f46b1382c706adaf398a874e3e0 MATIC0.0400751883 192.15
0xfaa9d8cf2bdaef799426f8ef30e5ae8d991a2bb9830f669fa6a7c1d34b553e92Run Adventure VR...285522812022-05-20 14:57:098 mins ago0x5fd36a4a4bcfe5ea059706a6a09c26b62be4059a IN  0x70c575588b98c1f46b1382c706adaf398a874e3e0 MATIC0.0421826895 192.15
0xa34c15cece2ad72538bb8615a37d9ff60020c23cbe04b5d6627034c2d5644610Run Adventure VR...285522802022-05-20 14:57:058 mins ago0x5fd36a4a4bcfe5ea059706a6a09c26b62be4059a IN  0x70c575588b98c1f46b1382c706adaf398a874e3e0 MATIC0.0421826895 192.15
0x5b31f736c1a0692cb86efba3f310931dd848bf2f1877489861b7000d2d80a986Claim Nana285522562022-05-20 14:55:2910 mins ago0x2c93301f07f6adf7d6d9b6c5fbb5c25d21950c09 IN  0x70c575588b98c1f46b1382c706adaf398a874e3e0 MATIC0.00586884178 96.441347828
0x4cbd8d40e767cecabfca8a3f403d88206a9ecaf97cf8224c8c141f4da986d24dRun Adventure VR...285522552022-05-20 14:55:2110 mins ago0xd0d5024e6d5386da1c13ba30ace7790cf81f4ad2 IN  0x70c575588b98c1f46b1382c706adaf398a874e3e0 MATIC0.017594295962 107.137265182
0x9c2e287e5e1b6efd28a8e3b2eb37a9fbda6e478b99864f13141f75f51e96651dRun Adventure VR...285522402022-05-20 14:54:5110 mins ago0x5fd36a4a4bcfe5ea059706a6a09c26b62be4059a IN  0x70c575588b98c1f46b1382c706adaf398a874e3e0 MATIC0.01122756581 67.005041748
0xda9424f994a7529063b8938637b513e583de5737e5f8e5dd8f9dba85cd07f5e7Run Adventure VR...285522312022-05-20 14:54:3310 mins ago0x5fd36a4a4bcfe5ea059706a6a09c26b62be4059a IN  0x70c575588b98c1f46b1382c706adaf398a874e3e0 MATIC0.023931203979 109.01108723
0xa0d7799aae03a8a0623610df98626264c6363529afee688aa2c009bb8a553432Run Adventure VR...285522302022-05-20 14:54:3111 mins ago0xd8019456795d3d0da777ccf0d6e6d9d44bf43f0d IN  0x70c575588b98c1f46b1382c706adaf398a874e3e0 MATIC0.023002969594 98.035576329
0x705358476a939a5cbae29a0bbbd7cbe6d527ecf1f6e268398fd8f07b1c20d8e0Run Adventure VR...285522152022-05-20 14:54:0111 mins ago0x5fd36a4a4bcfe5ea059706a6a09c26b62be4059a IN  0x70c575588b98c1f46b1382c706adaf398a874e3e0 MATIC0.025736983033 117.236746839
0xd65adc7148418011a5266889b68cf709e77d8a0f598ad6cc5f8ec901d1e27424Run Adventure VR...285522012022-05-20 14:53:3311 mins ago0x5fd36a4a4bcfe5ea059706a6a09c26b62be4059a IN  0x70c575588b98c1f46b1382c706adaf398a874e3e0 MATIC0.028183541752 128.38127706
0xc53517497d18f7039eb70429c3f1ca85469c0d0934ce25661ce94b14a2c32526Run Adventure VR...285521932022-05-20 14:53:1712 mins ago0xd8019456795d3d0da777ccf0d6e6d9d44bf43f0d IN  0x70c575588b98c1f46b1382c706adaf398a874e3e0 MATIC0.027488425573 117.151989111
0x3268553cdce5c85d28b5b7dccd5e0396b283340269d7255fa106e03b5bce408aRun Adventure VR...285521912022-05-20 14:53:0912 mins ago0xbb7c4e59705a52ea30cef27568aed928479ae410 IN  0x70c575588b98c1f46b1382c706adaf398a874e3e0 MATIC0.030077454187 128.186082396
0xf607599e71768e10d17e736a23e4a2f6b957cfd541d80208a6bef0cea3416a0fRun Adventure VR...285521552022-05-20 14:51:5713 mins ago0x2c93301f07f6adf7d6d9b6c5fbb5c25d21950c09 IN  0x70c575588b98c1f46b1382c706adaf398a874e3e0 MATIC0.013072643926 63.099828776
0xc0d4250e013bb48eae61609a12189dfca10ca140e2321ab1f6688a27d577aacaRun Adventure VR...285521382022-05-20 14:51:2314 mins ago0x5fd36a4a4bcfe5ea059706a6a09c26b62be4059a IN  0x70c575588b98c1f46b1382c706adaf398a874e3e0 MATIC0.011858170823 54.016174664
0xdf4de1c86d20851000b36237fd645803cb52656b5c66e1b658a8aa5da9dccddeRun Adventure VR...285521342022-05-20 14:51:1514 mins ago0x5fd36a4a4bcfe5ea059706a6a09c26b62be4059a IN  0x70c575588b98c1f46b1382c706adaf398a874e3e0 MATIC0.011858170823 54.016174664
0x7c2cf06f44d122d96dfd2239bdc1cd394e2dae984ea708da3dd017ab9d5b1d6dRun Adventure VR...285521332022-05-20 14:51:1314 mins ago0x5fd36a4a4bcfe5ea059706a6a09c26b62be4059a IN  0x70c575588b98c1f46b1382c706adaf398a874e3e0 MATIC0.011858170823 54.016174664
0xbb9f082c6ae94a02a082bb25ca50ae66f6b9e0d1869cdb0e52ee4137be198734Run Adventure VR...285521312022-05-20 14:51:0914 mins ago0x5fd36a4a4bcfe5ea059706a6a09c26b62be4059a IN  0x70c575588b98c1f46b1382c706adaf398a874e3e0 MATIC0.011858170823 54.016174664
0x1c9294d4072d06013a1225a8443229bbf2835878906b64bea52674638469c305Run Adventure VR...285521292022-05-20 14:51:0514 mins ago0x5fd36a4a4bcfe5ea059706a6a09c26b62be4059a IN  0x70c575588b98c1f46b1382c706adaf398a874e3e0 MATIC0.011858170823 54.016174664
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
KongProxy

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at polygonscan.com on 2022-03-11
*/

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);
            }
        }
    }
}

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 {
    }
}

pragma solidity ^0.6.0;

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)
        }
    }
}

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();
    }
}

pragma solidity ^0.6.12;

contract KongProxy is TransparentUpgradeableProxy {
        constructor(address _logic, address _admin, bytes memory _data) public  TransparentUpgradeableProxy(_logic, _admin, _data) {}
}

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

608060405234801561001057600080fd5b506040516108ef3803806108ef8339818101604052606081101561003357600080fd5b8151602083015160408085018051915193959294830192918464010000000082111561005e57600080fd5b90830190602082018581111561007357600080fd5b825164010000000081118282018810171561008d57600080fd5b82525081516020918201929091019080838360005b838110156100ba5781810151838201526020016100a2565b50505050905090810190601f1680156100e75780820380516001836020036101000a031916815260200191505b50604052508491508390508282816100fe826101d2565b8051156101b6576000826001600160a01b0316826040518082805190602001908083835b602083106101415780518252601f199092019160209182019101610122565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146101a1576040519150601f19603f3d011682016040523d82523d6000602084013e6101a6565b606091505b50509050806101b457600080fd5b505b506101be9050565b6101c782610244565b50505050505061026e565b6101e58161026860201b6103b41760201c565b6102205760405162461bcd60e51b81526004018080602001828103825260368152602001806108b96036913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b3b151590565b61063c8061027d6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100985780635c60da1b146101185780638f28397014610149578063f851a4401461017c5761005d565b3661005d5761005b610191565b005b61005b610191565b34801561007157600080fd5b5061005b6004803603602081101561008857600080fd5b50356001600160a01b03166101ab565b61005b600480360360408110156100ae57600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100d957600080fd5b8201836020820111156100eb57600080fd5b8035906020019184600183028401116401000000008311171561010d57600080fd5b5090925090506101e5565b34801561012457600080fd5b5061012d610292565b604080516001600160a01b039092168252519081900360200190f35b34801561015557600080fd5b5061005b6004803603602081101561016c57600080fd5b50356001600160a01b03166102cf565b34801561018857600080fd5b5061012d610389565b6101996103ba565b6101a96101a461041a565b61043f565b565b6101b3610463565b6001600160a01b0316336001600160a01b031614156101da576101d581610488565b6101e2565b6101e2610191565b50565b6101ed610463565b6001600160a01b0316336001600160a01b031614156102855761020f83610488565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d806000811461026c576040519150601f19603f3d011682016040523d82523d6000602084013e610271565b606091505b505090508061027f57600080fd5b5061028d565b61028d610191565b505050565b600061029c610463565b6001600160a01b0316336001600160a01b031614156102c4576102bd61041a565b90506102cc565b6102cc610191565b90565b6102d7610463565b6001600160a01b0316336001600160a01b031614156101da576001600160a01b0381166103355760405162461bcd60e51b815260040180806020018281038252603a815260200180610555603a913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61035e610463565b604080516001600160a01b03928316815291841660208301528051918290030190a16101d5816104c8565b6000610393610463565b6001600160a01b0316336001600160a01b031614156102c4576102bd610463565b3b151590565b6103c2610463565b6001600160a01b0316336001600160a01b031614156104125760405162461bcd60e51b81526004018080602001828103825260428152602001806105c56042913960600191505060405180910390fd5b6101a96101a9565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e80801561045e573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b610491816104ec565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b6104f5816103b4565b6105305760405162461bcd60e51b815260040180806020018281038252603681526020018061058f6036913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5556fe5472616e73706172656e745570677261646561626c6550726f78793a206e65772061646d696e20697320746865207a65726f20616464726573735570677261646561626c6550726f78793a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e74726163745472616e73706172656e745570677261646561626c6550726f78793a2061646d696e2063616e6e6f742066616c6c6261636b20746f2070726f787920746172676574a264697066735822122002b07a9ed3383bb085b75fa3137a96b2cd213da784a5a1a672971340151805de64736f6c634300060c00335570677261646561626c6550726f78793a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374000000000000000000000000f72459056c3440d846f47e8a24d79e1531104e8e00000000000000000000000087219abc9109c43165e85801e4dc3d80cd3f88da00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000104525240c0000000000000000000000000bc91347e80886453f3f8bbd6d7ac07c122d8773500000000000000000000000005df72d911e52ab122f7d9955728bc96a718782c0000000000000000000000007cbccc4a1576d7a05eb6f6286206596bcbee14ac000000000000000000000000c527fa7e0a5d8d66a6121239df7b838d1a454db70000000000000000000000001421b4337ce370a389cf4e45a6b870487574006e000000000000000000000000ae975071be8f8ee67addbc1a82488f1c24858067000000000000000000000000b0897686c545045afc77cf20ec7a532e3120e0f1000000000000000000000000000000048797808be86aa9786c1f402671192d6b00000000000000000000000000000000000000000000000000000000

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

000000000000000000000000f72459056c3440d846f47e8a24d79e1531104e8e00000000000000000000000087219abc9109c43165e85801e4dc3d80cd3f88da00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000104525240c0000000000000000000000000bc91347e80886453f3f8bbd6d7ac07c122d8773500000000000000000000000005df72d911e52ab122f7d9955728bc96a718782c0000000000000000000000007cbccc4a1576d7a05eb6f6286206596bcbee14ac000000000000000000000000c527fa7e0a5d8d66a6121239df7b838d1a454db70000000000000000000000001421b4337ce370a389cf4e45a6b870487574006e000000000000000000000000ae975071be8f8ee67addbc1a82488f1c24858067000000000000000000000000b0897686c545045afc77cf20ec7a532e3120e0f1000000000000000000000000000000048797808be86aa9786c1f402671192d6b00000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _logic (address): 0xf72459056c3440d846f47e8a24d79e1531104e8e
Arg [1] : _admin (address): 0x87219abc9109c43165e85801e4dc3d80cd3f88da
Arg [2] : _data (bytes): 0x525240c0000000000000000000000000bc91347e80886453f3f8bbd6d7ac07c122d8773500000000000000000000000005df72d911e52ab122f7d9955728bc96a718782c0000000000000000000000007cbccc4a1576d7a05eb6f6286206596bcbee14ac000000000000000000000000c527fa7e0a5d8d66a6121239df7b838d1a454db70000000000000000000000001421b4337ce370a389cf4e45a6b870487574006e000000000000000000000000ae975071be8f8ee67addbc1a82488f1c24858067000000000000000000000000b0897686c545045afc77cf20ec7a532e3120e0f1000000000000000000000000000000048797808be86aa9786c1f402671192d6b

-----Encoded View---------------
13 Constructor Arguments found :
Arg [0] : 000000000000000000000000f72459056c3440d846f47e8a24d79e1531104e8e
Arg [1] : 00000000000000000000000087219abc9109c43165e85801e4dc3d80cd3f88da
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000104
Arg [4] : 525240c0000000000000000000000000bc91347e80886453f3f8bbd6d7ac07c1
Arg [5] : 22d8773500000000000000000000000005df72d911e52ab122f7d9955728bc96
Arg [6] : a718782c0000000000000000000000007cbccc4a1576d7a05eb6f6286206596b
Arg [7] : cbee14ac000000000000000000000000c527fa7e0a5d8d66a6121239df7b838d
Arg [8] : 1a454db70000000000000000000000001421b4337ce370a389cf4e45a6b87048
Arg [9] : 7574006e000000000000000000000000ae975071be8f8ee67addbc1a82488f1c
Arg [10] : 24858067000000000000000000000000b0897686c545045afc77cf20ec7a532e
Arg [11] : 3120e0f1000000000000000000000000000000048797808be86aa9786c1f4026
Arg [12] : 71192d6b00000000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

17854:189:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8832:11;:9;:11::i;:::-;17854:189;;8608:11;:9;:11::i;16102:111::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16102:111:0;-1:-1:-1;;;;;16102:111:0;;:::i;16599:299::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16599:299:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16599:299:0;;-1:-1:-1;16599:299:0;-1:-1:-1;16599:299:0;:::i;15368:104::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;15368:104:0;;;;;;;;;;;;;;15688:246;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15688:246:0;-1:-1:-1;;;;;15688:246:0;;:::i;14809:86::-;;;;;;;;;;;;;:::i;8260:105::-;8301:17;:15;:17::i;:::-;8329:28;8339:17;:15;:17::i;:::-;8329:9;:28::i;:::-;8260:105::o;16102:111::-;14265:8;:6;:8::i;:::-;-1:-1:-1;;;;;14251:22:0;:10;-1:-1:-1;;;;;14251:22:0;;14247:100;;;16176:29:::1;16187:17;16176:10;:29::i;:::-;14247:100:::0;;;14324:11;:9;:11::i;:::-;16102:111;:::o;16599:299::-;14265:8;:6;:8::i;:::-;-1:-1:-1;;;;;14251:22:0;:10;-1:-1:-1;;;;;14251:22:0;;14247:100;;;16709:29:::1;16720:17;16709:10;:29::i;:::-;16810:12;16827:17;-1:-1:-1::0;;;;;16827:30:0::1;16858:4;;16827:36;;;;;;;;;;::::0;;::::1;::::0;-1:-1:-1;16827:36:0::1;::::0;-1:-1:-1;16827:36:0;;-1:-1:-1;;16827:36:0;;::::1;::::0;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16809:54;;;16882:7;16874:16;;;::::0;::::1;;14290:1;14247:100:::0;;;14324:11;:9;:11::i;:::-;16599:299;;;:::o;15368:104::-;15420:7;14265:8;:6;:8::i;:::-;-1:-1:-1;;;;;14251:22:0;:10;-1:-1:-1;;;;;14251:22:0;;14247:100;;;15447:17:::1;:15;:17::i;:::-;15440:24;;14247:100:::0;;;14324:11;:9;:11::i;:::-;15368:104;:::o;15688:246::-;14265:8;:6;:8::i;:::-;-1:-1:-1;;;;;14251:22:0;:10;-1:-1:-1;;;;;14251:22:0;;14247:100;;;-1:-1:-1;;;;;15763:22:0;::::1;15755:93;;;;-1:-1:-1::0;;;15755:93:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15864:32;15877:8;:6;:8::i;:::-;15864:32;::::0;;-1:-1:-1;;;;;15864:32:0;;::::1;::::0;;;;::::1;;::::0;::::1;::::0;;;;;;;;;::::1;15907:19;15917:8;15907:9;:19::i;14809:86::-:0;14852:7;14265:8;:6;:8::i;:::-;-1:-1:-1;;;;;14251:22:0;:10;-1:-1:-1;;;;;14251:22:0;;14247:100;;;14879:8:::1;:6;:8::i;708:422::-:0;1075:20;1114:8;;;708:422::o;17612:207::-;17698:8;:6;:8::i;:::-;-1:-1:-1;;;;;17684:22:0;:10;-1:-1:-1;;;;;17684:22:0;;;17676:101;;;;-1:-1:-1;;;17676:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17788:23;:21;:23::i;10588:248::-;10438:66;10807:11;;10784:45::o;6860:907::-;7252:14;7249:1;7246;7233:34;7470:1;7467;7451:14;7448:1;7432:14;7425:5;7412:60;7549:16;7546:1;7543;7528:38;7589:6;7658:38;;;;7730:16;7727:1;7720:27;7658:38;7677:16;7674:1;7667:27;16964:219;14004:66;17154:11;;17132:44::o;10963:155::-;11030:37;11049:17;11030:18;:37::i;:::-;11083:27;;-1:-1:-1;;;;;11083:27:0;;;;;;;;10963:155;:::o;17270:216::-;14004:66;17446:22;17431:48::o;11214:369::-;11296:37;11315:17;11296:18;:37::i;:::-;11288:104;;;;-1:-1:-1;;;11288:104:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10438:66;11534:31;11519:57::o

Swarm Source

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