Contract 0x9983d8cdeaf7872501628229d311e2f7df396add 19

 

Contract Overview

Balance:
0.000000890802537676 ETH

EtherValue:
Less Than $0.01 (@ $3,572.42/ETH)

Token:
Txn Hash Method
Block
From
To
Value
0xa5b4c7baccd1029b1334a01576259056bfac7aa9d2b38e9984cf1e199b679d5bWithdraw460690492022-12-06 14:04:55478 days 5 hrs ago0xcd4a15841a4906ff78d3f2aa8e55936f1a7ae4a5 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 ETH0.0002262943460.001
0x1f3a741f10104b4c448c1ec0fec850a6bf3206bbdd78d99bb9f129509c902efcWithdraw458556002022-12-06 2:58:43478 days 16 hrs ago0xcd4a15841a4906ff78d3f2aa8e55936f1a7ae4a5 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 ETH0.0000754021510.001
0x7cce7f25360ed32ec4da2723dbfbe76f0b3753c517f5d6c177a68188d617334bWithdraw458550522022-12-06 2:56:42478 days 16 hrs ago0xcd4a15841a4906ff78d3f2aa8e55936f1a7ae4a5 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 ETH0.0000776378980.001
0xbed5096bf566a7cb56140ca0648ac7343ed92600515e4de172fc4b5be3f5f73fWithdraw458549792022-12-06 2:56:27478 days 16 hrs ago0xcd4a15841a4906ff78d3f2aa8e55936f1a7ae4a5 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 ETH0.0000773528360.001
0xaf2c08f7288ec4dd71fc98ec6d66acd82fbbc405dbe3c51562413abca191c830Withdraw452820102022-12-04 12:40:27480 days 6 hrs ago0xcd4a15841a4906ff78d3f2aa8e55936f1a7ae4a5 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 ETH0.0000813469140.001
0x911b62eac56567bd04d3924a189b40cffbbcc62659987d1426dce578cf809d24Deposit448650632022-12-03 7:30:23481 days 12 hrs ago 0x86017110100312e0c2ccc0c14a58c4bf830a7ef6 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 ETH0.000057000960.001
0xb0465a67d2e56b0efc88552d1ce0efcc6ed9375cb88f2e74d4bb5f4544a7feaaDeposit447658312022-12-03 0:29:44481 days 19 hrs ago0x21ba7e57b2f587b2c901fb25414cd4ab2e12c409 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 ETH0.0000545460920.001
0x7576378ffd05e282a01f740ea6fa39a524a97395b792c64ce9333733b797dc06Withdraw444527982022-12-02 3:52:58482 days 15 hrs ago0xcd4a15841a4906ff78d3f2aa8e55936f1a7ae4a5 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 ETH0.0000659493490.001
0x0d9023ce71e913c17ce2f18a32e91f8ccbb5374baa4e6fff8062fa4a2ab95804Deposit443630382022-12-01 18:56:39483 days 35 mins ago0x4654b3ef6666a6d83af79d00e6f55437f841b25f IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 ETH0.0000611506580.001
0xc775000a6cc4876d4ed3449fb4bf16d7dde87b69e4474086fcde40fe53b863f4Deposit443623882022-12-01 18:52:23483 days 39 mins ago0x4654b3ef6666a6d83af79d00e6f55437f841b25f IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 ETH0.0000610172460.001
0x183f3bcd1555378b6d1a715fb40052af6c6083673b05292d24c6e644bad068e5Withdraw442442752022-12-01 11:31:15483 days 8 hrs ago0xcd4a15841a4906ff78d3f2aa8e55936f1a7ae4a5 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 ETH0.0000648225390.001
0x5385f219db46554436c05ae1a733974ae120a24099dd5a3633dec58205a42bf1Deposit440775652022-12-01 2:13:51483 days 17 hrs ago0x4b5e559f6ab995302a206b3fcd683885a6bd1126 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 ETH0.0000533198340.001
0x1e1ff47a4f5c987fce2d7e82bf228273e670588e7acb253d8515761a9eabda64Deposit438793822022-11-30 12:20:48484 days 7 hrs ago0xfed858460237b6aa3bfc85f9a9634198521d50dd IN  0x9983d8cdeaf7872501628229d311e2f7df396add0.00508 ETH0.0000529436920.001
0xdf32a62eb1902c91155825dd6499f8010ac5c32e6a7791fdcdf4243527dc7bf8Deposit438724562022-11-30 11:59:18484 days 7 hrs ago0xd2f91cc60e9a85508c1d6e935c9efb8845cacd5a IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 ETH0.0000550348850.001
0x18f5816ba4d91b78b5979a92d22b9f3d54dda4a25b5b70b400941d2486671216Withdraw438247732022-11-30 9:22:39484 days 10 hrs ago0xcd4a15841a4906ff78d3f2aa8e55936f1a7ae4a5 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 ETH0.0000698099550.001
0x23c1019ebf6c8282c72b53d69b07b94bdc418bc5a912d8760f4502ab284c6922Deposit437639202022-11-30 6:07:47484 days 13 hrs ago0xd2f91cc60e9a85508c1d6e935c9efb8845cacd5a IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 ETH0.0000539151530.001
0x9cd2bf87c95dee9ff6e8d7a45c4bbfa28d54020cc47406f92a9f99608dbae286Deposit436720612022-11-29 23:01:20484 days 20 hrs ago0x4b5e559f6ab995302a206b3fcd683885a6bd1126 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 ETH0.0000502763590.001
0x40028d017623bf15d10c1ca27b3da2c4b55cf74d97c44b77f2f48505b1000b87Deposit433393872022-11-29 0:46:21485 days 18 hrs ago0x3355288223269a33908bf2a36bf41578ce496139 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 ETH0.0000804934640.001
0xdee6b66d8f93bcd21f123e4eeb2a7bf29a27359473f3a1fb7e62ca1a2e7985d2Deposit433332652022-11-29 0:04:33485 days 19 hrs ago0x4b5e559f6ab995302a206b3fcd683885a6bd1126 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 ETH0.0000490519470.001
0x15d7430c86c0d2bee60eee14dd220ca7841b5f85e63425fbeb14a34ccd3c55e1Deposit429971732022-11-27 23:57:47486 days 19 hrs ago0xe06b3e54aa92ec8c45f46d704358711f538b2454 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 ETH0.0000468522690.001
0x968a3f2a395e0664728ec926583d5cc3d077e869867bd799e7322bc7b6989c75Deposit420358362022-11-25 7:47:45489 days 11 hrs ago0xeeb019c971160f3b05d8b75dddb326beba4b3cfd IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 ETH0.0000541709720.001
0x26402ac97e619f1e564a7e71763c9556a78966d11e31a1d3b8d5a017b60f1981Withdraw419496962022-11-25 3:15:19489 days 16 hrs ago0xcd4a15841a4906ff78d3f2aa8e55936f1a7ae4a5 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 ETH0.0000689018850.001
0xb5eb85d1319981521a11dff160d5397fcfb91e3cdddcafc1aee3592d0e7935fdDeposit414219962022-11-23 19:06:20491 days 25 mins ago0x4b5e559f6ab995302a206b3fcd683885a6bd1126 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 ETH0.0001297962480.001160111
0x563f71f0937b1636ab15c4c4ba61b63035863b9791fa690f672f444989a3ebc6Deposit413364712022-11-23 13:54:48491 days 5 hrs ago0x0ea8c05fee1cad0dc54e0155348ed518cfe4c0bb IN  0x9983d8cdeaf7872501628229d311e2f7df396add0.092 ETH0.000060149140.001
0xeef20c1547282057478c7137a6e90847330738b786262f7aa1863f58bb85ec4cDeposit413342922022-11-23 13:48:18491 days 5 hrs ago0x0ea8c05fee1cad0dc54e0155348ed518cfe4c0bb IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 ETH0.0000613611920.001
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xa5b4c7baccd1029b1334a01576259056bfac7aa9d2b38e9984cf1e199b679d5b460690492022-12-06 14:04:55478 days 5 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add0xa02f89054c86abbb873e09a3f3eaa96069e811300.245315 ETH
0x1f3a741f10104b4c448c1ec0fec850a6bf3206bbdd78d99bb9f129509c902efc458556002022-12-06 2:58:43478 days 16 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add0xa02f89054c86abbb873e09a3f3eaa96069e8113023.0977 ETH
0xaf2c08f7288ec4dd71fc98ec6d66acd82fbbc405dbe3c51562413abca191c830452820102022-12-04 12:40:27480 days 6 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add0x79e975f971e3780dc3001086fa9e87919dd23c6d0.04776 ETH
0x18f5816ba4d91b78b5979a92d22b9f3d54dda4a25b5b70b400941d2486671216438247732022-11-30 9:22:39484 days 10 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add0x88b0ea576428da635d0fa9deb686765c90cfde2e0.06766 ETH
0x245f6e808824dba3f31e3dd085ec285d967731b921af221e0f516dfe7352ade7402239142022-11-20 20:28:29493 days 23 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add0x8153c5564477dd81aa2db9f736c35057caf8d1370.0199 ETH
0xc298fdc0aea4ad4369fba84274d2da4dfeaccde19812dca1bd6d26561866edb7392654272022-11-18 7:59:46496 days 11 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add0x4cbba6a6d3b584931709240fbc50d4994f7d69310.028016938915803285 ETH
0x9f22655bc21607e232e80e04d9f8f09938a5cea058c6bef09f2ba671f9347170391447852022-11-17 22:29:57496 days 21 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add0x3b9d850a75708d46f47f22e538e3769269514fb20.19701 ETH
0xe2d523396c270dddc015cdc899f8dc1c42c52ce03d27076f3b36e133539a8ddb391258592022-11-17 20:09:19496 days 23 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add0x4cbba6a6d3b584931709240fbc50d4994f7d69310.021856915392127481 ETH
0xb6ec65db1a6dda5c6ecc64193c73c015021970ebad446cdd8d6aae96cae59b36383862662022-11-15 10:50:41499 days 8 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add0x6918df5d42764dfea3e47365c65c5ceef38e93d30.0398 ETH
0x873f0f6766ee3b77f6ac91759c92b000c353b3d107da5c54db5583d0e1b710a6376959572022-11-13 7:22:03501 days 12 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add0x3741d279d5e6984b4f1d23b3874295224f1041cb8.293520883014149936 ETH
0x8a3dd464be10c726f8254080895c2daf738b28e76479417e5cbc5a483423ba19365334352022-11-09 23:51:29504 days 19 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add0x0c3441906dbfb65857ede3e405387a8659ad46e00.282668415306623779 ETH
0x05300c7bc020a664ca7585ce64826741705a7b88ac95ec7301ec4e95e694e6a1365152992022-11-09 22:27:17504 days 21 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add0x06189341e523a52ae10c4bd4a7774371fac1b2490.124380623910179099 ETH
0x4b37c24cde6513763297a23afd24e1d36e5ad654a5b87211922bc4bfa467c067354583272022-11-07 15:27:48507 days 4 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add0xc67a34812a08f387858467f52e5b28ad98fc21b00.026019210606341124 ETH
0x265c54e2e9927299e7480f284058976e0c582770752db7aecca7e7bc1a1f9ec4346803922022-11-05 13:51:47509 days 5 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add0x906c9de7a39fc988dc28ca3f5e23777e86c0755d0.0199 ETH
0xfa5d1497a198efa0e385ef8ec1676425c6c6cf80c6f34231a2d8af96f4a33316346661332022-11-05 13:00:58509 days 6 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add0x1ba5724c554359b1c89302a41e4b25ec5fca83a20.02786 ETH
0xa7ef86268f1c9872662e40debe49fab00a7784718cf066b1720981eb05efd036337645632022-11-02 19:02:56512 days 29 mins ago 0x9983d8cdeaf7872501628229d311e2f7df396add0xae132ab1ef34e25e19ce740ac9e211623a8cb5680.062685 ETH
0x1614e3195ea22c5b5be40aaa880643bf51b90b08002c92127a9d1ee83a9a43c2332527622022-11-01 4:02:59513 days 15 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add0xa37b77e5670e70acc62abe86b6b02c450e9eeff70.03781 ETH
0x133c2fa34de95decacd094e728c7b89aa74d5dfbdeee75c9ea87159815fd6c38327945252022-10-30 10:39:35515 days 8 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add0x88b0ea576428da635d0fa9deb686765c90cfde2e0.149494702757467495 ETH
0x2117271e9a0a2048d95a333506808de3bb1d923ccff0ed6334f6bc3c965fee3b326622882022-10-30 0:16:02515 days 19 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add0x88b0ea576428da635d0fa9deb686765c90cfde2e0.1119509642016785 ETH
0x397bbb5b5d9d00a4ceeac4498f16c665e71418722f643c360061da918401b6a9319385742022-10-27 9:58:13518 days 9 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add0x6b5d363075e69012bf27a07fb40c2e57a1c8f98e0.044852819712513372 ETH
0x18a7b80de9a072cd985b5fcbdc9d4614213b5174810d18013113ff3438ee588b317394372022-10-26 17:23:41519 days 2 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add0xd2f91cc60e9a85508c1d6e935c9efb8845cacd5a1.09251 ETH
0xfa691827d02a397b44d460faea8848ae90932415111568819207231a86897847316086032022-10-26 8:14:57519 days 11 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add0x6b5d363075e69012bf27a07fb40c2e57a1c8f98e0.073116096549891945 ETH
0x4c6384f77c1a97201778845ae8bb7160a01231d20c8f171c493f189d4bfeb8ee315894582022-10-26 7:01:28519 days 12 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add0x4eadf59ec9afc8d6554bacf9980afca5275b9d480.0199 ETH
0x39bfe7b7c4db1e771dd2046c4d6356b218b3a6beaff3589abcb053e740df84e1312541222022-10-24 22:54:54520 days 20 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add0xb7f66e2f37c70d22bac1d40cf1d260e2a9ef83a40.0199 ETH
0x3e0a41c06d08574bfa0ffdf85ba0a82c8cc65a4d3476f81d984aa137e5a5b0e2312108722022-10-24 16:34:38521 days 2 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add0x5195cbe2f6d280bc629a57c4bc5013cdad10bc310.020790988929059257 ETH
[ 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",
        "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

Deployed Bytecode

0x6080604052600436106100435760003560e01c80633659cfe61461005a5780634f1ef2861461007a5780635c60da1b1461009a578063f851a440146100cb57610052565b36610052576100506100e0565b005b6100506100e0565b34801561006657600080fd5b50610050610075366004610577565b61011a565b34801561008657600080fd5b506100506100953660046105c1565b61022a565b3480156100a657600080fd5b506100af61027f565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d757600080fd5b506100af6102e9565b6100e8610348565b6101186101137f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6103e7565b565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103546001600160a01b0316330361021f57803b6101c45760405162461bcd60e51b815260206004820152602160248201527f496d706c656d656e746174696f6e206d757374206265206120636f6e7472616360448201527f740000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8190556040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6102276100e0565b50565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103546001600160a01b03163303610273576102648261011a565b61026e828261040b565b505050565b61027b6100e0565b5050565b60006102a97fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6001600160a01b031633036102de57507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6102e66100e0565b90565b60006103137fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6001600160a01b031633036102de57507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103546001600160a01b031633036101185760405162461bcd60e51b815260206004820152602560248201527f41646d696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207460448201527f617267657400000000000000000000000000000000000000000000000000000060648201526084016101bb565b3660008037600080366000845af43d6000803e808015610406573d6000f35b3d6000fd5b6060610430838360405180606001604052806027815260200161070360279139610437565b9392505050565b6060833b6104ad5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016101bb565b600080856001600160a01b0316856040516104c891906106b3565b600060405180830381855af49150503d8060008114610503576040519150601f19603f3d011682016040523d82523d6000602084013e610508565b606091505b5091509150610518828286610522565b9695505050505050565b60608315610531575081610430565b8251156105415782518084602001fd5b8160405162461bcd60e51b81526004016101bb91906106cf565b80356001600160a01b038116811461057257600080fd5b919050565b60006020828403121561058957600080fd5b6104308261055b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156105d457600080fd5b6105dd8361055b565b9150602083013567ffffffffffffffff808211156105fa57600080fd5b818501915085601f83011261060e57600080fd5b81358181111561062057610620610592565b604051601f8201601f19908116603f0116810190838211818310171561064857610648610592565b8160405282815288602084870101111561066157600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b8381101561069e578181015183820152602001610686565b838111156106ad576000848401525b50505050565b600082516106c5818460208701610683565b9190910192915050565b60208152600082518060208401526106ee816040850160208701610683565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220bcc106e54e3becb5fcadbe9f31671c9985fb4289d26277ce5823e2139665860a64736f6c634300080d0033

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


Deployed ByteCode Sourcemap

162:2042:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2884:11:0;:9;:11::i;:::-;162:2042:2;;2661:11:0;:9;:11::i;1653:326:2:-;;;;;;;;;;-1:-1:-1;1653:326:2;;;;;:::i;:::-;;:::i;1985:217::-;;;;;;;;;;-1:-1:-1;1985:217:2;;;;;:::i;:::-;;:::i;1518:129::-;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1759:55:3;;;1741:74;;1729:2;1714:18;1518:129:2;;;;;;;1419:93;;;;;;;;;;;;;:::i;2308:110:0:-;2356:17;:15;:17::i;:::-;2383:28;2393:17;1161:20:2;1155:27;;967:231;2393:17:0;2383:9;:28::i;:::-;2308:110::o;1653:326:2:-;933:11;927:18;-1:-1:-1;;;;;578:22:2;:10;:22;574:96;;1087:20:1;;1724:117:2::1;;;::::0;-1:-1:-1;;;1724:117:2;;2028:2:3;1724:117:2::1;::::0;::::1;2010:21:3::0;2067:2;2047:18;;;2040:30;2106:34;2086:18;;;2079:62;2177:3;2157:18;;;2150:31;2198:19;;1724:117:2::1;;;;;;;;;1881:20;1874:47:::0;;;1945:27:::1;::::0;-1:-1:-1;;;;;1945:27:2;::::1;::::0;::::1;::::0;;;::::1;1653:326:::0;:::o;574:96::-;648:11;:9;:11::i;:::-;1653:326;:::o;1985:217::-;933:11;927:18;-1:-1:-1;;;;;578:22:2;:10;:22;574:96;;2104:28:::1;2114:17;2104:9;:28::i;:::-;2142:53;2171:17;2190:4;2142:28;:53::i;:::-;;1985:217:::0;;:::o;574:96::-;648:11;:9;:11::i;:::-;1985:217;;:::o;1518:129::-;1570:23;592:8;933:11;927:18;;827:134;592:8;-1:-1:-1;;;;;578:22:2;:10;:22;574:96;;-1:-1:-1;1161:20:2;1155:27;;1518:129::o;574:96::-;648:11;:9;:11::i;:::-;1518:129;:::o;1419:93::-;1462:14;592:8;933:11;927:18;;827:134;592:8;-1:-1:-1;;;;;578:22:2;:10;:22;574:96;;-1:-1:-1;933:11:2;927:18;;1518:129::o;1204:209::-;933:11;927:18;-1:-1:-1;;;;;1288:22:2;:10;:22;1267:106;;;;-1:-1:-1;;;1267:106:2;;2430:2:3;1267:106:2;;;2412:21:3;2469:2;2449:18;;;2442:30;2508:34;2488:18;;;2481:62;2579:7;2559:18;;;2552:35;2604:19;;1267:106:2;2228:401:3;934:895:0;1272:14;1269:1;1266;1253:34;1486:1;1483;1467:14;1464:1;1448:14;1441:5;1428:60;1562:16;1559:1;1556;1541:38;1600:6;1667:66;;;;1782:16;1779:1;1772:27;1667:66;1702:16;1699:1;1692:27;6223:198:1;6306:12;6337:77;6358:6;6366:4;6337:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6330:84;6223:198;-1:-1:-1;;;6223:198:1:o;6607:387::-;6748:12;1087:20;;6772:69;;;;-1:-1:-1;;;6772:69:1;;2836:2:3;6772:69:1;;;2818:21:3;2875:2;2855:18;;;2848:30;2914:34;2894:18;;;2887:62;2985:8;2965:18;;;2958:36;3011:19;;6772:69:1;2634:402:3;6772:69:1;6853:12;6867:23;6894:6;-1:-1:-1;;;;;6894:19:1;6914:4;6894:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6852:67;;;;6936:51;6953:7;6962:10;6974:12;6936:16;:51::i;:::-;6929:58;6607:387;-1:-1:-1;;;;;;6607:387:1:o;7214:692::-;7360:12;7388:7;7384:516;;;-1:-1:-1;7418:10:1;7411:17;;7384:516;7529:17;;:21;7525:365;;7723:10;7717:17;7783:15;7770:10;7766:2;7762:19;7755:44;7525:365;7862:12;7855:20;;-1:-1:-1;;;7855:20:1;;;;;;;;:::i;14:196:3:-;82:20;;-1:-1:-1;;;;;131:54:3;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:186::-;274:6;327:2;315:9;306:7;302:23;298:32;295:52;;;343:1;340;333:12;295:52;366:29;385:9;366:29;:::i;406:184::-;458:77;455:1;448:88;555:4;552:1;545:15;579:4;576:1;569:15;595:995;672:6;680;733:2;721:9;712:7;708:23;704:32;701:52;;;749:1;746;739:12;701:52;772:29;791:9;772:29;:::i;:::-;762:39;;852:2;841:9;837:18;824:32;875:18;916:2;908:6;905:14;902:34;;;932:1;929;922:12;902:34;970:6;959:9;955:22;945:32;;1015:7;1008:4;1004:2;1000:13;996:27;986:55;;1037:1;1034;1027:12;986:55;1073:2;1060:16;1095:2;1091;1088:10;1085:36;;;1101:18;;:::i;:::-;1176:2;1170:9;1144:2;1230:13;;-1:-1:-1;;1226:22:3;;;1250:2;1222:31;1218:40;1206:53;;;1274:18;;;1294:22;;;1271:46;1268:72;;;1320:18;;:::i;:::-;1360:10;1356:2;1349:22;1395:2;1387:6;1380:18;1435:7;1430:2;1425;1421;1417:11;1413:20;1410:33;1407:53;;;1456:1;1453;1446:12;1407:53;1512:2;1507;1503;1499:11;1494:2;1486:6;1482:15;1469:46;1557:1;1552:2;1547;1539:6;1535:15;1531:24;1524:35;1578:6;1568:16;;;;;;;595:995;;;;;:::o;3041:258::-;3113:1;3123:113;3137:6;3134:1;3131:13;3123:113;;;3213:11;;;3207:18;3194:11;;;3187:39;3159:2;3152:10;3123:113;;;3254:6;3251:1;3248:13;3245:48;;;3289:1;3280:6;3275:3;3271:16;3264:27;3245:48;;3041:258;;;:::o;3304:274::-;3433:3;3471:6;3465:13;3487:53;3533:6;3528:3;3521:4;3513:6;3509:17;3487:53;:::i;:::-;3556:16;;;;;3304:274;-1:-1:-1;;3304:274:3:o;3583:383::-;3732:2;3721:9;3714:21;3695:4;3764:6;3758:13;3807:6;3802:2;3791:9;3787:18;3780:34;3823:66;3882:6;3877:2;3866:9;3862:18;3857:2;3849:6;3845:15;3823:66;:::i;:::-;3950:2;3929:15;-1:-1:-1;;3925:29:3;3910:45;;;;3957:2;3906:54;;3583:383;-1:-1:-1;;3583:383:3:o

Swarm Source

ipfs://bcc106e54e3becb5fcadbe9f31671c9985fb4289d26277ce5823e2139665860a
Block Transaction Difficulty Gas Used Reward
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.