ETH Price: $2,540.86 (+0.28%)

Contract

0x01693970A9f80462cA17F398944163f480aBb712
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Execute183723112023-10-17 19:55:35316 days ago1697572535IN
0x01693970...480aBb712
0 ETH0.002108811.51386251
Accept183721282023-10-17 19:17:59316 days ago1697570279IN
0x01693970...480aBb712
0 ETH0.000699210.12276671
Accept183719682023-10-17 18:45:59316 days ago1697568359IN
0x01693970...480aBb712
0 ETH0.0007447711.79257014
Accept183717562023-10-17 18:03:23317 days ago1697565803IN
0x01693970...480aBb712
0 ETH0.0007413410.73278584
Accept183716102023-10-17 17:33:59317 days ago1697564039IN
0x01693970...480aBb712
0 ETH0.0008090311.7127516
Accept183712922023-10-17 16:29:47317 days ago1697560187IN
0x01693970...480aBb712
0 ETH0.0008520811.76799837
Accept183711312023-10-17 15:57:11317 days ago1697558231IN
0x01693970...480aBb712
0 ETH0.0008460112.24819297
Accept183709232023-10-17 15:15:23317 days ago1697555723IN
0x01693970...480aBb712
0 ETH0.0009005712.18524271
Propose183704232023-10-17 13:34:47317 days ago1697549687IN
0x01693970...480aBb712
0 ETH0.0018871511.43582452

Latest 3 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
183723112023-10-17 19:55:35316 days ago1697572535
0x01693970...480aBb712
0.15 ETH
183704222023-10-17 13:34:35317 days ago1697549675
0x01693970...480aBb712
0.15 ETH
183691032023-10-17 9:09:23317 days ago1697533763  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"}]

60a060405261025480380380610014816100df565b92833981016040828203126100c45781516001600160a01b03811681036100c45760208381015190936001600160401b0382116100c4570182601f820112156100c45780519061006b61006683610109565b6100df565b938285528583830101116100c45760005b8281106100b15750506100959360009184010152610124565b60405160da908161017a823960805181818160190152606f0152f35b818101860151858201870152850161007c565b600080fd5b634e487b7160e01b600052604160045260246000fd5b6040519190601f01601f191682016001600160401b0381118382101761010457604052565b6100c9565b6001600160401b03811161010457601f01601f191660200190565b6080819052815160009283926020909101906001600160a01b03165af43d15610171573d9061015561006683610109565b9182523d6000602084013e5b156101695750565b602081519101fd5b60609061016156fe60806040526004361015604a575b600036818037808036817f00000000000000000000000000000000000000000000000000000000000000005af43d82803e156046573d90f35b3d90fd5b6000803560e01c6356973ee514605f5750600d565b3460a1578060031936011260a1577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b80fdfea264697066735822122071fb9b5f96e8d1bb39716cafe53eda307c95659122e63328b4b21a20a30944a064736f6c63430008140033000000000000000000000000b676cfeeed5c7b739452a502f1eff9ab684a56da000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000004c42d992cd3000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000004200000000000000000000000000000000000000000000000000000000000000440000000000000000000000000000000000000000000000000000000000000046000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000340000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000003f480000000000000000000000000000000000000000000000000000000000000fd200000000000000000000000000000000000000000000000000000000000000bb8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fa000000000000000000000000f7f52dd34bc21eda08c0b804c7c1dbc48375820f00000000000000000000000000000000000000000000000000000000000000080000000000000000000000002412b48a45b4b3ac8f55f26ce8a76059ba8962d8000000000000000000000000fd3b2b2803bb4b968e255738310e4ee7de4cefdb0000000000000000000000000009ef36086c1620345d6ff2e5f51aab68075890000000000000000000000000b3a107edf162d07b7790c7f28674cbb58a5992eb000000000000000000000000f478bde9e21eafebe71cb37d876c0e6119bb7a17000000000000000000000000004dd4c3e97e1515591787360a7dc24546f00f2b000000000000000000000000b6457c24d5be5fe54ec978cfcc587f37ea67861f00000000000000000000000077ad0a96d8daacdfdc0439f33e2026c8f7f70a96000000000000000000000000000000000000000000000000000000000000000c5365636f6e64204472696e6b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c5365636f6e64204472696e6b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000092c5a0d9104dd1ea21b410c027a77b8bbbed2b4b00000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361015604a575b600036818037808036817f000000000000000000000000b676cfeeed5c7b739452a502f1eff9ab684a56da5af43d82803e156046573d90f35b3d90fd5b6000803560e01c6356973ee514605f5750600d565b3460a1578060031936011260a1577f000000000000000000000000b676cfeeed5c7b739452a502f1eff9ab684a56da6001600160a01b03166080908152602090f35b80fdfea264697066735822122071fb9b5f96e8d1bb39716cafe53eda307c95659122e63328b4b21a20a30944a064736f6c63430008140033

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

000000000000000000000000b676cfeeed5c7b739452a502f1eff9ab684a56da000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000004c42d992cd3000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000004200000000000000000000000000000000000000000000000000000000000000440000000000000000000000000000000000000000000000000000000000000046000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000340000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000003f480000000000000000000000000000000000000000000000000000000000000fd200000000000000000000000000000000000000000000000000000000000000bb8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fa000000000000000000000000f7f52dd34bc21eda08c0b804c7c1dbc48375820f00000000000000000000000000000000000000000000000000000000000000080000000000000000000000002412b48a45b4b3ac8f55f26ce8a76059ba8962d8000000000000000000000000fd3b2b2803bb4b968e255738310e4ee7de4cefdb0000000000000000000000000009ef36086c1620345d6ff2e5f51aab68075890000000000000000000000000b3a107edf162d07b7790c7f28674cbb58a5992eb000000000000000000000000f478bde9e21eafebe71cb37d876c0e6119bb7a17000000000000000000000000004dd4c3e97e1515591787360a7dc24546f00f2b000000000000000000000000b6457c24d5be5fe54ec978cfcc587f37ea67861f00000000000000000000000077ad0a96d8daacdfdc0439f33e2026c8f7f70a96000000000000000000000000000000000000000000000000000000000000000c5365636f6e64204472696e6b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c5365636f6e64204472696e6b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000092c5a0d9104dd1ea21b410c027a77b8bbbed2b4b00000000000000000000000000000000000000000000000000000000

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

-----Encoded View---------------
42 Constructor Arguments found :
Arg [0] : 000000000000000000000000b676cfeeed5c7b739452a502f1eff9ab684a56da
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [2] : 00000000000000000000000000000000000000000000000000000000000004c4
Arg [3] : 2d992cd300000000000000000000000000000000000000000000000000000000
Arg [4] : 0000002000000000000000000000000000000000000000000000000000000000
Arg [5] : 000000a000000000000000000000000000000000000000000000000000000000
Arg [6] : 0000042000000000000000000000000000000000000000000000000000000000
Arg [7] : 0000044000000000000000000000000000000000000000000000000000000000
Arg [8] : 0000046000000000000000000000000000000000000000000000000000000000
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [10] : 0000010000000000000000000000000000000000000000000000000000000000
Arg [11] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [12] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [13] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [14] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [15] : 0000030000000000000000000000000000000000000000000000000000000000
Arg [16] : 0000034000000000000000000000000000000000000000000000000000000000
Arg [17] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [18] : 000000e000000000000000000000000000000000000000000000000000000000
Arg [19] : 0003f48000000000000000000000000000000000000000000000000000000000
Arg [20] : 0000fd2000000000000000000000000000000000000000000000000000000000
Arg [21] : 00000bb800000000000000000000000000000000000000000000000000000000
Arg [22] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [23] : 000000fa000000000000000000000000f7f52dd34bc21eda08c0b804c7c1dbc4
Arg [24] : 8375820f00000000000000000000000000000000000000000000000000000000
Arg [25] : 000000080000000000000000000000002412b48a45b4b3ac8f55f26ce8a76059
Arg [26] : ba8962d8000000000000000000000000fd3b2b2803bb4b968e255738310e4ee7
Arg [27] : de4cefdb0000000000000000000000000009ef36086c1620345d6ff2e5f51aab
Arg [28] : 68075890000000000000000000000000b3a107edf162d07b7790c7f28674cbb5
Arg [29] : 8a5992eb000000000000000000000000f478bde9e21eafebe71cb37d876c0e61
Arg [30] : 19bb7a17000000000000000000000000004dd4c3e97e1515591787360a7dc245
Arg [31] : 46f00f2b000000000000000000000000b6457c24d5be5fe54ec978cfcc587f37
Arg [32] : ea67861f00000000000000000000000077ad0a96d8daacdfdc0439f33e2026c8
Arg [33] : f7f70a9600000000000000000000000000000000000000000000000000000000
Arg [34] : 0000000c5365636f6e64204472696e6b00000000000000000000000000000000
Arg [35] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [36] : 0000000c5365636f6e64204472696e6b00000000000000000000000000000000
Arg [37] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [38] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [39] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [40] : 0000000100000000000000000000000092c5a0d9104dd1ea21b410c027a77b8b
Arg [41] : bbed2b4b00000000000000000000000000000000000000000000000000000000


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.