Contract

0x485002335e2BaC03eDb29993483d56A265E55Af8

Overview

S Balance

Sonic LogoSonic LogoSonic Logo0 S

S Value

-

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

Parent Transaction Hash Block From To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Incubator_Proxy

Compiler Version
v0.8.28+commit.7893614a

Optimization Enabled:
Yes with 9999 runs

Other Settings:
cancun EvmVersion, MIT license
File 1 of 1 : Incubator_Proxy.sol
/*

  ▄▀█ █▀█ █▀▀ █▀▀ ▄▀█ █▀▀ ▀█▀ █▀█ █▀█ █▄█
  █▀█ █▀▀ ██▄ █▀░ █▀█ █▄▄ ░█░ █▄█ █▀▄ ░█░

  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(); }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 9999
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "remappings": [],
  "evmVersion": "cancun"
}

Contract Security Audit

Contract ABI

[{"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"}]

608060405261000d33610012565b6100dd565b6001600160a01b038116610024575f5ffd5b5f61002d610093565b905061004f61004a60015f5160206104ba5f395f51905f526100b8565b839055565b816001600160a01b0316816001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6100b36100af60015f5160206104ba5f395f51905f526100b8565b5490565b905090565b818103818111156100d757634e487b7160e01b5f52601160045260245ffd5b92915050565b6103d0806100ea5f395ff3fe608060405260043610610042575f3560e01c80638da5cb5b14610059578063aaf10f4214610096578063d784d426146100aa578063f2fde38b146100c957610051565b366100515761004f6100e8565b005b61004f6100e8565b348015610064575f5ffd5b5061006d6100fb565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100a1575f5ffd5b5061006d610133565b3480156100b5575f5ffd5b5061004f6100c4366004610322565b61013c565b3480156100d4575f5ffd5b5061004f6100e3366004610322565b610171565b6100f86100f361019e565b6101cd565b50565b5f61012e61012a60017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610461035c565b5490565b905090565b5f61012e61019e565b6101446100fb565b73ffffffffffffffffffffffffffffffffffffffff163303610169576100f8816101f1565b6100f86100e8565b6101796100fb565b73ffffffffffffffffffffffffffffffffffffffff163303610169576100f881610267565b5f61012e61012a60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd61035c565b606036805f5f375f5f825f865af490503d805f5f3e8180156101ed57815ff35b815ffd5b61022461021f60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd61035c565b829055565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f51ea6ffdc9909d5ca341259f7221902e0676585d833e2bb21fa923c85e862886905f90a250565b73ffffffffffffffffffffffffffffffffffffffff8116610286575f5ffd5b5f61028f6100fb565b90506102c46102bf60017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610461035c565b839055565b8173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f60208284031215610332575f5ffd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610355575f5ffd5b9392505050565b81810381811115610394577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b9291505056fea26469706673582212208072bfb9259ebeceb924390002f3004a4f917fb8b4300d75481cd5fbffcd50f764736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6104

Deployed Bytecode

0x608060405260043610610042575f3560e01c80638da5cb5b14610059578063aaf10f4214610096578063d784d426146100aa578063f2fde38b146100c957610051565b366100515761004f6100e8565b005b61004f6100e8565b348015610064575f5ffd5b5061006d6100fb565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100a1575f5ffd5b5061006d610133565b3480156100b5575f5ffd5b5061004f6100c4366004610322565b61013c565b3480156100d4575f5ffd5b5061004f6100e3366004610322565b610171565b6100f86100f361019e565b6101cd565b50565b5f61012e61012a60017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610461035c565b5490565b905090565b5f61012e61019e565b6101446100fb565b73ffffffffffffffffffffffffffffffffffffffff163303610169576100f8816101f1565b6100f86100e8565b6101796100fb565b73ffffffffffffffffffffffffffffffffffffffff163303610169576100f881610267565b5f61012e61012a60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd61035c565b606036805f5f375f5f825f865af490503d805f5f3e8180156101ed57815ff35b815ffd5b61022461021f60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd61035c565b829055565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f51ea6ffdc9909d5ca341259f7221902e0676585d833e2bb21fa923c85e862886905f90a250565b73ffffffffffffffffffffffffffffffffffffffff8116610286575f5ffd5b5f61028f6100fb565b90506102c46102bf60017fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610461035c565b839055565b8173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f60208284031215610332575f5ffd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610355575f5ffd5b9392505050565b81810381811115610394577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b9291505056fea26469706673582212208072bfb9259ebeceb924390002f3004a4f917fb8b4300d75481cd5fbffcd50f764736f6c634300081c0033

Block Transaction 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

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.