ETH Price: $1,456.61 (-7.72%)

Contract

0x18a54e8CD7E4dD05E09E1731aC6e085143b52F65
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Execute179583262023-08-20 20:25:11597 days ago1692563111IN
0x18a54e8C...143b52F65
0 ETH0.0021305916.83255441
Propose179583012023-08-20 20:20:11597 days ago1692562811IN
0x18a54e8C...143b52F65
0 ETH0.002513815.18869066

Latest 3 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer179583262023-08-20 20:25:11597 days ago1692563111
0x18a54e8C...143b52F65
0.1 ETH
Transfer179582642023-08-20 20:12:47597 days ago1692562367
0x18a54e8C...143b52F65
0.1 ETH
0x60a06040179565122023-08-20 14:20:11597 days ago1692541211  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

API
[{"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"}]

60a060405261025480380380610014816100df565b92833981016040828203126100c45781516001600160a01b03811681036100c45760208381015190936001600160401b0382116100c4570182601f820112156100c45780519061006b61006683610109565b6100df565b938285528583830101116100c45760005b8281106100b15750506100959360009184010152610124565b60405160da908161017a823960805181818160190152606f0152f35b818101860151858201870152850161007c565b600080fd5b634e487b7160e01b600052604160045260246000fd5b6040519190601f01601f191682016001600160401b0381118382101761010457604052565b6100c9565b6001600160401b03811161010457601f01601f191660200190565b6080819052815160009283926020909101906001600160a01b03165af43d15610171573d9061015561006683610109565b9182523d6000602084013e5b156101695750565b602081519101fd5b60609061016156fe60806040526004361015604a575b600036818037808036817f00000000000000000000000000000000000000000000000000000000000000005af43d82803e156046573d90f35b3d90fd5b6000803560e01c6356973ee514605f5750600d565b3460a1578060031936011260a1577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b80fdfea264697066735822122071fb9b5f96e8d1bb39716cafe53eda307c95659122e63328b4b21a20a30944a064736f6c63430008140033000000000000000000000000b676cfeeed5c7b739452a502f1eff9ab684a56da000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000004e42d992cd3000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000004400000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000048000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000360000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000093a80000000000000000000000000000000000000000000000000000000000000003c00000000000000000000000000000000000000000000000000000000000001f4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fa000000000000000000000000f7f52dd34bc21eda08c0b804c7c1dbc48375820f00000000000000000000000000000000000000000000000000000000000000090000000000000000000000008553bc4ffcb9cdb33e609aa3a530b8aa252c0e6800000000000000000000000036a808d7e9b8a8003bcc6c17dec8825f097be862000000000000000000000000ed4c9fa4c4675f5b396b9495bc6e6312c75c5f160000000000000000000000001ba9c113b45884440dbeadb24934764c0d3eba7300000000000000000000000066f8575bd17fdae229ce863b26a24a6da45b5abf000000000000000000000000171e526cc272657486848c9b93bb2a1d8ffa4da500000000000000000000000057f44b601d3184fc940779ce5c9f8e23cfa528350000000000000000000000009547e9f00354b1555b3f00f7f7a04d09a9ec3e1f0000000000000000000000001134c859293d7168808c43b21926061976b178c600000000000000000000000000000000000000000000000000000000000000114c617374204f6e65205374616e64696e6700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000114c617374204f6e65205374616e64696e67000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000f63cd8b4c90f5d502fa049a6d93ddb2327ba783b00000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361015604a575b600036818037808036817f000000000000000000000000b676cfeeed5c7b739452a502f1eff9ab684a56da5af43d82803e156046573d90f35b3d90fd5b6000803560e01c6356973ee514605f5750600d565b3460a1578060031936011260a1577f000000000000000000000000b676cfeeed5c7b739452a502f1eff9ab684a56da6001600160a01b03166080908152602090f35b80fdfea264697066735822122071fb9b5f96e8d1bb39716cafe53eda307c95659122e63328b4b21a20a30944a064736f6c63430008140033

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

000000000000000000000000b676cfeeed5c7b739452a502f1eff9ab684a56da000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000004e42d992cd3000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000004400000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000048000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000360000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000093a80000000000000000000000000000000000000000000000000000000000000003c00000000000000000000000000000000000000000000000000000000000001f4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fa000000000000000000000000f7f52dd34bc21eda08c0b804c7c1dbc48375820f00000000000000000000000000000000000000000000000000000000000000090000000000000000000000008553bc4ffcb9cdb33e609aa3a530b8aa252c0e6800000000000000000000000036a808d7e9b8a8003bcc6c17dec8825f097be862000000000000000000000000ed4c9fa4c4675f5b396b9495bc6e6312c75c5f160000000000000000000000001ba9c113b45884440dbeadb24934764c0d3eba7300000000000000000000000066f8575bd17fdae229ce863b26a24a6da45b5abf000000000000000000000000171e526cc272657486848c9b93bb2a1d8ffa4da500000000000000000000000057f44b601d3184fc940779ce5c9f8e23cfa528350000000000000000000000009547e9f00354b1555b3f00f7f7a04d09a9ec3e1f0000000000000000000000001134c859293d7168808c43b21926061976b178c600000000000000000000000000000000000000000000000000000000000000114c617374204f6e65205374616e64696e6700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000114c617374204f6e65205374616e64696e67000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000f63cd8b4c90f5d502fa049a6d93ddb2327ba783b00000000000000000000000000000000000000000000000000000000

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

-----Encoded View---------------
43 Constructor Arguments found :
Arg [0] : 000000000000000000000000b676cfeeed5c7b739452a502f1eff9ab684a56da
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [2] : 00000000000000000000000000000000000000000000000000000000000004e4
Arg [3] : 2d992cd300000000000000000000000000000000000000000000000000000000
Arg [4] : 0000002000000000000000000000000000000000000000000000000000000000
Arg [5] : 000000a000000000000000000000000000000000000000000000000000000000
Arg [6] : 0000044000000000000000000000000000000000000000000000000000000000
Arg [7] : 0000046000000000000000000000000000000000000000000000000000000000
Arg [8] : 0000048000000000000000000000000000000000000000000000000000000000
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [10] : 0000010000000000000000000000000000000000000000000000000000000000
Arg [11] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [12] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [13] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [14] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [15] : 0000032000000000000000000000000000000000000000000000000000000000
Arg [16] : 0000036000000000000000000000000000000000000000000000000000000000
Arg [17] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [18] : 000000e000000000000000000000000000000000000000000000000000000000
Arg [19] : 00093a8000000000000000000000000000000000000000000000000000000000
Arg [20] : 0000003c00000000000000000000000000000000000000000000000000000000
Arg [21] : 000001f400000000000000000000000000000000000000000000000000000000
Arg [22] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [23] : 000000fa000000000000000000000000f7f52dd34bc21eda08c0b804c7c1dbc4
Arg [24] : 8375820f00000000000000000000000000000000000000000000000000000000
Arg [25] : 000000090000000000000000000000008553bc4ffcb9cdb33e609aa3a530b8aa
Arg [26] : 252c0e6800000000000000000000000036a808d7e9b8a8003bcc6c17dec8825f
Arg [27] : 097be862000000000000000000000000ed4c9fa4c4675f5b396b9495bc6e6312
Arg [28] : c75c5f160000000000000000000000001ba9c113b45884440dbeadb24934764c
Arg [29] : 0d3eba7300000000000000000000000066f8575bd17fdae229ce863b26a24a6d
Arg [30] : a45b5abf000000000000000000000000171e526cc272657486848c9b93bb2a1d
Arg [31] : 8ffa4da500000000000000000000000057f44b601d3184fc940779ce5c9f8e23
Arg [32] : cfa528350000000000000000000000009547e9f00354b1555b3f00f7f7a04d09
Arg [33] : a9ec3e1f0000000000000000000000001134c859293d7168808c43b219260619
Arg [34] : 76b178c600000000000000000000000000000000000000000000000000000000
Arg [35] : 000000114c617374204f6e65205374616e64696e670000000000000000000000
Arg [36] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [37] : 000000114c617374204f6e65205374616e64696e670000000000000000000000
Arg [38] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [39] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [40] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [41] : 00000001000000000000000000000000f63cd8b4c90f5d502fa049a6d93ddb23
Arg [42] : 27ba783b00000000000000000000000000000000000000000000000000000000


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.