ETH Price: $3,282.86 (+0.50%)
Gas: 2.43 Gwei

Contract

0x8F830093e8b505f72994f1C9f005D86e32AA818A
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Execute179559672023-08-20 12:30:35510 days ago1692534635IN
0x8F830093...e32AA818A
0 ETH0.0013720212.86992495
Accept179559522023-08-20 12:27:35510 days ago1692534455IN
0x8F830093...e32AA818A
0 ETH0.0008620312.48004457
Accept179559072023-08-20 12:18:35510 days ago1692533915IN
0x8F830093...e32AA818A
0 ETH0.0009541413.81357772
Accept179559032023-08-20 12:17:47510 days ago1692533867IN
0x8F830093...e32AA818A
0 ETH0.0008547413.53379675
Accept179558992023-08-20 12:16:59510 days ago1692533819IN
0x8F830093...e32AA818A
0 ETH0.0009522813.7865999
Accept179558632023-08-20 12:09:35510 days ago1692533375IN
0x8F830093...e32AA818A
0 ETH0.0010012914.49613194
Accept179558142023-08-20 11:59:47510 days ago1692532787IN
0x8F830093...e32AA818A
0 ETH0.0009353813.54203069
Accept179558042023-08-20 11:57:47510 days ago1692532667IN
0x8F830093...e32AA818A
0 ETH0.0009628513.93970707
Accept179557932023-08-20 11:55:23510 days ago1692532523IN
0x8F830093...e32AA818A
0 ETH0.0009753514.12060373
Propose179557792023-08-20 11:52:35510 days ago1692532355IN
0x8F830093...e32AA818A
0 ETH0.0024776314.97014901

Latest 3 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
179559672023-08-20 12:30:35510 days ago1692534635
0x8F830093...e32AA818A
0.7 ETH
179557682023-08-20 11:50:11510 days ago1692532211
0x8F830093...e32AA818A
0.7 ETH
179554832023-08-20 10:53:11510 days ago1692528791  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"}]

60a060405261025480380380610014816100df565b92833981016040828203126100c45781516001600160a01b03811681036100c45760208381015190936001600160401b0382116100c4570182601f820112156100c45780519061006b61006683610109565b6100df565b938285528583830101116100c45760005b8281106100b15750506100959360009184010152610124565b60405160da908161017a823960805181818160190152606f0152f35b818101860151858201870152850161007c565b600080fd5b634e487b7160e01b600052604160045260246000fd5b6040519190601f01601f191682016001600160401b0381118382101761010457604052565b6100c9565b6001600160401b03811161010457601f01601f191660200190565b6080819052815160009283926020909101906001600160a01b03165af43d15610171573d9061015561006683610109565b9182523d6000602084013e5b156101695750565b602081519101fd5b60609061016156fe60806040526004361015604a575b600036818037808036817f00000000000000000000000000000000000000000000000000000000000000005af43d82803e156046573d90f35b3d90fd5b6000803560e01c6356973ee514605f5750600d565b3460a1578060031936011260a1577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080908152602090f35b80fdfea264697066735822122071fb9b5f96e8d1bb39716cafe53eda307c95659122e63328b4b21a20a30944a064736f6c63430008140033000000000000000000000000b676cfeeed5c7b739452a502f1eff9ab684a56da000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000005042d992cd3000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000048000000000000000000000000000000000000000000000000000000000000004a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000003400000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000093a8000000000000000000000000000000000000000000000000000000000000062700000000000000000000000000000000000000000000000000000000000000bb8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fa000000000000000000000000f7f52dd34bc21eda08c0b804c7c1dbc48375820f000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000001d209a8ac4cb4640d0d7825cc74252ec6c9c83b10000000000000000000000000db97b4b5c7e3aa84138e028e957cae8d18fc3f600000000000000000000000052f58f00ede37112c9f4b9647bf241444adc632f000000000000000000000000bb8839296d74c86752d86612ec8b17300bf3f0870000000000000000000000000f48dc765445190dfd37ab0f4050fa5baadd72d700000000000000000000000017f837a4768ebf40838bfb4a0e380f08e9358cfc000000000000000000000000e7c6d625116c598945ee4e1f6fc25a582053ef85000000000000000000000000e35163157034ecbb94962240be68900ab732376c0000000000000000000000002fdc74f478fcce9a1c834c61f5f0c3ab626163ed00000000000000000000000066d56afd2f0fdde2f163d23e935d549e7c4c6ec300000000000000000000000000000000000000000000000000000000000000074465666967756e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000074465666967756e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000008935670746adc4f341339ea266f6a16f4c5b3a7200000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361015604a575b600036818037808036817f000000000000000000000000b676cfeeed5c7b739452a502f1eff9ab684a56da5af43d82803e156046573d90f35b3d90fd5b6000803560e01c6356973ee514605f5750600d565b3460a1578060031936011260a1577f000000000000000000000000b676cfeeed5c7b739452a502f1eff9ab684a56da6001600160a01b03166080908152602090f35b80fdfea264697066735822122071fb9b5f96e8d1bb39716cafe53eda307c95659122e63328b4b21a20a30944a064736f6c63430008140033

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

000000000000000000000000b676cfeeed5c7b739452a502f1eff9ab684a56da000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000005042d992cd3000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000048000000000000000000000000000000000000000000000000000000000000004a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000003400000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000093a8000000000000000000000000000000000000000000000000000000000000062700000000000000000000000000000000000000000000000000000000000000bb8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fa000000000000000000000000f7f52dd34bc21eda08c0b804c7c1dbc48375820f000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000001d209a8ac4cb4640d0d7825cc74252ec6c9c83b10000000000000000000000000db97b4b5c7e3aa84138e028e957cae8d18fc3f600000000000000000000000052f58f00ede37112c9f4b9647bf241444adc632f000000000000000000000000bb8839296d74c86752d86612ec8b17300bf3f0870000000000000000000000000f48dc765445190dfd37ab0f4050fa5baadd72d700000000000000000000000017f837a4768ebf40838bfb4a0e380f08e9358cfc000000000000000000000000e7c6d625116c598945ee4e1f6fc25a582053ef85000000000000000000000000e35163157034ecbb94962240be68900ab732376c0000000000000000000000002fdc74f478fcce9a1c834c61f5f0c3ab626163ed00000000000000000000000066d56afd2f0fdde2f163d23e935d549e7c4c6ec300000000000000000000000000000000000000000000000000000000000000074465666967756e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000074465666967756e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000008935670746adc4f341339ea266f6a16f4c5b3a7200000000000000000000000000000000000000000000000000000000

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

-----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] : 00093a8000000000000000000000000000000000000000000000000000000000
Arg [20] : 0000627000000000000000000000000000000000000000000000000000000000
Arg [21] : 00000bb800000000000000000000000000000000000000000000000000000000
Arg [22] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [23] : 000000fa000000000000000000000000f7f52dd34bc21eda08c0b804c7c1dbc4
Arg [24] : 8375820f00000000000000000000000000000000000000000000000000000000
Arg [25] : 0000000a0000000000000000000000001d209a8ac4cb4640d0d7825cc74252ec
Arg [26] : 6c9c83b10000000000000000000000000db97b4b5c7e3aa84138e028e957cae8
Arg [27] : d18fc3f600000000000000000000000052f58f00ede37112c9f4b9647bf24144
Arg [28] : 4adc632f000000000000000000000000bb8839296d74c86752d86612ec8b1730
Arg [29] : 0bf3f0870000000000000000000000000f48dc765445190dfd37ab0f4050fa5b
Arg [30] : aadd72d700000000000000000000000017f837a4768ebf40838bfb4a0e380f08
Arg [31] : e9358cfc000000000000000000000000e7c6d625116c598945ee4e1f6fc25a58
Arg [32] : 2053ef85000000000000000000000000e35163157034ecbb94962240be68900a
Arg [33] : b732376c0000000000000000000000002fdc74f478fcce9a1c834c61f5f0c3ab
Arg [34] : 626163ed00000000000000000000000066d56afd2f0fdde2f163d23e935d549e
Arg [35] : 7c4c6ec300000000000000000000000000000000000000000000000000000000
Arg [36] : 000000074465666967756e000000000000000000000000000000000000000000
Arg [37] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [38] : 000000074465666967756e000000000000000000000000000000000000000000
Arg [39] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [40] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [41] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [42] : 000000010000000000000000000000008935670746adc4f341339ea266f6a16f
Arg [43] : 4c5b3a7200000000000000000000000000000000000000000000000000000000


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.