Source Code
Overview
ETH Balance
0 ETH
More Info
ContractCreator
Multichain Info
N/A
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
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.
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)
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.8.28;// Local imports - Interfacesimport {IOwnershipFacet} from "../interfaces/IOwnershipFacet.sol";// Local imports - Storagesimport {LibOwnership} from "../libraries/storages/LibOwnership.sol";// Local imports - Servicesimport {OwnershipService} from "../libraries/services/OwnershipService.sol";// Local imports - Eventsimport {OwnershipEvents} from "../events/OwnershipEvents.sol";// Local imports - Errorsimport {OwnershipErrors} from "../errors/OwnershipErrors.sol";/// @dev OwnershipFacet facetcontract OwnershipFacet is IOwnershipFacet {/*** @dev This function allows to set new pending owner.** @dev Parameters :* @param newPendingOwner Address of the new pending owner*
123456789101112131415161718192021222324// SPDX-License-Identifier: MITpragma solidity 0.8.28;import {IERC173} from "./IERC173.sol";/// @dev IOwnershipFacet interfaceinterface 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);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.8.28;/// @dev OwnershipEvents librarylibrary 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,
12345678910111213// SPDX-License-Identifier: MITpragma solidity 0.8.28;/// @dev OwnershipErrors librarylibrary OwnershipErrors {/*** @dev OwnableUnauthorizedAccount error** @dev Parameters :* @param account Address which called function*/error OwnableUnauthorizedAccount(address account);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.8.28;/// @dev LibOwnership storage librarylibrary 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 storagestruct OwnershipStorage {// owner of the contractaddress contractOwner;// pending owneraddress pendingOwner;}function ownershipStorage()internalpurereturns (OwnershipStorage storage os){// Get storage positionbytes32 position = OWNERSHIP_STORAGE_POSITION;// Assigns struct storage slot to the storage positionassembly {
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.8.28;// Local imports - Servicesimport {LibOwnership} from "../storages/LibOwnership.sol";// Local imports - Errorsimport {OwnershipErrors} from "../../errors/OwnershipErrors.sol";/// @dev OwnershipService servicelibrary 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 ownerLibOwnership.setPendingOwner(address(0));// Set new contract ownerLibOwnership.setContractOwner(newOwner);}/// @dev This function allows to validate if current caller is contract owner.
12345678910111213141516171819202122// SPDX-License-Identifier: MITpragma 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 contractfunction transferOwnership(address _newOwner) external;}
123456789101112131415161718{"evmVersion": "paris","optimizer": {"enabled": true,"mode": "3"},"outputSelection": {"*": {"*": ["abi"]}},"detectMissingLibraries": false,"forceEVMLA": false,"enableEraVMExtensions": true,"libraries": {}}
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
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.