ETH Price: $3,352.25 (+0.51%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Execute183592792023-10-16 0:13:35443 days ago1697415215IN
0xF2F3e34d...5C0b6782d
0 ETH0.000952065.19818805
Accept183592662023-10-16 0:10:59443 days ago1697415059IN
0xF2F3e34d...5C0b6782d
0 ETH0.000347285.02784588
Accept183592492023-10-16 0:07:35443 days ago1697414855IN
0xF2F3e34d...5C0b6782d
0 ETH0.000382665.53998088
Accept183592352023-10-16 0:04:47443 days ago1697414687IN
0xF2F3e34d...5C0b6782d
0 ETH0.000509317.37355269
Accept183592212023-10-16 0:01:47443 days ago1697414507IN
0xF2F3e34d...5C0b6782d
0 ETH0.000410385.9412519
Accept183592082023-10-15 23:59:11443 days ago1697414351IN
0xF2F3e34d...5C0b6782d
0 ETH0.000381815.5277228
Accept183591952023-10-15 23:56:23443 days ago1697414183IN
0xF2F3e34d...5C0b6782d
0 ETH0.000406845.89006017
Accept183591792023-10-15 23:53:11443 days ago1697413991IN
0xF2F3e34d...5C0b6782d
0 ETH0.000370835.25457215
Accept183591672023-10-15 23:50:47443 days ago1697413847IN
0xF2F3e34d...5C0b6782d
0 ETH0.000394915.71085827
Accept183591502023-10-15 23:47:23443 days ago1697413643IN
0xF2F3e34d...5C0b6782d
0 ETH0.00049857.20891419
Propose183591382023-10-15 23:44:59443 days ago1697413499IN
0xF2F3e34d...5C0b6782d
0 ETH0.000876615.42166385

Latest 3 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
183592792023-10-16 0:13:35443 days ago1697415215
0xF2F3e34d...5C0b6782d
0.15 ETH
183591372023-10-15 23:44:47443 days ago1697413487
0xF2F3e34d...5C0b6782d
0.15 ETH
183589222023-10-15 23:01:35443 days ago1697410895  Contract Creation0 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Proxy

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion
File 1 of 3 : Proxy.sol
// SPDX-License-Identifier: GPL-3.0
pragma solidity 0.8.20;

import "./LibRawResult.sol";
import "./Implementation.sol";

/// @notice Base class for all proxy contracts.
contract Proxy {
    using LibRawResult for bytes;

    /// @notice The address of the implementation contract used by this proxy.
    Implementation public immutable IMPL;

    // Made `payable` to allow initialized crowdfunds to receive ETH as an
    // initial contribution.
    constructor(Implementation impl, bytes memory initCallData) payable {
        IMPL = impl;
        (bool s, bytes memory r) = address(impl).delegatecall(initCallData);
        if (!s) {
            r.rawRevert();
        }
    }

    // Forward all calls to the implementation.
    fallback() external payable {
        Implementation impl = IMPL;
        assembly {
            calldatacopy(0x00, 0x00, calldatasize())
            let s := delegatecall(gas(), impl, 0x00, calldatasize(), 0x00, 0)
            returndatacopy(0x00, 0x00, returndatasize())
            if iszero(s) {
                revert(0x00, returndatasize())
            }
            return(0x00, returndatasize())
        }
    }
}

File 2 of 3 : LibRawResult.sol
// SPDX-License-Identifier: GPL-3.0
pragma solidity 0.8.20;

library LibRawResult {
    // Revert with the data in `b`.
    function rawRevert(bytes memory b) internal pure {
        assembly {
            revert(add(b, 32), mload(b))
        }
    }

    // Return with the data in `b`.
    function rawReturn(bytes memory b) internal pure {
        assembly {
            return(add(b, 32), mload(b))
        }
    }
}

File 3 of 3 : Implementation.sol
// SPDX-License-Identifier: GPL-3.0
pragma solidity 0.8.20;

// Base contract for all contracts intended to be delegatecalled into.
abstract contract Implementation {
    error OnlyDelegateCallError();
    error OnlyConstructorError();

    address public immutable IMPL;

    constructor() {
        IMPL = address(this);
    }

    // Reverts if the current function context is not inside of a delegatecall.
    modifier onlyDelegateCall() virtual {
        if (address(this) == IMPL) {
            revert OnlyDelegateCallError();
        }
        _;
    }

    // Reverts if the current function context is not inside of a constructor.
    modifier onlyConstructor() {
        if (address(this).code.length != 0) {
            revert OnlyConstructorError();
        }
        _;
    }
}

Settings
{
  "remappings": [
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
    "forge-std/=lib/forge-std/src/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/",
    "openzeppelin/=lib/openzeppelin-contracts/",
    "solmate/=lib/solmate/src/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "paris",
  "libraries": {},
  "viaIR": true
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"contract Implementation","name":"impl","type":"address"},{"internalType":"bytes","name":"initCallData","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"IMPL","outputs":[{"internalType":"contract Implementation","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60a060405261025480380380610014816100df565b92833981016040828203126100c45781516001600160a01b03811681036100c45760208381015190936001600160401b0382116100c4570182601f820112156100c45780519061006b61006683610109565b6100df565b938285528583830101116100c45760005b8281106100b15750506100959360009184010152610124565b60405160da908161017a823960805181818160190152606f0152f35b818101860151858201870152850161007c565b600080fd5b634e487b7160e01b600052604160045260246000fd5b6040519190601f01601f191682016001600160401b0381118382101761010457604052565b6100c9565b6001600160401b03811161010457601f01601f191660200190565b6080819052815160009283926020909101906001600160a01b03165af43d15610171573d9061015561006683610109565b9182523d6000602084013e5b156101695750565b602081519101fd5b60609061016156fe60806040526004361015604a575b600036818037808036817f00000000000000000000000000000000000000000000000000000000000000005af43d82803e156046573d90f35b3d90fd5b6000803560e01c6356973ee514605f5750600d565b3460a1578060031936011260a1577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b80fdfea264697066735822122071fb9b5f96e8d1bb39716cafe53eda307c95659122e63328b4b21a20a30944a064736f6c63430008140033000000000000000000000000b676cfeeed5c7b739452a502f1eff9ab684a56da000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000005042d992cd3000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000048000000000000000000000000000000000000000000000000000000000000004a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000003400000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000001275000000000000000000000000000000000000000000000000000000000000009ab00000000000000000000000000000000000000000000000000000000000000fa0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fa000000000000000000000000f7f52dd34bc21eda08c0b804c7c1dbc48375820f000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000041691930be6b64874d963b5b798c2330114409f500000000000000000000000083867e4c54bb1ef9e060ccbfd24a1a204116b91b000000000000000000000000a418e70908dd46de41116111d629ee7471f47c85000000000000000000000000beebce9ea3969edca1f5cc707b584c913ca19e0600000000000000000000000054ff3bc355822e3e4b25106638e25701f5a3fd1800000000000000000000000073f2b8de0d775dfb084e8e16ab82d4e6e55c763c000000000000000000000000bfc8cb1a5b25bc59036aa1d293c24392f826414300000000000000000000000058537e50eec168ccf8f97f17681a63f5d0a9b8b50000000000000000000000008adf75cd4e08c6379cc50e162018f83f6eaab6e6000000000000000000000000725bd82b657c9fde2aa3faebe6effe4663834ab70000000000000000000000000000000000000000000000000000000000000008427574746c6f76650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008427574746c6f76650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000009b21ca4aff9d5e1af8576bf250628fa8227f805400000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361015604a575b600036818037808036817f000000000000000000000000b676cfeeed5c7b739452a502f1eff9ab684a56da5af43d82803e156046573d90f35b3d90fd5b6000803560e01c6356973ee514605f5750600d565b3460a1578060031936011260a1577f000000000000000000000000b676cfeeed5c7b739452a502f1eff9ab684a56da6001600160a01b03166080908152602090f35b80fdfea264697066735822122071fb9b5f96e8d1bb39716cafe53eda307c95659122e63328b4b21a20a30944a064736f6c63430008140033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000b676cfeeed5c7b739452a502f1eff9ab684a56da000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000005042d992cd3000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000048000000000000000000000000000000000000000000000000000000000000004a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000003400000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000001275000000000000000000000000000000000000000000000000000000000000009ab00000000000000000000000000000000000000000000000000000000000000fa0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fa000000000000000000000000f7f52dd34bc21eda08c0b804c7c1dbc48375820f000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000041691930be6b64874d963b5b798c2330114409f500000000000000000000000083867e4c54bb1ef9e060ccbfd24a1a204116b91b000000000000000000000000a418e70908dd46de41116111d629ee7471f47c85000000000000000000000000beebce9ea3969edca1f5cc707b584c913ca19e0600000000000000000000000054ff3bc355822e3e4b25106638e25701f5a3fd1800000000000000000000000073f2b8de0d775dfb084e8e16ab82d4e6e55c763c000000000000000000000000bfc8cb1a5b25bc59036aa1d293c24392f826414300000000000000000000000058537e50eec168ccf8f97f17681a63f5d0a9b8b50000000000000000000000008adf75cd4e08c6379cc50e162018f83f6eaab6e6000000000000000000000000725bd82b657c9fde2aa3faebe6effe4663834ab70000000000000000000000000000000000000000000000000000000000000008427574746c6f76650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008427574746c6f76650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000009b21ca4aff9d5e1af8576bf250628fa8227f805400000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : impl (address): 0xb676cfeEeD5c7B739452a502F1Eff9Ab684A56Da
Arg [1] : initCallData (bytes): 0x2d992cd3000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000048000000000000000000000000000000000000000000000000000000000000004a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000003400000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000001275000000000000000000000000000000000000000000000000000000000000009ab00000000000000000000000000000000000000000000000000000000000000fa0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fa000000000000000000000000f7f52dd34bc21eda08c0b804c7c1dbc48375820f000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000041691930be6b64874d963b5b798c2330114409f500000000000000000000000083867e4c54bb1ef9e060ccbfd24a1a204116b91b000000000000000000000000a418e70908dd46de41116111d629ee7471f47c85000000000000000000000000beebce9ea3969edca1f5cc707b584c913ca19e0600000000000000000000000054ff3bc355822e3e4b25106638e25701f5a3fd1800000000000000000000000073f2b8de0d775dfb084e8e16ab82d4e6e55c763c000000000000000000000000bfc8cb1a5b25bc59036aa1d293c24392f826414300000000000000000000000058537e50eec168ccf8f97f17681a63f5d0a9b8b50000000000000000000000008adf75cd4e08c6379cc50e162018f83f6eaab6e6000000000000000000000000725bd82b657c9fde2aa3faebe6effe4663834ab70000000000000000000000000000000000000000000000000000000000000008427574746c6f76650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008427574746c6f76650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000009b21ca4aff9d5e1af8576bf250628fa8227f8054

-----Encoded View---------------
44 Constructor Arguments found :
Arg [0] : 000000000000000000000000b676cfeeed5c7b739452a502f1eff9ab684a56da
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000504
Arg [3] : 2d992cd300000000000000000000000000000000000000000000000000000000
Arg [4] : 0000002000000000000000000000000000000000000000000000000000000000
Arg [5] : 000000a000000000000000000000000000000000000000000000000000000000
Arg [6] : 0000046000000000000000000000000000000000000000000000000000000000
Arg [7] : 0000048000000000000000000000000000000000000000000000000000000000
Arg [8] : 000004a000000000000000000000000000000000000000000000000000000000
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [10] : 0000010000000000000000000000000000000000000000000000000000000000
Arg [11] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [12] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [13] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [14] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [15] : 0000034000000000000000000000000000000000000000000000000000000000
Arg [16] : 0000038000000000000000000000000000000000000000000000000000000000
Arg [17] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [18] : 000000e000000000000000000000000000000000000000000000000000000000
Arg [19] : 0012750000000000000000000000000000000000000000000000000000000000
Arg [20] : 00009ab000000000000000000000000000000000000000000000000000000000
Arg [21] : 00000fa000000000000000000000000000000000000000000000000000000000
Arg [22] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [23] : 000000fa000000000000000000000000f7f52dd34bc21eda08c0b804c7c1dbc4
Arg [24] : 8375820f00000000000000000000000000000000000000000000000000000000
Arg [25] : 0000000a00000000000000000000000041691930be6b64874d963b5b798c2330
Arg [26] : 114409f500000000000000000000000083867e4c54bb1ef9e060ccbfd24a1a20
Arg [27] : 4116b91b000000000000000000000000a418e70908dd46de41116111d629ee74
Arg [28] : 71f47c85000000000000000000000000beebce9ea3969edca1f5cc707b584c91
Arg [29] : 3ca19e0600000000000000000000000054ff3bc355822e3e4b25106638e25701
Arg [30] : f5a3fd1800000000000000000000000073f2b8de0d775dfb084e8e16ab82d4e6
Arg [31] : e55c763c000000000000000000000000bfc8cb1a5b25bc59036aa1d293c24392
Arg [32] : f826414300000000000000000000000058537e50eec168ccf8f97f17681a63f5
Arg [33] : d0a9b8b50000000000000000000000008adf75cd4e08c6379cc50e162018f83f
Arg [34] : 6eaab6e6000000000000000000000000725bd82b657c9fde2aa3faebe6effe46
Arg [35] : 63834ab700000000000000000000000000000000000000000000000000000000
Arg [36] : 00000008427574746c6f76650000000000000000000000000000000000000000
Arg [37] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [38] : 00000008427574746c6f76650000000000000000000000000000000000000000
Arg [39] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [40] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [41] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [42] : 000000010000000000000000000000009b21ca4aff9d5e1af8576bf250628fa8
Arg [43] : 227f805400000000000000000000000000000000000000000000000000000000


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.