Overview
S Balance
S Value
$0.00More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Proxy
Compiler Version
v0.8.28+commit.7893614a
Contract Source Code (Solidity Standard Json-Input format)
123456789101112// SPDX-License-Identifier: BUSL-1.1// Central Limit Order Book (CLOB) exchange// (c) Long Gamma Labs, 2023.pragma solidity ^0.8.26;import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol";contract Proxy is ERC1967Proxy {constructor(address _implementation, bytes memory _data) ERC1967Proxy(_implementation, _data) {}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (proxy/ERC1967/ERC1967Proxy.sol)pragma solidity ^0.8.20;import {Proxy} from "../Proxy.sol";import {ERC1967Utils} from "./ERC1967Utils.sol";/*** @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an* implementation address that can be changed. This address is stored in storage in the location specified by* https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the* implementation behind the proxy.*/contract ERC1967Proxy is Proxy {/*** @dev Initializes the upgradeable proxy with an initial implementation specified by `implementation`.** If `_data` is nonempty, it's used as data in a delegate call to `implementation`. This will typically be an* encoded function call, and allows initializing the storage of the proxy like a Solidity constructor.** Requirements:** - If `data` is empty, `msg.value` must be zero.*/constructor(address implementation, bytes memory _data) payable {
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (proxy/Proxy.sol)pragma solidity ^0.8.20;/*** @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM* instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to* be specified by overriding the virtual {_implementation} function.** Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a* different contract through the {_delegate} function.** The success and return data of the delegated call will be returned back to the caller of the proxy.*/abstract contract Proxy {/*** @dev Delegates the current call to `implementation`.** This function does not return to its internal call site, it will return directly to the external caller.*/function _delegate(address implementation) internal virtual {assembly {// Copy msg.data. We take full control of memory in this inline assembly// block because it will not return to Solidity code. We overwrite the// Solidity scratch pad at memory position 0.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (proxy/ERC1967/ERC1967Utils.sol)pragma solidity ^0.8.20;import {IBeacon} from "../beacon/IBeacon.sol";import {Address} from "../../utils/Address.sol";import {StorageSlot} from "../../utils/StorageSlot.sol";/*** @dev This abstract contract provides getters and event emitting update functions for* https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.*/library ERC1967Utils {// We re-declare ERC-1967 events here because they can't be used directly from IERC1967.// This will be fixed in Solidity 0.8.21. At that point we should remove these events./*** @dev Emitted when the implementation is upgraded.*/event Upgraded(address indexed implementation);/*** @dev Emitted when the admin account has changed.*/event AdminChanged(address previousAdmin, address newAdmin);
12345678910111213141516// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (proxy/beacon/IBeacon.sol)pragma solidity ^0.8.20;/*** @dev This is the interface that {BeaconProxy} expects of its beacon.*/interface IBeacon {/*** @dev Must return an address that can be used as a delegate call target.** {UpgradeableBeacon} will check that this address is a contract.*/function implementation() external view returns (address);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (utils/Address.sol)pragma solidity ^0.8.20;/*** @dev Collection of functions related to the address type*/library Address {/*** @dev The ETH balance of the account is not enough to perform the operation.*/error AddressInsufficientBalance(address account);/*** @dev There's no code at `target` (it is not a contract).*/error AddressEmptyCode(address target);/*** @dev A call to an address target failed. The target may have reverted.*/error FailedInnerCall();/*** @dev Replacement for Solidity's `transfer`: sends `amount` wei to
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (utils/StorageSlot.sol)// This file was procedurally generated from scripts/generate/templates/StorageSlot.js.pragma solidity ^0.8.20;/*** @dev Library for reading and writing primitive types to specific storage slots.** Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.* This library helps with reading and writing to such slots without the need for inline assembly.** The functions in this library return Slot structs that contain a `value` member that can be used to read or write.** Example usage to set ERC1967 implementation slot:* ```solidity* contract ERC1967 {* bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;** function _getImplementation() internal view returns (address) {* return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;* }** function _setImplementation(address newImplementation) internal {* require(newImplementation.code.length > 0);* StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;
1234567891011121314151617181920212223242526{"remappings": ["forge-std/=lib/forge-std/src/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@solmate/src/=lib/solmate/src/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solmate/=lib/solmate/src/"],"optimizer": {"enabled": true,"runs": 200},"metadata": {"useLiteralContent": false,"bytecodeHash": "ipfs","appendCBOR": true},"outputSelection": {"*": {"*": ["evm.bytecode","evm.deployedBytecode",
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_implementation","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"name":"ERC1967InvalidImplementation","type":"error"},{"inputs":[],"name":"ERC1967NonPayable","type":"error"},{"inputs":[],"name":"FailedInnerCall","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"}]
Contract Creation Code
60806040523461015e575f610297908138038061001b81610162565b938439820160408382031261015e5782516001600160a01b0381169390919084830361015e576020810151906001600160401b03821161015e57019381601f8601121561015e5784516100756100708261019b565b610162565b9581875260208701936020838301011161015e57815f926020809301865e87010152823b1561014c577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28351156101435782809161012a955190845af4903d1561013a573d61011a6100708261019b565b908152809360203d92013e6101b6565b505b604051608290816102158239f35b606092506101b6565b5050505061012c565b634c9c8ce360e01b5f5260045260245ffd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761018757604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03811161018757601f01601f191660200190565b906101da57508051156101cb57805190602001fd5b630a12f52160e11b5f5260045ffd5b8151158061020b575b6101eb575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156101e356fe60806040527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545f9081906001600160a01b0316368280378136915af43d5f803e156048573d5ff35b3d5ffdfea26469706673582212204213b01ce51043145a896961fd42155a794e91743452dbe5362f72369eaa2d5c64736f6c634300081c0033000000000000000000000000c4a24a83c92fa5ecc5207c71ac62dcd26709ad8e000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e4783678c300000000000000000000000004c55e37c87668857b894107fdc111d4149f6fe0000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad3800000000000000000000000029219dd400f2bf60e5a23d13be72b486d403889400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000a998351d4f13a6217ea041b7ffd654280f89898000000000000000000000000e6e54c6e10a0489681243f92669b8febf5faacdc0000000000000000000000000a998351d4f13a6217ea041b7ffd654280f8989800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000000000000000000000000000000110d9316ec000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002d79883d200000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x60806040527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545f9081906001600160a01b0316368280378136915af43d5f803e156048573d5ff35b3d5ffdfea26469706673582212204213b01ce51043145a896961fd42155a794e91743452dbe5362f72369eaa2d5c64736f6c634300081c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000c4a24a83c92fa5ecc5207c71ac62dcd26709ad8e000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e4783678c300000000000000000000000004c55e37c87668857b894107fdc111d4149f6fe0000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad3800000000000000000000000029219dd400f2bf60e5a23d13be72b486d403889400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000a998351d4f13a6217ea041b7ffd654280f89898000000000000000000000000e6e54c6e10a0489681243f92669b8febf5faacdc0000000000000000000000000a998351d4f13a6217ea041b7ffd654280f8989800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000000000000000000000000000000110d9316ec000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002d79883d200000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _implementation (address): 0xc4A24A83c92fA5eCc5207c71ac62DCd26709AD8E
Arg [1] : _data (bytes): 0x783678c300000000000000000000000004c55e37c87668857b894107fdc111d4149f6fe0000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183bc94ad3800000000000000000000000029219dd400f2bf60e5a23d13be72b486d403889400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000002386f26fc1000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000a998351d4f13a6217ea041b7ffd654280f89898000000000000000000000000e6e54c6e10a0489681243f92669b8febf5faacdc0000000000000000000000000a998351d4f13a6217ea041b7ffd654280f8989800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000000000000000000000000000000110d9316ec000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002d79883d2000
-----Encoded View---------------
19 Constructor Arguments found :
Arg [0] : 000000000000000000000000c4a24a83c92fa5ecc5207c71ac62dcd26709ad8e
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [2] : 00000000000000000000000000000000000000000000000000000000000001e4
Arg [3] : 783678c300000000000000000000000004c55e37c87668857b894107fdc111d4
Arg [4] : 149f6fe0000000000000000000000000039e2fb66102314ce7b64ce5ce3e5183
Arg [5] : bc94ad3800000000000000000000000029219dd400f2bf60e5a23d13be72b486
Arg [6] : d403889400000000000000000000000000000000000000000000000000000000
Arg [7] : 0000000100000000000000000000000000000000000000000000000000000000
Arg [8] : 00000001000000000000000000000000000000000000000000000000002386f2
Arg [9] : 6fc1000000000000000000000000000000000000000000000000000000000000
Arg [10] : 000000010000000000000000000000000a998351d4f13a6217ea041b7ffd6542
Arg [11] : 80f89898000000000000000000000000e6e54c6e10a0489681243f92669b8feb
Arg [12] : f5faacdc0000000000000000000000000a998351d4f13a6217ea041b7ffd6542
Arg [13] : 80f8989800000000000000000000000000000000000000000000000000000000
Arg [14] : 000000000000000000000000000000000000000000000000000000000de0b6b3
Arg [15] : a7640000000000000000000000000000000000000000000000000000000110d9
Arg [16] : 316ec00000000000000000000000000000000000000000000000000000000000
Arg [17] : 0000000000000000000000000000000000000000000000000000000000002d79
Arg [18] : 883d200000000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
225:135:6:-:0;;;1327:66:1;;-1:-1:-1;;;;;;;;;1327:66:1;1019:819:2;-1:-1:-1;;1019:819:2;;;;;;;-1:-1:-1;1019:819:2;;;;;;-1:-1:-1;1019:819:2;;;-1:-1:-1;1019:819:2
Swarm Source
ipfs://4213b01ce51043145a896961fd42155a794e91743452dbe5362f72369eaa2d5c
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.