Discover more of Etherscan's tools and services in one place.
Sponsored
Contract Source Code:
File 1 of 1 : MirrorProxy
// SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.10; /** * @title MirrorProxy * @author MirrorXYZ * The MirrorProxy contract is used to deploy minimal proxies. */ contract MirrorProxy { /** * @dev Storage slot with the address of the current implementation. * This is the keccak-256 hash of "eip1967.proxy.implementation" subtracted by 1, and is * validated in the constructor. */ bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; /** * @notice Initializes a proxy by delegating logic to the implementation, * and reverts if the call is not successful. Stores implementation logic. * @param implementation - the implementation holds the logic for all proxies * @param initializationData - initialization call */ constructor(address implementation, bytes memory initializationData) { // Delegatecall into the implementation, supplying initialization calldata. (bool ok, ) = implementation.delegatecall(initializationData); // Revert and include revert data if delegatecall to implementation reverts. if (!ok) { assembly { returndatacopy(0, 0, returndatasize()) revert(0, returndatasize()) } } assembly { sstore(_IMPLEMENTATION_SLOT, implementation) } } /** * @notice When any function is called on this contract, we delegate to * the logic contract stored in the implementation storage slot. */ fallback() external payable { assembly { let ptr := mload(0x40) calldatacopy(ptr, 0, calldatasize()) let result := delegatecall( gas(), sload(_IMPLEMENTATION_SLOT), ptr, calldatasize(), 0, 0 ) let size := returndatasize() returndatacopy(ptr, 0, size) switch result case 0 { revert(ptr, size) } default { return(ptr, size) } } } }
Please enter a contract address above to load the contract details and source code.
This website uses cookies to improve your experience. By continuing to use this website, you agree to its Terms and Privacy Policy.