Contract 0x9983d8cdeaf7872501628229d311e2f7df396add 13

 

Contract Overview

Balance:
23.944563060253229637 Ether

EtherValue:
$31,021.38 (@ $1,295.55/ETH)

Token:
Txn Hash Method
Index
From
To
Value
0x477c522dc497b66142c37bfade326e92111b7363cd5cbcf0e3886ffd5b679815Deposit262307592022-09-29 10:26:523 hrs 42 mins ago0xcdae9a31cbf7f9135029e4823f8ce1c13a21bbdb IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 Ether0.0000324332690.00100155
0x613608d4f6166ac01995924f987d5d525b28d7c9cdc2ffcff12f30a89b48722aWithdraw259162912022-09-28 6:31:581 day 7 hrs ago0xcd4a15841a4906ff78d3f2aa8e55936f1a7ae4a5 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 Ether0.0000539366040.00100155
0x51aada591bcfa365d2a9f471565db0d4c4836f51f7bbd75cf5e20d8d57b501beWithdraw258337202022-09-27 21:12:461 day 16 hrs ago0xcd4a15841a4906ff78d3f2aa8e55936f1a7ae4a5 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 Ether0.0000653434410.00100155
0xe29ecd2ef6a4f0a177da1991c64e4961ac02077e6f5e7e0226b2d51106921024Deposit255991812022-09-26 15:59:162 days 22 hrs ago0x01ce015fd8cac51df9f6e6b6e1a1ba5829ae1f88 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 Ether0.0000993599780.00100155
0x2b96944adf42c0b207dbff5b273cb75c117f9be2bd4f0a28133d8f64929e7dd9Deposit253989602022-09-25 20:40:103 days 17 hrs ago0xee1a0605656154974286cecc6039a7d00068f636 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 Ether0.0000666040940.00100155
0x987eb832f6c0144ccfa146a7feab64e7714c8cc2b5b2352f423dbaa9d3541a5aDeposit251024362022-09-24 12:08:495 days 2 hrs ago0xea7dc440678801f77410c86154110f4e555869d8 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 Ether0.000021351060.00100155
0x6743232a33802775002563f6e59d32a69ffc65f1c929d3c2350628fac20af624Deposit250042022022-09-24 1:56:235 days 12 hrs ago0x9ece891d6365f1e1c55a5a33b0dd8e22b7c8e2f2 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 Ether0.000021518680.00100155
0xb401f73933bff737493b4f44362af1112062c535f7aee5ea5deddfd5f637a1d2Deposit249792972022-09-23 22:29:145 days 15 hrs ago0x9ece891d6365f1e1c55a5a33b0dd8e22b7c8e2f2 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 Ether0.0000307219880.00100155
0x2ee51f83c784116b9972c3b64853c704d3b696bec32ae996d3118441e1d0d6daDeposit249765362022-09-23 22:09:395 days 15 hrs ago0x9ece891d6365f1e1c55a5a33b0dd8e22b7c8e2f2 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 Ether0.0000421068980.00100155
0x9e33ee166d82709e04112e0e6b437922c4a868dddf3fca7b29107cf006e85810Withdraw246328172022-09-22 19:27:486 days 18 hrs ago0xcd4a15841a4906ff78d3f2aa8e55936f1a7ae4a5 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 Ether0.0000610528960.00100155
0xc16142305d948bafcebbe2bb86313069c09f3029e7eb4532377f25474b6e783bDeposit244973522022-09-22 9:01:047 days 5 hrs ago0x88b0ea576428da635d0fa9deb686765c90cfde2e IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 Ether0.0000280175530.00100155
0x019b6beaaf9aa4cfeba92263fc943c1e2a1e34be179b2a5b1f5d4a8d33c69b80Deposit244156392022-09-22 2:17:227 days 11 hrs ago0x9ece891d6365f1e1c55a5a33b0dd8e22b7c8e2f2 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 Ether0.0000224480290.00100155
0x10463eff33942378a0bb3b044f84e8106f89b9f2dc9c8df6e23fa8a15275662cWithdraw243940142022-09-21 23:53:337 days 14 hrs ago0xcd4a15841a4906ff78d3f2aa8e55936f1a7ae4a5 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 Ether0.0000591374620.00100155
0x553504c9bc21009c3c5097967633e07b2c845cd4fa12bf41d44c263b7603ae53Withdraw243005552022-09-21 18:02:547 days 20 hrs ago0xcd4a15841a4906ff78d3f2aa8e55936f1a7ae4a5 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 Ether0.0002750601380.001953125
0xe7fdf832e824005c6a420fd1c98415624ea3ce0582b646964015c78ec3b84174Withdraw242452542022-09-21 14:21:427 days 23 hrs ago0xcd4a15841a4906ff78d3f2aa8e55936f1a7ae4a5 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 Ether0.0000683557750.001
0x84143a2f8846f2bb5da5ed54b2907304657c858bb876083471984784f2c2d2adDeposit240109592022-09-20 20:11:458 days 17 hrs ago0x9ece891d6365f1e1c55a5a33b0dd8e22b7c8e2f2 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 Ether0.0003358771550.001
0xfa8d8f3d6323da588caa92358c9a5353825776efe83d8ba372270688b8208796Deposit238141172022-09-19 22:56:429 days 15 hrs ago0x9ece891d6365f1e1c55a5a33b0dd8e22b7c8e2f2 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 Ether0.0000319102460.001
0x3e9e601b34096e6391eb49d8f547e9a02b034caa4b39bdeb0ef9fa55ab4c6954Withdraw238119702022-09-19 22:35:049 days 15 hrs ago0xcd4a15841a4906ff78d3f2aa8e55936f1a7ae4a5 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 Ether0.0000369763240.001
0x12149f7f8361f54e1f67a4aa99fdf3b01ce428dbfcbc5f72b2912d5a0beab968Deposit238058262022-09-19 21:31:249 days 16 hrs ago0xee1a0605656154974286cecc6039a7d00068f636 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 Ether0.000066999280.001
0x1da57d6d3989826f846faca73fc35c13fc12f0a805a1c39ae36178b7904f83d0Withdraw236195602022-09-18 15:23:0610 days 22 hrs ago0xcd4a15841a4906ff78d3f2aa8e55936f1a7ae4a5 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 Ether0.00006153910.001
0xc7bbf213c62ca9100e12a19f2557ed3f04a1fa3fb55494bb9237a00307e20cceDeposit235268572022-09-17 14:20:5211 days 23 hrs ago0x50a662415c5f221262dc64e70889d8c0a4298fec IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 Ether0.0000623373760.001
0xae382cc69011789f48dbe38ee291595af29fa02579a8e4416d03840e5fc3921aDeposit235048322022-09-17 8:45:4912 days 5 hrs ago0x7c56978e3ad914a1371863a5d44e5f0bddda8d36 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0.04 Ether0.0000256399810.001
0x93d4b8cd2a355e9ff01ad69d4273169cd433191c94b8657157115d1f2bfda7cbWithdraw234615172022-09-16 19:19:5912 days 18 hrs ago0xcd4a15841a4906ff78d3f2aa8e55936f1a7ae4a5 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 Ether0.0000807513420.001
0x7fd9bc795fae603e383d901471f75f587609c6760c618a3346e8799962f0e802Withdraw234554132022-09-16 18:02:0912 days 20 hrs ago0xcd4a15841a4906ff78d3f2aa8e55936f1a7ae4a5 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 Ether0.0001129649240.001
0x90cdd9e817da855ac554c03b26760ee9fe2e668c8adff5a459ebb0c88bb4bfb1Withdraw234358992022-09-16 14:50:3612 days 23 hrs ago0xcd4a15841a4906ff78d3f2aa8e55936f1a7ae4a5 IN  0x9983d8cdeaf7872501628229d311e2f7df396add0 Ether0.0000639385490.001
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x613608d4f6166ac01995924f987d5d525b28d7c9cdc2ffcff12f30a89b48722a259162912022-09-28 6:31:581 day 7 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add 0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether
0x613608d4f6166ac01995924f987d5d525b28d7c9cdc2ffcff12f30a89b48722a259162912022-09-28 6:31:581 day 7 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add 0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether
0x613608d4f6166ac01995924f987d5d525b28d7c9cdc2ffcff12f30a89b48722a259162912022-09-28 6:31:581 day 7 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add 0x62cd928b16b7a92101c3091f5136fd9bb017870a0 Ether
0x51aada591bcfa365d2a9f471565db0d4c4836f51f7bbd75cf5e20d8d57b501be258337202022-09-27 21:12:461 day 16 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add 0x7f5c764cbc14f9669b88837ca1490cca17c316070 Ether
0x51aada591bcfa365d2a9f471565db0d4c4836f51f7bbd75cf5e20d8d57b501be258337202022-09-27 21:12:461 day 16 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add 0x7f5c764cbc14f9669b88837ca1490cca17c316070 Ether
0x51aada591bcfa365d2a9f471565db0d4c4836f51f7bbd75cf5e20d8d57b501be258337202022-09-27 21:12:461 day 16 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add 0x62cd928b16b7a92101c3091f5136fd9bb017870a0 Ether
0xe29ecd2ef6a4f0a177da1991c64e4961ac02077e6f5e7e0226b2d51106921024255991812022-09-26 15:59:162 days 22 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add 0x7f5c764cbc14f9669b88837ca1490cca17c316070 Ether
0xe29ecd2ef6a4f0a177da1991c64e4961ac02077e6f5e7e0226b2d51106921024255991812022-09-26 15:59:162 days 22 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add 0x7f5c764cbc14f9669b88837ca1490cca17c316070 Ether
0xe29ecd2ef6a4f0a177da1991c64e4961ac02077e6f5e7e0226b2d51106921024255991812022-09-26 15:59:162 days 22 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add 0x62cd928b16b7a92101c3091f5136fd9bb017870a0 Ether
0x2b96944adf42c0b207dbff5b273cb75c117f9be2bd4f0a28133d8f64929e7dd9253989602022-09-25 20:40:103 days 17 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add 0x7f5c764cbc14f9669b88837ca1490cca17c316070 Ether
0x2b96944adf42c0b207dbff5b273cb75c117f9be2bd4f0a28133d8f64929e7dd9253989602022-09-25 20:40:103 days 17 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add 0x7f5c764cbc14f9669b88837ca1490cca17c316070 Ether
0x2b96944adf42c0b207dbff5b273cb75c117f9be2bd4f0a28133d8f64929e7dd9253989602022-09-25 20:40:103 days 17 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add 0x62cd928b16b7a92101c3091f5136fd9bb017870a0 Ether
0x987eb832f6c0144ccfa146a7feab64e7714c8cc2b5b2352f423dbaa9d3541a5a251024362022-09-24 12:08:495 days 2 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add 0x7f5c764cbc14f9669b88837ca1490cca17c316070 Ether
0x987eb832f6c0144ccfa146a7feab64e7714c8cc2b5b2352f423dbaa9d3541a5a251024362022-09-24 12:08:495 days 2 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add 0x7f5c764cbc14f9669b88837ca1490cca17c316070 Ether
0x987eb832f6c0144ccfa146a7feab64e7714c8cc2b5b2352f423dbaa9d3541a5a251024362022-09-24 12:08:495 days 2 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add 0x62cd928b16b7a92101c3091f5136fd9bb017870a0 Ether
0x6743232a33802775002563f6e59d32a69ffc65f1c929d3c2350628fac20af624250042022022-09-24 1:56:235 days 12 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add 0x7f5c764cbc14f9669b88837ca1490cca17c316070 Ether
0x6743232a33802775002563f6e59d32a69ffc65f1c929d3c2350628fac20af624250042022022-09-24 1:56:235 days 12 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add 0x7f5c764cbc14f9669b88837ca1490cca17c316070 Ether
0x6743232a33802775002563f6e59d32a69ffc65f1c929d3c2350628fac20af624250042022022-09-24 1:56:235 days 12 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add 0x62cd928b16b7a92101c3091f5136fd9bb017870a0 Ether
0xb401f73933bff737493b4f44362af1112062c535f7aee5ea5deddfd5f637a1d2249792972022-09-23 22:29:145 days 15 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add 0x7f5c764cbc14f9669b88837ca1490cca17c316070 Ether
0xb401f73933bff737493b4f44362af1112062c535f7aee5ea5deddfd5f637a1d2249792972022-09-23 22:29:145 days 15 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add 0x7f5c764cbc14f9669b88837ca1490cca17c316070 Ether
0xb401f73933bff737493b4f44362af1112062c535f7aee5ea5deddfd5f637a1d2249792972022-09-23 22:29:145 days 15 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add 0x62cd928b16b7a92101c3091f5136fd9bb017870a0 Ether
0x2ee51f83c784116b9972c3b64853c704d3b696bec32ae996d3118441e1d0d6da249765362022-09-23 22:09:395 days 15 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add 0x7f5c764cbc14f9669b88837ca1490cca17c316070 Ether
0x2ee51f83c784116b9972c3b64853c704d3b696bec32ae996d3118441e1d0d6da249765362022-09-23 22:09:395 days 15 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add 0x7f5c764cbc14f9669b88837ca1490cca17c316070 Ether
0x2ee51f83c784116b9972c3b64853c704d3b696bec32ae996d3118441e1d0d6da249765362022-09-23 22:09:395 days 15 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add 0x62cd928b16b7a92101c3091f5136fd9bb017870a0 Ether
0x9e33ee166d82709e04112e0e6b437922c4a868dddf3fca7b29107cf006e85810246328172022-09-22 19:27:486 days 18 hrs ago 0x9983d8cdeaf7872501628229d311e2f7df396add 0x7f5c764cbc14f9669b88837ca1490cca17c316070 Ether
[ 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

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.