Contract 0x9983d8cdeaf7872501628229d311e2f7df396add 10

 

Contract Overview

Balance:
4,100.28407820082261032 MATIC

MATIC Value:
$4,596.42 (@ $1.12/MATIC)

Token:
 
Txn Hash
Method
Block
From
To
Value [Txn Fee]
0x96dde37362505413091d8e650cf455a764daf99bbedf4352c65d60c2e558ca45Withdraw409260092023-03-30 4:41:4319 mins ago0xcd4a15841a4906ff78d3f2aa8e55936f1a7ae4a5 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 MATIC0.0220676200
0x581aafb43c9427311c4b751114c38b62c5f06b24b63695d9a52ec5a7a563427cDeposit409259202023-03-30 4:38:3523 mins ago0x3cf9c3c4954a27a6ae4a7b62e9475d30c7bc1fab IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 MATIC0.00592675615 89.762614544
0x29ecac95a5c49709481bd2ffb70cd2ad420393cbc13aa1d382e0ad0fdf0e4775Deposit409247542023-03-30 3:54:051 hr 7 mins ago0x9c1c30bb1064bafd4042a02363a1b56ff0087af6 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 MATIC0.008100402731114.388233157
0xa0f1ff7c9c915822a959d98a946f27c063b7438cbe0ddcd1daeaeb7f840b61cdDeposit409242152023-03-30 3:33:551 hr 27 mins ago0x5c58139c5955cb066d632296dd215ec0a21f3ff2 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 MATIC0.008453228384 128.026843328
0x803425985787fde86de99e0649a5ce0f62146f719a63ec07180556036280715cDeposit409241812023-03-30 3:32:431 hr 28 mins ago0x5c58139c5955cb066d632296dd215ec0a21f3ff2 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 MATIC0.00888833795 125.514904331
0x28a0171287f09b2e6ed9775a30930b5a18603eb3ab1a1f73de235e26de413b00Deposit409241542023-03-30 3:31:451 hr 29 mins ago0x5c58139c5955cb066d632296dd215ec0a21f3ff2 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 MATIC0.009975739241 140.846559103
0xb41b618193ec52bcc81e73c5568dce231cea55d34f9fa5c12cec4832a7d9ec81Deposit409229072023-03-30 2:43:132 hrs 18 mins ago0x9c1c30bb1064bafd4042a02363a1b56ff0087af6 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 MATIC0.010651839188 150.417837868
0xf87246818ed6c844ec4289f84a354f76d0c59c9aff4e732a9d8758791fb9789fDeposit409225502023-03-30 2:30:352 hrs 31 mins ago0x25ca44ec2761d430841139783f339eb10dfe1dde IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 MATIC0.011645339535 172.515881306
0x5d7cdb8bbee792cc68f7352a3d851eeac637ebb91225904658f2d68b20e0feb1Deposit409224162023-03-30 2:24:472 hrs 36 mins ago0x9c1c30bb1064bafd4042a02363a1b56ff0087af6 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 MATIC0.013165799544 185.918231227
0xbec77cdd85c5f7416dfdddef9e7505eb762cb393aa06109a49cf2bf562026a5aDeposit409205832023-03-30 1:17:003 hrs 44 mins ago0x4002a3f9e547aa7fe7bbc381ae4798043ff1e709 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 MATIC0.007811925747 101.302285519
0xe99c712c5bb59683c2299516e79648b1cd0848debd822528b7185431ef8ed4aeDeposit409179262023-03-29 23:38:305 hrs 23 mins ago0xf9b23735dbb461e3f2584ef74182c0fe40a9f6be IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 MATIC0.010751519602 148.676202759
0x0dec2644ebcffcd3cebffab6f068d4a5bcef6b3df77c21497fd7f7c17b12c1f9Withdraw409177892023-03-29 23:32:495 hrs 28 mins ago0xcd4a15841a4906ff78d3f2aa8e55936f1a7ae4a5 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 MATIC0.0210892200
0x0f0d835b058d11aff8c7f4578c822a9a9d8857f886d5203607d47c51d88f3dadDeposit409168662023-03-29 22:58:506 hrs 2 mins ago0x1b6e983450df25d1d94353a2e676df6b4e129757 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 MATIC0.008435181897 127.776746152
0x401ccc8f38caef6ac629e9145e1d7442f258f90a15de2028152415479c7b51d5Withdraw409166082023-03-29 22:49:106 hrs 12 mins ago0xcd4a15841a4906ff78d3f2aa8e55936f1a7ae4a5 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 MATIC0.023308200
0xdd070a57b1206819bb20f294a5a26cb5292ec3c47f22c199b3f30ba2fbc14f9eWithdraw409165512023-03-29 22:47:086 hrs 14 mins ago0xcd4a15841a4906ff78d3f2aa8e55936f1a7ae4a5 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 MATIC0.01865200
0x5902c14138c20b585bc402797e862ca76e287c3888156d07ae8914d3fbbe6e9dWithdraw409164962023-03-29 22:45:126 hrs 16 mins ago0xcd4a15841a4906ff78d3f2aa8e55936f1a7ae4a5 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 MATIC0.01865200
0x63c2091acaa65ecb89486a0e35725ce96796e9471cbf0f3857ba5bed424c1b72Withdraw409153462023-03-29 22:02:276 hrs 59 mins ago0xcd4a15841a4906ff78d3f2aa8e55936f1a7ae4a5 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 MATIC0.02611144452213.095504269
0xb22877ef110881cbf179d4efebb9a84e13d6321cfc546d665a24f87165ac6a78Withdraw409137282023-03-29 21:03:447 hrs 57 mins ago0xcd4a15841a4906ff78d3f2aa8e55936f1a7ae4a5 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 MATIC0.0220724200
0x77d86d2f20928a5eca71a026eed6d8cc853d4a3be7dbba689c14bbbc17cab69dDeposit409134992023-03-29 20:55:328 hrs 6 mins ago0x14e5d98676f89522e810e89cf419beccd73d8254 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 MATIC0.007856507011 118.989307575
0xb5dce649a4e0343bbe8fff710be0fab40d10104e1f6ac26af6bc7d2438ff33a0Deposit409134662023-03-29 20:54:228 hrs 7 mins ago0x503b2a5b51374d39070bcfd35fafed44311eb730 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 MATIC0.007892756688 128.909740616
0x77df39546a6f476b6a2d5baf6fecefb96418055ddb12e14653ddad3e5637159aWithdraw409133972023-03-29 20:51:248 hrs 10 mins ago0xcd4a15841a4906ff78d3f2aa8e55936f1a7ae4a5 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 MATIC0.019888200
0x2b832b4f5a875e1744f90b6cf80aa446957d6ef2463e22337c68f51efc4c7f95Withdraw409133342023-03-29 20:48:388 hrs 12 mins ago0xcd4a15841a4906ff78d3f2aa8e55936f1a7ae4a5 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 MATIC0.0198856200
0x9995ce27ecec14c0b33cd982c78debbc76b0381f84c74e57d252543ad84afcf5Withdraw409133132023-03-29 20:47:548 hrs 13 mins ago0xcd4a15841a4906ff78d3f2aa8e55936f1a7ae4a5 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 MATIC0.0198856200
0x6cc3bf4d069b6265ef064d8baa5c9614431441215d8b6d2d07dd52ba3b9e4cdaWithdraw409132502023-03-29 20:45:408 hrs 15 mins ago0xcd4a15841a4906ff78d3f2aa8e55936f1a7ae4a5 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 MATIC0.023308200
0x7e94074efc44dab5f981bcae0fcc3962d0c69e8c0956756a9742996c21694451Deposit409128652023-03-29 20:31:328 hrs 30 mins ago0x3cf9c3c4954a27a6ae4a7b62e9475d30c7bc1fab IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 MATIC0.009242783079 139.984901326
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x96dde37362505413091d8e650cf455a764daf99bbedf4352c65d60c2e558ca45409260092023-03-30 4:41:4319 mins ago 0x9983d8cdeaf7872501628229d311e2f7df396add0xecb281d1b1293dded216223c465af4a854f26f390.02 MATIC
0x0dec2644ebcffcd3cebffab6f068d4a5bcef6b3df77c21497fd7f7c17b12c1f9409177892023-03-29 23:32:495 hrs 28 mins ago 0x9983d8cdeaf7872501628229d311e2f7df396add0xf9b23735dbb461e3f2584ef74182c0fe40a9f6be0.02 MATIC
0x401ccc8f38caef6ac629e9145e1d7442f258f90a15de2028152415479c7b51d5409166082023-03-29 22:49:106 hrs 12 mins ago 0x9983d8cdeaf7872501628229d311e2f7df396add0x1f2a3042fcdb20424b2a8a5043965033965de7cd0.02 MATIC
0xdd070a57b1206819bb20f294a5a26cb5292ec3c47f22c199b3f30ba2fbc14f9e409165512023-03-29 22:47:086 hrs 14 mins ago 0x9983d8cdeaf7872501628229d311e2f7df396add0x1107bb9d41104424846fc050ff53373809c252f30.02 MATIC
0x5902c14138c20b585bc402797e862ca76e287c3888156d07ae8914d3fbbe6e9d409164962023-03-29 22:45:126 hrs 16 mins ago 0x9983d8cdeaf7872501628229d311e2f7df396add0x1107bb9d41104424846fc050ff53373809c252f30.02 MATIC
0x63c2091acaa65ecb89486a0e35725ce96796e9471cbf0f3857ba5bed424c1b72409153462023-03-29 22:02:276 hrs 59 mins ago 0x9983d8cdeaf7872501628229d311e2f7df396add0x1f585a0861376754fed91c4c59d77394c6c55dfe0.02 MATIC
0xb22877ef110881cbf179d4efebb9a84e13d6321cfc546d665a24f87165ac6a78409137282023-03-29 21:03:447 hrs 57 mins ago 0x9983d8cdeaf7872501628229d311e2f7df396add0x4f7590824b8156fa0975e401347609339bc615820.02 MATIC
0x77df39546a6f476b6a2d5baf6fecefb96418055ddb12e14653ddad3e5637159a409133972023-03-29 20:51:248 hrs 10 mins ago 0x9983d8cdeaf7872501628229d311e2f7df396add0xad8054d4922c24523f02b2cd04798cff88fbfa330.02 MATIC
0x2b832b4f5a875e1744f90b6cf80aa446957d6ef2463e22337c68f51efc4c7f95409133342023-03-29 20:48:388 hrs 12 mins ago 0x9983d8cdeaf7872501628229d311e2f7df396add0xad8054d4922c24523f02b2cd04798cff88fbfa330.02 MATIC
0x9995ce27ecec14c0b33cd982c78debbc76b0381f84c74e57d252543ad84afcf5409133132023-03-29 20:47:548 hrs 13 mins ago 0x9983d8cdeaf7872501628229d311e2f7df396add0x503b2a5b51374d39070bcfd35fafed44311eb7300.02 MATIC
0x6cc3bf4d069b6265ef064d8baa5c9614431441215d8b6d2d07dd52ba3b9e4cda409132502023-03-29 20:45:408 hrs 15 mins ago 0x9983d8cdeaf7872501628229d311e2f7df396add0xad8054d4922c24523f02b2cd04798cff88fbfa330.02 MATIC
0x974be3344859a14d57bc8fff3a5a918246d7097be21a03099799dcd866f49473409118092023-03-29 19:52:439 hrs 8 mins ago 0x9983d8cdeaf7872501628229d311e2f7df396add0x48752fb0390581188ddfcbaa1f0a6a0c237824330.02 MATIC
0xe28984c43033428fb181bb8815874d75a39f2f893663870fe5dc85e68037c27c409087272023-03-29 18:01:1311 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add0xecb281d1b1293dded216223c465af4a854f26f390.02 MATIC
0xaef33c40ef8b61dfe91ca5fb9146af982e8e91a0a4299ec61a23bad74b5b3aaa409060042023-03-29 16:20:5012 hrs 40 mins ago 0x9983d8cdeaf7872501628229d311e2f7df396add0xd2048f0c49d87a8a3f85cb0efdfa465c85d751ca0.02 MATIC
0xb0360ee3cc1abd67ae586ba88e3901b95b4389166fe61cf532d6c5b3aa006499409045182023-03-29 15:26:5213 hrs 34 mins ago 0x9983d8cdeaf7872501628229d311e2f7df396add0x13a74008821a0b2d3df4d0663d44f451aa96c36c0.02 MATIC
0xb0360ee3cc1abd67ae586ba88e3901b95b4389166fe61cf532d6c5b3aa006499409045182023-03-29 15:26:5213 hrs 34 mins ago 0x9983d8cdeaf7872501628229d311e2f7df396add0x8bab23b9335e2a53f15767c0f5628cc800436d120.02 MATIC
0xcc1c1185920d9fc601d90530a4227d159488e41d78f2c2cfb2142caaeea857e4409043882023-03-29 15:22:0613 hrs 39 mins ago 0x9983d8cdeaf7872501628229d311e2f7df396add0x13a74008821a0b2d3df4d0663d44f451aa96c36c0.02 MATIC
0xeb7d2603fcf60f3854af3d24695b9f112b4d52c901253cf6c59571960b5d1655409041192023-03-29 15:11:3513 hrs 50 mins ago 0x9983d8cdeaf7872501628229d311e2f7df396add0x7b0f435feba7cccd995d50c4b870dc10e381403a0.02 MATIC
0x41fe09347f23084cec0c42629cd3b49b8ba45ac856268f21840e8493c73579db409007532023-03-29 13:07:1915 hrs 54 mins ago 0x9983d8cdeaf7872501628229d311e2f7df396add0x8907f407f7ca4d2709df13b42c846578c570148c0.02 MATIC
0x918a7aeefdb6eef0996efb1a42eb0dccb0867d6cbaa2216a166a32ceeb4c4f34408977002023-03-29 11:11:0417 hrs 50 mins ago 0x9983d8cdeaf7872501628229d311e2f7df396add0x239470fe7e0de6ed608ed864fc9b61a7ef1c65900.02 MATIC
0xdb8bc78290f1c42feb8679d5ebcf4f33529d0305f3b55c18145a15136faa9b39408940922023-03-29 8:51:4420 hrs 9 mins ago 0x9983d8cdeaf7872501628229d311e2f7df396add0x78815067c3926cc33f7790d87460bec779f42d4d0.02 MATIC
0x456b6513972783cb7121db80523b9486e0686f468b1ee3fb2fd00ca4c6e95b1f408926732023-03-29 7:56:1721 hrs 5 mins ago 0x9983d8cdeaf7872501628229d311e2f7df396add0x490362b1b8ed702df942c0512a82b87c9de54be20.02 MATIC
0x0b42254f0ca17e4f7844033c3ae9a6a3edde9b6abae89d53be58ef9aaabc85e0408921902023-03-29 7:38:0321 hrs 23 mins ago 0x9983d8cdeaf7872501628229d311e2f7df396add0x980642736e500ee8101332d0a0bdea25523454800.02 MATIC
0xb0f6cd7a614ca7a3ee04f1fa837e3263cd04904e10c6a693413641f831214efb408901652023-03-29 6:17:1022 hrs 44 mins ago 0x9983d8cdeaf7872501628229d311e2f7df396add0xd7a08a8b4bb2c7925467ba38ae4c22c54070167e0.02 MATIC
0xb381c462a5cab55fd302ba34806326cb34d674c47e35c70e7170acd114a0c881408886952023-03-29 5:22:2423 hrs 39 mins ago 0x9983d8cdeaf7872501628229d311e2f7df396add0xb3d523df033a5989f80513ed69a3d6be05385e1e0.02 MATIC
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
EvoProxy

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 1000 runs

Other Settings:
default evmVersion, MIT license
File 1 of 3 : Proxy.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (proxy/Proxy.sol)

pragma solidity ^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 {
        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 2 of 3 : Address.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Address.sol)

pragma solidity ^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;
        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");

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

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

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

        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the
     * revert reason using the provided one.
     *
     * _Available since v4.3._
     */
    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal 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

                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

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

import "@openzeppelin/contracts/proxy/Proxy.sol";
import "@openzeppelin/contracts/utils/Address.sol";

pragma solidity ^0.8.13;

contract EvoProxy is Proxy {
    bytes32 internal constant _ADMIN_SLOT =
        0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;
    bytes32 internal constant _IMPLEMENTATION_SLOT =
        0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;

    event Upgraded(address indexed implementation);
    event AdminChanged(address indexed admin);

    modifier ifAdmin() {
        if (msg.sender == _admin()) {
            _;
        } else {
            _fallback();
        }
    }

    constructor(address admin_) {
        assembly {
            sstore(_ADMIN_SLOT, admin_)
        }
        emit AdminChanged(admin_);
    }

    function _admin() internal view returns (address admin_) {
        assembly {
            admin_ := sload(_ADMIN_SLOT)
        }
    }

    function _implementation()
        internal
        view
        virtual
        override
        returns (address implementation_)
    {
        assembly {
            implementation_ := sload(_IMPLEMENTATION_SLOT)
        }
    }

    function _beforeFallback() internal virtual override {
        require(
            msg.sender != _admin(),
            "Admin cannot fallback to proxy target"
        );
        super._beforeFallback();
    }

    function admin() external ifAdmin returns (address admin_) {
        admin_ = _admin();
    }

    function implementation() external ifAdmin returns (address implementation_) {
        implementation_ = _implementation();
    }

    function upgradeTo(address newImplementation) public ifAdmin {
        require(
            Address.isContract(newImplementation),
            "Implementation must be a contract"
        );
        assembly {
            sstore(_IMPLEMENTATION_SLOT, newImplementation)
        }
        emit Upgraded(newImplementation);
    }

    function upgradeToAndCall(address newImplementation, bytes memory data)
        external
        ifAdmin
    {
        upgradeTo(newImplementation);
        Address.functionDelegateCall(newImplementation, data);
    }
}

Settings
{
  "evmVersion": "london",
  "libraries": {},
  "metadata": {
    "bytecodeHash": "ipfs",
    "useLiteralContent": true
  },
  "optimizer": {
    "enabled": true,
    "runs": 1000
  },
  "remappings": [],
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"admin_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"admin","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":[],"name":"implementation","outputs":[{"internalType":"address","name":"implementation_","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405234801561001057600080fd5b5060405161082b38038061082b83398101604081905261002f9161008d565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038190556040516001600160a01b038216907f7ce7ec0b50378fb6c0186ffb5f48325f6593fcb4ca4386f21861af3129188f5c90600090a2506100bd565b60006020828403121561009f57600080fd5b81516001600160a01b03811681146100b657600080fd5b9392505050565b61075f806100cc6000396000f3fe6080604052600436106100435760003560e01c80633659cfe61461005a5780634f1ef2861461007a5780635c60da1b1461009a578063f851a440146100cb57610052565b36610052576100506100e0565b005b6100506100e0565b34801561006657600080fd5b50610050610075366004610577565b61011a565b34801561008657600080fd5b506100506100953660046105c1565b61022a565b3480156100a657600080fd5b506100af61027f565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d757600080fd5b506100af6102e9565b6100e8610348565b6101186101137f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6103e7565b565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103546001600160a01b0316330361021f57803b6101c45760405162461bcd60e51b815260206004820152602160248201527f496d706c656d656e746174696f6e206d757374206265206120636f6e7472616360448201527f740000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8190556040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6102276100e0565b50565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103546001600160a01b03163303610273576102648261011a565b61026e828261040b565b505050565b61027b6100e0565b5050565b60006102a97fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6001600160a01b031633036102de57507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6102e66100e0565b90565b60006103137fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6001600160a01b031633036102de57507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103546001600160a01b031633036101185760405162461bcd60e51b815260206004820152602560248201527f41646d696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207460448201527f617267657400000000000000000000000000000000000000000000000000000060648201526084016101bb565b3660008037600080366000845af43d6000803e808015610406573d6000f35b3d6000fd5b6060610430838360405180606001604052806027815260200161070360279139610437565b9392505050565b6060833b6104ad5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016101bb565b600080856001600160a01b0316856040516104c891906106b3565b600060405180830381855af49150503d8060008114610503576040519150601f19603f3d011682016040523d82523d6000602084013e610508565b606091505b5091509150610518828286610522565b9695505050505050565b60608315610531575081610430565b8251156105415782518084602001fd5b8160405162461bcd60e51b81526004016101bb91906106cf565b80356001600160a01b038116811461057257600080fd5b919050565b60006020828403121561058957600080fd5b6104308261055b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156105d457600080fd5b6105dd8361055b565b9150602083013567ffffffffffffffff808211156105fa57600080fd5b818501915085601f83011261060e57600080fd5b81358181111561062057610620610592565b604051601f8201601f19908116603f0116810190838211818310171561064857610648610592565b8160405282815288602084870101111561066157600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b8381101561069e578181015183820152602001610686565b838111156106ad576000848401525b50505050565b600082516106c5818460208701610683565b9190910192915050565b60208152600082518060208401526106ee816040850160208701610683565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220bcc106e54e3becb5fcadbe9f31671c9985fb4289d26277ce5823e2139665860a64736f6c634300080d0033000000000000000000000000961cad906ead6aa183f3d27454a9e763e8b7d3eb

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

000000000000000000000000961cad906ead6aa183f3d27454a9e763e8b7d3eb

-----Decoded View---------------
Arg [0] : admin_ (address): 0x961cad906ead6aa183f3d27454a9e763e8b7d3eb

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000961cad906ead6aa183f3d27454a9e763e8b7d3eb


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.