ETH Price: $2,724.83 (-2.92%)

Contract

0xE0FEd2eF337a0f910Fc5F6949C294E04F7a7E18E
 
Transaction Hash
Method
Block
From
To
Transfer204626342024-08-05 13:22:23185 days ago1722864143IN
ENS Nameavocado.micka.eth
6.46878911 ETH0.0012534948.33786239
Transfer204624072024-08-05 12:36:47185 days ago1722861407IN
ENS Nameavocado.micka.eth
4.99673666 ETH0.0013150250.71064721
Transfer204623872024-08-05 12:32:47185 days ago1722861167IN
ENS Nameavocado.micka.eth
4.99860216 ETH0.0006487730.89398874
Transfer204623632024-08-05 12:27:59185 days ago1722860879IN
ENS Nameavocado.micka.eth
4.99926939 ETH0.0007083433.73066831
Transfer204606862024-08-05 6:50:59185 days ago1722840659IN
ENS Nameavocado.micka.eth
90.05366097 ETH0.0035269136.00607348
Transfer194898492024-03-22 11:24:35321 days ago1711106675IN
ENS Nameavocado.micka.eth
0.98101248 ETH0.0005422520.91076269

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
217454882025-01-31 15:45:236 days ago1738338323
ENS Nameavocado.micka.eth
119.60338436 ETH
217454732025-01-31 15:42:236 days ago1738338143
ENS Nameavocado.micka.eth
119.60338436 ETH
217453962025-01-31 15:26:596 days ago1738337219
ENS Nameavocado.micka.eth
100 ETH
217453882025-01-31 15:25:236 days ago1738337123
ENS Nameavocado.micka.eth
100 ETH
217453492025-01-31 15:17:356 days ago1738336655
ENS Nameavocado.micka.eth
100 ETH
217453412025-01-31 15:15:596 days ago1738336559
ENS Nameavocado.micka.eth
100 ETH
216177632025-01-13 19:50:1124 days ago1736797811
ENS Nameavocado.micka.eth
16.47266348 ETH
216177632025-01-13 19:50:1124 days ago1736797811
ENS Nameavocado.micka.eth
16.47266348 ETH
216005992025-01-11 10:19:3526 days ago1736590775
ENS Nameavocado.micka.eth
15.38525624 ETH
216005992025-01-11 10:19:3526 days ago1736590775
ENS Nameavocado.micka.eth
15.38525624 ETH
214385182024-12-19 19:00:4749 days ago1734634847
ENS Nameavocado.micka.eth
14.20251666 ETH
214385182024-12-19 19:00:4749 days ago1734634847
ENS Nameavocado.micka.eth
14.20251666 ETH
214210162024-12-17 8:18:5951 days ago1734423539
ENS Nameavocado.micka.eth
0.00047469 ETH
214210082024-12-17 8:17:2351 days ago1734423443
ENS Nameavocado.micka.eth
0.00047469 ETH
214208722024-12-17 7:50:1151 days ago1734421811
ENS Nameavocado.micka.eth
39.015482 ETH
214208652024-12-17 7:48:4751 days ago1734421727
ENS Nameavocado.micka.eth
24.47492601 ETH
214207942024-12-17 7:34:3551 days ago1734420875
ENS Nameavocado.micka.eth
13.43426845 ETH
212674692024-11-25 21:31:5973 days ago1732570319
ENS Nameavocado.micka.eth
90.07702825 ETH
212674692024-11-25 21:31:5973 days ago1732570319
ENS Nameavocado.micka.eth
90.07703661 ETH
212292862024-11-20 13:35:4778 days ago1732109747
ENS Nameavocado.micka.eth
0.10627917 ETH
211870492024-11-14 16:12:4784 days ago1731600767
ENS Nameavocado.micka.eth
39.99999999 ETH
211870492024-11-14 16:12:4784 days ago1731600767
ENS Nameavocado.micka.eth
40 ETH
211421942024-11-08 10:02:1190 days ago1731060131
ENS Nameavocado.micka.eth
 Contract Creation0 ETH
211421412024-11-08 9:51:2390 days ago1731059483
ENS Nameavocado.micka.eth
30.024249 ETH
211421412024-11-08 9:51:2390 days ago1731059483
ENS Nameavocado.micka.eth
30.024249 ETH
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xE95EC44a...68Ec5127a
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
Avocado

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 10000000 runs

Other Settings:
default evmVersion
File 1 of 1 : Avocado.sol
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.18;

/// @title   IAvocado
/// @notice  interface to access internal vars on-chain
interface IAvocado {
    function _avoImpl() external view returns (address);

    function _data() external view returns (uint256);

    function _owner() external view returns (address);
}

/// @title      Avocado
/// @notice     Proxy for Avocados as deployed by the AvoFactory.
///             Basic Proxy with fallback to delegate and address for implementation contract at storage 0x0
//
// @dev        If this contract changes then the deployment addresses for new Avocados through factory change too!!
//             Relayers might want to pass in version as new param then to forward to the correct factory
contract Avocado {
    /// @notice flexible immutable data slot.
    /// first 20 bytes: address owner
    /// next 4 bytes: uint32 index
    /// next 1 byte: uint8 type
    /// next 9 bytes: used flexible for use-cases found in the future
    uint256 internal immutable _data;

    /// @notice address of the Avocado logic / implementation contract. IMPORTANT: SAME STORAGE SLOT AS FOR PROXY
    //
    // @dev    _avoImpl MUST ALWAYS be the first declared variable here in the proxy and in the logic contract
    //         when upgrading, the storage at memory address 0x0 is upgraded (first slot).
    //         To reduce deployment costs this variable is internal but can still be retrieved with
    //         _avoImpl(), see code and comments in fallback below
    address internal _avoImpl;

    /// @notice   sets _avoImpl & immutable _data, fetching it from msg.sender.
    //
    // @dev      those values are not input params to not influence the deterministic Create2 address!
    constructor() {
        // "\x8c\x65\x73\x89" is hardcoded bytes of function selector for transientDeployData()
        (, bytes memory deployData_) = msg.sender.staticcall(bytes("\x8c\x65\x73\x89"));

        address impl_;
        uint256 data_;
        assembly {
            // cast first 20 bytes to version address (_avoImpl)
            impl_ := mload(add(deployData_, 0x20))

            // cast bytes in position 0x40 to uint256 data; deployData_ plus 0x40 due to padding
            data_ := mload(add(deployData_, 0x40))
        }

        _data = data_;
        _avoImpl = impl_;
    }

    /// @notice Delegates the current call to `_avoImpl` unless one of the view methods is called:
    ///         `_avoImpl()` returns the address for `_avoImpl`, `_owner()` returns the first
    ///         20 bytes of `_data`, `_data()` returns `_data`.
    //
    // @dev    Mostly based on OpenZeppelin Proxy.sol
    // logic contract must not implement a function `_avoImpl()`, `_owner()` or  `_data()`
    // as they will not be callable due to collision
    fallback() external payable {
        uint256 data_ = _data;
        assembly {
            let functionSelector_ := calldataload(0)

            // 0xb2bdfa7b = function selector for _owner()
            if eq(functionSelector_, 0xb2bdfa7b00000000000000000000000000000000000000000000000000000000) {
                // store address owner at memory address 0x0, loading only last 20 bytes through the & mask
                mstore(0, and(data_, 0x000000000000000000000000ffffffffffffffffffffffffffffffffffffffff))
                return(0, 0x20) // send 32 bytes of memory slot 0 as return value
            }

            // 0x68beab3f = function selector for _data()
            if eq(functionSelector_, 0x68beab3f00000000000000000000000000000000000000000000000000000000) {
                mstore(0, data_) // store uint256 _data at memory address 0x0
                return(0, 0x20) // send 32 bytes of memory slot 0 as return value
            }

            // load address avoImpl_ from storage
            let avoImpl_ := and(sload(0), 0xffffffffffffffffffffffffffffffffffffffff)

            // first 4 bytes of calldata specify which function to call.
            // if those first 4 bytes == 874095c6 (function selector for _avoImpl()) then we return the _avoImpl address
            // The value is right padded to 32-bytes with 0s
            if eq(functionSelector_, 0x874095c600000000000000000000000000000000000000000000000000000000) {
                mstore(0, avoImpl_) // store address avoImpl_ at memory address 0x0
                return(0, 0x20) // send 32 bytes of memory slot 0 as return value
            }

            // @dev code below is taken from OpenZeppelin Proxy.sol _delegate function

            // 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(), avoImpl_, 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())
            }
        }
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 10000000
  },
  "libraries": {},
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"}]

Deployed Bytecode

0x60806040527f000000000000000000000000c20a57e29f5333871d985da6b0b230ac8816d9b56000357f4d42058500000000000000000000000000000000000000000000000000000000810161006f5773ffffffffffffffffffffffffffffffffffffffff821660005260206000f35b7f68beab3f0000000000000000000000000000000000000000000000000000000081036100a0578160005260206000f35b73ffffffffffffffffffffffffffffffffffffffff600054167f874095c60000000000000000000000000000000000000000000000000000000082036100ea578060005260206000f35b3660008037600080366000845af49150503d6000803e80801561010c573d6000f35b3d6000fdfea2646970667358221220bf171834b0948ebffd196d6a4208dbd5d0a71f76dfac9d90499de318c59558fc64736f6c63430008120033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.