Overview
S Balance
0 S
S Value
-More Info
Private Name Tags
ContractCreator
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Source Code Verified (Exact Match)
Contract Name:
Incubator_Proxy
Compiler Version
v0.8.28+commit.7893614a
Contract Source Code (Solidity Standard Json-Input format)
/* ▄▀█ █▀█ █▀▀ █▀▀ ▄▀█ █▀▀ ▀█▀ █▀█ █▀█ █▄█ █▀█ █▀▀ ██▄ █▀░ █▀█ █▄▄ ░█░ █▄█ █▀▄ ░█░ Trade on ApeFactory and have fun! Web: https://apefactory.fun/ */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; library StorageSlot { function getAddressSlot(bytes32 _slot) internal view returns (address) { address addr; assembly { addr := sload(_slot) } return addr; } function setAddressSlot(bytes32 _slot, address _addr) internal { assembly { sstore(_slot, _addr) } } } contract Incubator_Proxy { bytes32 private constant ADMIN_SLOT = bytes32(uint256(keccak256("eip1967.proxy.admin")) - 1); bytes32 private constant IMPLEMENTATION_SLOT = bytes32(uint256(keccak256("eip1967.proxy.implementation")) - 1); event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); event ImplementationUpgraded(address indexed implementation); modifier onlyOwner() { if (msg.sender == owner()) { _; } else { _fallback(); } } constructor() payable { _transferOwnership(msg.sender); } function owner() public view returns (address) { return StorageSlot.getAddressSlot(ADMIN_SLOT); } function transferOwnership(address newOwner) external onlyOwner { _transferOwnership(newOwner); } function getImplementation() external view returns (address) { return _getImplementation(); } function setImplementation(address _implementation) external onlyOwner { _setImplementation(_implementation); } function _transferOwnership(address newOwner) private { require(newOwner != address(0)); address oldOwner = owner(); StorageSlot.setAddressSlot(ADMIN_SLOT, newOwner); emit OwnershipTransferred(oldOwner, newOwner); } function _getImplementation() private view returns (address) { return StorageSlot.getAddressSlot(IMPLEMENTATION_SLOT); } function _setImplementation(address _implementation) private { StorageSlot.setAddressSlot(IMPLEMENTATION_SLOT, _implementation); emit ImplementationUpgraded(_implementation); } function _delegate(address _implementation) private returns (bytes memory) { assembly { let csize := calldatasize() calldatacopy(0, 0, csize) let result := delegatecall(gas(), _implementation, 0, csize, 0, 0) let rsize := returndatasize() returndatacopy(0, 0, rsize) switch result case 0 { revert(0, rsize) } default { return(0, rsize) } } } function _fallback() private { _delegate(_getImplementation()); } receive() external payable { _fallback(); } fallback() external payable { _fallback(); } }
{ "optimizer": { "enabled": true, "runs": 9999 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "remappings": [], "evmVersion": "cancun" }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"ImplementationUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"getImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_implementation","type":"address"}],"name":"setImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405261000d33610012565b6100dd565b6001600160a01b038116610024575f5ffd5b5f61002d610093565b905061004f61004a60015f5160206104ba5f395f51905f526100b8565b839055565b816001600160a01b0316816001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6100b36100af60015f5160206104ba5f395f51905f526100b8565b5490565b905090565b818103818111156100d757634e487b7160e01b5f52601160045260245ffd5b92915050565b6103d0806100ea5f395ff3fe608060405260043610610042575f3560e01c80638da5cb5b14610059578063aaf10f4214610096578063d784d426146100aa578063f2fde38b146100c957610051565b366100515761004f6100e8565b005b61004f6100e8565b348015610064575f5ffd5b5061006d6100fb565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100a1575f5ffd5b5061006d610133565b3480156100b5575f5ffd5b5061004f6100c4366004610322565b61013c565b3480156100d4575f5ffd5b5061004f6100e3366004610322565b610171565b6100f86100f361019e565b6101cd565b50565b5f61012e61012a60017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610461035c565b5490565b905090565b5f61012e61019e565b6101446100fb565b73ffffffffffffffffffffffffffffffffffffffff163303610169576100f8816101f1565b6100f86100e8565b6101796100fb565b73ffffffffffffffffffffffffffffffffffffffff163303610169576100f881610267565b5f61012e61012a60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd61035c565b606036805f5f375f5f825f865af490503d805f5f3e8180156101ed57815ff35b815ffd5b61022461021f60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd61035c565b829055565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f51ea6ffdc9909d5ca341259f7221902e0676585d833e2bb21fa923c85e862886905f90a250565b73ffffffffffffffffffffffffffffffffffffffff8116610286575f5ffd5b5f61028f6100fb565b90506102c46102bf60017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610461035c565b839055565b8173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f60208284031215610332575f5ffd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610355575f5ffd5b9392505050565b81810381811115610394577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b9291505056fea26469706673582212208072bfb9259ebeceb924390002f3004a4f917fb8b4300d75481cd5fbffcd50f764736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6104
Deployed Bytecode
0x608060405260043610610042575f3560e01c80638da5cb5b14610059578063aaf10f4214610096578063d784d426146100aa578063f2fde38b146100c957610051565b366100515761004f6100e8565b005b61004f6100e8565b348015610064575f5ffd5b5061006d6100fb565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100a1575f5ffd5b5061006d610133565b3480156100b5575f5ffd5b5061004f6100c4366004610322565b61013c565b3480156100d4575f5ffd5b5061004f6100e3366004610322565b610171565b6100f86100f361019e565b6101cd565b50565b5f61012e61012a60017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610461035c565b5490565b905090565b5f61012e61019e565b6101446100fb565b73ffffffffffffffffffffffffffffffffffffffff163303610169576100f8816101f1565b6100f86100e8565b6101796100fb565b73ffffffffffffffffffffffffffffffffffffffff163303610169576100f881610267565b5f61012e61012a60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd61035c565b606036805f5f375f5f825f865af490503d805f5f3e8180156101ed57815ff35b815ffd5b61022461021f60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd61035c565b829055565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f51ea6ffdc9909d5ca341259f7221902e0676585d833e2bb21fa923c85e862886905f90a250565b73ffffffffffffffffffffffffffffffffffffffff8116610286575f5ffd5b5f61028f6100fb565b90506102c46102bf60017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610461035c565b839055565b8173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f60208284031215610332575f5ffd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610355575f5ffd5b9392505050565b81810381811115610394577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b9291505056fea26469706673582212208072bfb9259ebeceb924390002f3004a4f917fb8b4300d75481cd5fbffcd50f764736f6c634300081c0033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.