Abstract Testnet
    /

    Contract

    0x5fA58d8F47647321385EeD11c51076CFff6cC60c

    Overview

    ETH Balance

    0 ETH

    Multichain Info

    N/A
    Transaction Hash
    Method
    Block
    Age
    From
    To

    There are no matching entries

    1 Internal Transaction found.

    Latest 1 internal transaction

    Parent Transaction Hash Block Age From To Amount
    48776112025-01-22 13:33:0549 days ago1737552785
     Contract Creation
    0 ETH
    Loading...
    Loading

    Similar Match Source Code
    This contract matches the deployed Bytecode of the Source Code for Contract 0x69d1e844...16D70e4C3
    The constructor portion of the code might be different and could alter the actual behaviour of the contract

    Contract Name:
    OwnershipFacet

    Compiler Version
    v0.8.28+commit.7893614a

    ZkSolc Version
    v1.5.10

    Optimization Enabled:
    Yes with Mode 3

    Other Settings:
    paris EvmVersion

    Contract Source Code (Solidity Standard Json-Input format)

    File 1 of 7 : OwnershipFacet.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity 0.8.28;
    // Local imports - Interfaces
    import {IOwnershipFacet} from "../interfaces/IOwnershipFacet.sol";
    // Local imports - Storages
    import {LibOwnership} from "../libraries/storages/LibOwnership.sol";
    // Local imports - Services
    import {OwnershipService} from "../libraries/services/OwnershipService.sol";
    // Local imports - Events
    import {OwnershipEvents} from "../events/OwnershipEvents.sol";
    // Local imports - Errors
    import {OwnershipErrors} from "../errors/OwnershipErrors.sol";
    /// @dev OwnershipFacet facet
    contract OwnershipFacet is IOwnershipFacet {
    /**
    * @dev This function allows to set new pending owner.
    *
    * @dev Parameters :
    * @param newPendingOwner Address of the new pending owner
    *
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 2 of 7 : IOwnershipFacet.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    // SPDX-License-Identifier: MIT
    pragma solidity 0.8.28;
    import {IERC173} from "./IERC173.sol";
    /// @dev IOwnershipFacet interface
    interface IOwnershipFacet is IERC173 {
    /**
    * @dev This function allows to set new pending owner.
    *
    * @dev Parameters :
    * @param newPendingOwner Address of the new pending owner
    */
    function transferOwnership(address newPendingOwner) external;
    /// @dev This function allows to accept contract ownership by the current pending owner.
    function acceptOwnership() external;
    /// @dev This function allows to fetch data about current contract owner.
    function owner() external view returns (address);
    /// @dev This function allows to fetch data about current contract pending owner.
    function pendingOwner() external view returns (address);
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 3 of 7 : OwnershipEvents.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity 0.8.28;
    /// @dev OwnershipEvents library
    library OwnershipEvents {
    /**
    * @dev OwnershipTransferStarted error
    *
    * @dev Parameters :
    * @param currentOwner Current contract owner
    * @param newPendingOwner New contract pending owner
    */
    event OwnershipTransferStarted(
    address indexed currentOwner,
    address indexed newPendingOwner
    );
    /**
    * @dev OwnershipTransferred error
    *
    * @dev Parameters :
    * @param previousOwner Previous contract owner
    * @param newOwner New contract owner
    */
    event OwnershipTransferred(
    address indexed previousOwner,
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 4 of 7 : OwnershipErrors.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    // SPDX-License-Identifier: MIT
    pragma solidity 0.8.28;
    /// @dev OwnershipErrors library
    library OwnershipErrors {
    /**
    * @dev OwnableUnauthorizedAccount error
    *
    * @dev Parameters :
    * @param account Address which called function
    */
    error OwnableUnauthorizedAccount(address account);
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 5 of 7 : LibOwnership.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity 0.8.28;
    /// @dev LibOwnership storage library
    library LibOwnership {
    // 32 bytes keccak hash of a string to use as a diamond storage location.
    bytes32 constant OWNERSHIP_STORAGE_POSITION =
    keccak256("upcade.points.ownership");
    /// @dev OwnershipStorage storage
    struct OwnershipStorage {
    // owner of the contract
    address contractOwner;
    // pending owner
    address pendingOwner;
    }
    function ownershipStorage()
    internal
    pure
    returns (OwnershipStorage storage os)
    {
    // Get storage position
    bytes32 position = OWNERSHIP_STORAGE_POSITION;
    // Assigns struct storage slot to the storage position
    assembly {
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 6 of 7 : OwnershipService.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity 0.8.28;
    // Local imports - Services
    import {LibOwnership} from "../storages/LibOwnership.sol";
    // Local imports - Errors
    import {OwnershipErrors} from "../../errors/OwnershipErrors.sol";
    /// @dev OwnershipService service
    library OwnershipService {
    /**
    * @dev This function set in contract storage current pending owner to address(0)
    * and set new current contract owner.
    *
    * @dev Parameters :
    * @param newOwner New contract owner
    */
    function transferOwnership(address newOwner) internal {
    // Reset current contract pending owner
    LibOwnership.setPendingOwner(address(0));
    // Set new contract owner
    LibOwnership.setContractOwner(newOwner);
    }
    /// @dev This function allows to validate if current caller is contract owner.
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 7 of 7 : IERC173.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.0;
    /// @title ERC-173 Contract Ownership Standard
    /// Note: the ERC-165 identifier for this interface is 0x7f5828d0
    /* is ERC165 */
    interface IERC173 {
    /// @dev This emits when ownership of a contract changes.
    event OwnershipTransferred(
    address indexed previousOwner,
    address indexed newOwner
    );
    /// @notice Get the address of the owner
    /// @return owner_ The address of the owner.
    function owner() external view returns (address owner_);
    /// @notice Set the address of the new owner of the contract
    /// @dev Set _newOwner to address(0) to renounce any ownership.
    /// @param _newOwner The address of the new owner of the contract
    function transferOwnership(address _newOwner) external;
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Settings
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    {
    "evmVersion": "paris",
    "optimizer": {
    "enabled": true,
    "mode": "3"
    },
    "outputSelection": {
    "*": {
    "*": [
    "abi"
    ]
    }
    },
    "detectMissingLibraries": false,
    "forceEVMLA": false,
    "enableEraVMExtensions": true,
    "libraries": {}
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Contract ABI

    API
    [{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"currentOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newPendingOwner","type":"address"}],"name":"OwnershipTransferStarted","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newPendingOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

    Deployed Bytecode

    0x0000008003000039000000400030043f0000000100200190000000150000c13d00000060021002700000001f02200197000000040020008c000000660000413d000000000301043b000000e003300270000000210030009c0000001d0000213d000000240030009c0000003f0000613d000000250030009c000000660000c13d0000000001000416000000000001004b000000660000c13d0000002701000041000000610000013d0000000001000416000000000001004b000000660000c13d0000002001000039000001000010044300000120000004430000002001000041000000780001042e000000220030009c0000005d0000613d000000230030009c000000660000c13d000000240020008c000000660000413d0000000002000416000000000002004b000000660000c13d0000000401100370000000000101043b000000260010009c000000660000213d0000002702000041000000000202041a00000026052001970000000002000411000000000052004b0000006d0000c13d00000026061001970000002a01000041000000000201041a0000002b02200197000000000262019f000000000021041b00000000010004140000001f0010009c0000001f01008041000000c0011002100000002c011001c70000800d0200003900000003030000390000002d04000041000000580000013d0000000001000416000000000001004b000000660000c13d0000002a01000041000000000201041a00000026032001970000000006000411000000000063004b000000680000c13d0000002b022001970000002703000041000000000403041a000000000021041b0000002b01400197000000000161019f000000000013041b000000000100041400000026054001970000001f0010009c0000001f01008041000000c0011002100000002c011001c70000800d0200003900000003030000390000002f04000041007700720000040f0000000100200190000000660000613d0000000001000019000000780001042e0000000001000416000000000001004b000000660000c13d0000002a01000041000000000101041a0000002601100197000000800010043f0000002e01000041000000780001042e000000000100001900000079000104300000002801000041000000000010043f000000040060043f000000290100004100000079000104300000002801000041000000000010043f000000040020043f0000002901000041000000790001043000000075002104210000000102000039000000000001042d0000000002000019000000000001042d0000007700000432000000780001042e00000079000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000e30c397700000000000000000000000000000000000000000000000000000000e30c397800000000000000000000000000000000000000000000000000000000f2fde38b0000000000000000000000000000000000000000000000000000000079ba5097000000000000000000000000000000000000000000000000000000008da5cb5b000000000000000000000000fffffffffffffffffffffffffffffffffffffffff61302194805026c9eda1910da29b4563b424bf36d3ba44a94136b56de950ff9118cdaa7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000f61302194805026c9eda1910da29b4563b424bf36d3ba44a94136b56de950ffaffffffffffffffffffffffff0000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000038d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270000000000000000000000000000000000000000200000008000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e031383dbef8eced8f5a03be31355efb70aecd6c18253f4d004ff411ba5b074816

    Block Age Transaction Gas Used Reward
    view all blocks produced

    Block Age Uncle Number Difficulty Gas Used Reward
    View All Uncles
    Loading...
    Loading
    Loading...
    Loading

    Validator Index Block Age Amount
    View All Withdrawals

    Transaction Hash Block Age Value Eth2 PubKey Valid
    View All Deposits
    [ 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.