ETH Price: $2,778.08 (+0.23%)
 

More Info

Private Name Tags

Multichain Info

Transaction Hash
Method
Block
From
To

There are no matching entries

> 10 Internal Transactions and > 10 Token Transfers found.

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer232788832025-09-03 0:04:5982 days ago1756857899
0x9e5A56d5...e07CCB4FA
169.63210614 ETH
Smart Swap By Or...232788662025-09-03 0:01:3582 days ago1756857695
0x9e5A56d5...e07CCB4FA
169.632106 ETH
Transfer232788612025-09-03 0:00:3582 days ago1756857635
0x9e5A56d5...e07CCB4FA
169.63210568 ETH
Swap Exact Amoun...232700422025-09-01 18:21:5983 days ago1756750919
0x9e5A56d5...e07CCB4FA
399.143115 ETH
Smart Swap By Or...232700372025-09-01 18:20:5983 days ago1756750859
0x9e5A56d5...e07CCB4FA
399.143115 ETH
Transfer232700312025-09-01 18:19:4783 days ago1756750787
0x9e5A56d5...e07CCB4FA
399.14311546 ETH
Transfer231249072025-08-12 12:16:47103 days ago1755001007
0x9e5A56d5...e07CCB4FA
2 wei
Swap231249072025-08-12 12:16:47103 days ago1755001007
0x9e5A56d5...e07CCB4FA
1.56162678 ETH
Transfer231248902025-08-12 12:13:23103 days ago1755000803
0x9e5A56d5...e07CCB4FA
1.56162678 ETH
Deposit227846612025-06-25 23:13:23151 days ago1750893203
0x9e5A56d5...e07CCB4FA
125.00000019 ETH
Transfer227323932025-06-18 15:54:59158 days ago1750262099
0x9e5A56d5...e07CCB4FA
125 ETH
Swap224610532025-05-11 15:41:59196 days ago1746978119
0x9e5A56d5...e07CCB4FA
1,693.7 ETH
Transfer224610462025-05-11 15:40:35196 days ago1746978035
0x9e5A56d5...e07CCB4FA
1,193.6 ETH
Transfer217947822025-02-07 12:58:47289 days ago1738933127
0x9e5A56d5...e07CCB4FA
500.1 ETH
Swap215531852025-01-04 19:24:23323 days ago1736018663
0x9e5A56d5...e07CCB4FA
93.01036 ETH
Swap Compact215531612025-01-04 19:19:35323 days ago1736018375
0x9e5A56d5...e07CCB4FA
7 ETH
Swap215531322025-01-04 19:13:47323 days ago1736018027
0x9e5A56d5...e07CCB4FA
200 ETH
Transfer215530912025-01-04 19:05:23323 days ago1736017523
0x9e5A56d5...e07CCB4FA
300 ETH
Start Bridge Tok...202722172024-07-09 23:28:35502 days ago1720567715
0x9e5A56d5...e07CCB4FA
49.97005526 ETH
Transfer202722122024-07-09 23:27:35502 days ago1720567655
0x9e5A56d5...e07CCB4FA
49.97532407 ETH
Operate193211792024-02-27 20:09:23635 days ago1709064563
0x9e5A56d5...e07CCB4FA
14.99 ETH
Operate193211792024-02-27 20:09:23635 days ago1709064563
0x9e5A56d5...e07CCB4FA
15 ETH
Transfer193155212024-02-27 1:10:23635 days ago1708996223
0x9e5A56d5...e07CCB4FA
29.99509085 ETH
Transfer192758642024-02-21 11:54:11641 days ago1708516451
0x9e5A56d5...e07CCB4FA
450.009307 ETH
Transfer192758482024-02-21 11:50:59641 days ago1708516259
0x9e5A56d5...e07CCB4FA
220.00930752 ETH
View All Internal Transactions
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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

Contract Source Code (Solidity Standard Json-Input format)

// 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

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

0x60a060405234801561001057600080fd5b5060408051808201825260048152638c65738960e01b60208201529051600091339161003c91906100b2565b600060405180830381855afa9150503d8060008114610077576040519150601f19603f3d011682016040523d82523d6000602084013e61007c565b606091505b506020810151604090910151608052600080546001600160a01b0319166001600160a01b03909216919091179055506100e19050565b6000825160005b818110156100d357602081860181015185830152016100b9565b506000920191825250919050565b6080516101476100fb6000396000600601526101476000f3fe60806040527f00000000000000000000000000000000000000000000000000000000000000006000357f4d42058500000000000000000000000000000000000000000000000000000000810161006f5773ffffffffffffffffffffffffffffffffffffffff821660005260206000f35b7f68beab3f0000000000000000000000000000000000000000000000000000000081036100a0578160005260206000f35b73ffffffffffffffffffffffffffffffffffffffff600054167f874095c60000000000000000000000000000000000000000000000000000000082036100ea578060005260206000f35b3660008037600080366000845af49150503d6000803e80801561010c573d6000f35b3d6000fdfea2646970667358221220bf171834b0948ebffd196d6a4208dbd5d0a71f76dfac9d90499de318c59558fc64736f6c63430008120033

Deployed Bytecode

0x60806040527f000000000000000000000000c7810aa3b0c6a2778eecc114b93d59b2e9da9e056000357f4d42058500000000000000000000000000000000000000000000000000000000810161006f5773ffffffffffffffffffffffffffffffffffffffff821660005260206000f35b7f68beab3f0000000000000000000000000000000000000000000000000000000081036100a0578160005260206000f35b73ffffffffffffffffffffffffffffffffffffffff600054167f874095c60000000000000000000000000000000000000000000000000000000082036100ea578060005260206000f35b3660008037600080366000845af49150503d6000803e80801561010c573d6000f35b3d6000fdfea2646970667358221220bf171834b0948ebffd196d6a4208dbd5d0a71f76dfac9d90499de318c59558fc64736f6c63430008120033

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.