ETH Price: $1,974.92 (+0.26%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Change Owner242964592026-01-23 9:01:4730 days ago1769158907IN
0xaC7eA947...AEe0F79F6
0 ETH0.000001680.05131166
Relay239786892025-12-10 0:11:5974 days ago1765325519IN
0xaC7eA947...AEe0F79F6
0 ETH0.000022780.30771725

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
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 0x535e274E...6fd693AaA
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
Proxy

Compiler Version
v0.8.30+commit.73712a01

Optimization Enabled:
Yes with 1000000 runs

Other Settings:
prague EvmVersion

Contract Source Code (Solidity Standard Json-Input format)

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.30;

/// @dev Zero implementation address.
error ZeroImplementationAddress();

/// @dev Zero proxy data.
error ZeroProxyData();

/// @dev Proxy initialization failed.
error InitializationFailed();

/*
* This is a proxy contract.
* Proxy implementation is created based on the Slots (ERC-1967) and Universal Upgradeable Proxy Standard (UUPS) EIP-1822.
* The implementation address must be located in a unique storage slot of the proxy contract.
* The upgrade logic must be located in the implementation contract.
* Special lock implementation address slot is produced by hashing the "eip1967.proxy.implementation"
* string in order to make the slot unique.
* The fallback() implementation for all the delegatecall-s is inspired by the Gnosis Safe set of contracts.
*/

/// @title Proxy - Smart contract for proxy implementation
contract Proxy {
    // Code position in storage is bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1) = "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"
    bytes32 public constant PROXY_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;

    /// @dev Proxy constructor.
    /// @param implementation Implementation address.
    /// @param proxyData Proxy initialization data.
    constructor(address implementation, bytes memory proxyData) {
        // Check for the zero address, since the delegatecall works even with the zero one
        if (implementation == address(0)) {
            revert ZeroImplementationAddress();
        }

        // Check for the zero data
        if (proxyData.length == 0) {
            revert ZeroProxyData();
        }

        // Store the lock implementation address
        assembly {
            sstore(PROXY_SLOT, implementation)
        }
        // Initialize proxy tokenomics storage
        (bool success,) = implementation.delegatecall(proxyData);
        if (!success) {
            revert InitializationFailed();
        }
    }

    /// @dev Delegatecall to all the incoming data.
    fallback() external payable {
        assembly {
            let implementation := sload(PROXY_SLOT)
            calldatacopy(0, 0, calldatasize())
            let success := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)
            returndatacopy(0, 0, returndatasize())
            if eq(success, 0) { revert(0, returndatasize()) }
            return(0, returndatasize())
        }
    }

    /// @dev Gets the implementation address.
    /// @return implementation Implementation address.
    function getImplementation() external view returns (address implementation) {
        // solhint-disable-next-line avoid-low-level-calls
        assembly {
            implementation := sload(PROXY_SLOT)
        }
    }
}

Settings
{
  "remappings": [
    "@gnosis.pm/=node_modules/@gnosis.pm/",
    "@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/",
    "@layerzerolabs/lz-evm-protocol-v2/=lib/layerzero-v2/packages/layerzero-v2/evm/protocol/",
    "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
    "@registries/=lib/autonolas-registries/",
    "@solmate/=lib/solmate/",
    "autonolas-registries/=lib/autonolas-registries/",
    "devtools/=lib/devtools/packages/toolbox-foundry/src/",
    "ds-test/=lib/autonolas-registries/lib/forge-std/lib/ds-test/src/",
    "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
    "forge-std/=lib/autonolas-registries/lib/forge-std/src/",
    "halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/",
    "layerzero-v2/=lib/layerzero-v2/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/",
    "solmate/=lib/solmate/src/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 1000000
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "prague",
  "viaIR": true
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes","name":"proxyData","type":"bytes"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InitializationFailed","type":"error"},{"inputs":[],"name":"ZeroImplementationAddress","type":"error"},{"inputs":[],"name":"ZeroProxyData","type":"error"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"PROXY_SLOT","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getImplementation","outputs":[{"internalType":"address","name":"implementation","type":"address"}],"stateMutability":"view","type":"function"}]

0x60806040523461012e576102ed8038038061001981610132565b92833981019060408183031261012e5780516001600160a01b0381169182820361012e576020810151906001600160401b03821161012e57019183601f8401121561012e57825161007161006c8261016b565b610132565b9381855260208501956020838301011161012e57815f926020809301885e850101521561011f57815115610110575f928392827f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5551915af43d1561010b573d6100dd61006c8261016b565b9081525f60203d92013e5b156100fc5760405161016690816101878239f35b630337323560e31b5f5260045ffd5b6100e8565b6376e27ff360e11b5f5260045ffd5b63d02c623d60e01b5f5260045ffd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761015757604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03811161015757601f01601f19166020019056fe6080604052600436106100f2575f3560e01c8063aa3d10df1461009a5763aaf10f42036100f25734610096575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100965760207f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff60405191168152f35b5f80fd5b34610096575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610096577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60805260206080f35b5f807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54368280378136915af43d5f803e1561012c573d5ff35b3d5ffdfea26469706673582212207f9cd4396cc1ca8859f9a2162bed7466391148754ab67bc1292ca6b5340bc80664736f6c634300081e003300000000000000000000000014c85a5a21a26542b672ed53e80e3eef4ce9394d000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000048129fc1c00000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106100f2575f3560e01c8063aa3d10df1461009a5763aaf10f42036100f25734610096575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100965760207f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff60405191168152f35b5f80fd5b34610096575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610096577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60805260206080f35b5f807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54368280378136915af43d5f803e1561012c573d5ff35b3d5ffdfea26469706673582212207f9cd4396cc1ca8859f9a2162bed7466391148754ab67bc1292ca6b5340bc80664736f6c634300081e0033

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.