Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer Ownersh... | 11881253 | 1447 days ago | IN | 0 ETH | 0.00401414 |
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
11881242 | 1447 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
PowerSwitch
Compiler Version
v0.7.6+commit.7338295f
Optimization Enabled:
Yes with 1000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: GPL-3.0-only pragma solidity 0.7.6; import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; interface IPowerSwitch { /* admin events */ event PowerOn(); event PowerOff(); event EmergencyShutdown(); /* data types */ enum State {Online, Offline, Shutdown} /* admin functions */ function powerOn() external; function powerOff() external; function emergencyShutdown() external; /* view functions */ function isOnline() external view returns (bool status); function isOffline() external view returns (bool status); function isShutdown() external view returns (bool status); function getStatus() external view returns (State status); function getPowerController() external view returns (address controller); } /// @title PowerSwitch /// @notice Standalone pausing and emergency stop functionality contract PowerSwitch is IPowerSwitch, Ownable { /* storage */ IPowerSwitch.State private _status; /* initializer */ constructor(address owner) { // sanity check owner require(owner != address(0), "PowerSwitch: invalid owner"); // transfer ownership Ownable.transferOwnership(owner); } /* admin functions */ /// @notice Turn Power On /// access control: only admin /// state machine: only when offline /// state scope: only modify _status /// token transfer: none function powerOn() external override onlyOwner { require(_status == IPowerSwitch.State.Offline, "PowerSwitch: cannot power on"); _status = IPowerSwitch.State.Online; emit PowerOn(); } /// @notice Turn Power Off /// access control: only admin /// state machine: only when online /// state scope: only modify _status /// token transfer: none function powerOff() external override onlyOwner { require(_status == IPowerSwitch.State.Online, "PowerSwitch: cannot power off"); _status = IPowerSwitch.State.Offline; emit PowerOff(); } /// @notice Shutdown Permanently /// access control: only admin /// state machine: /// - when online or offline /// - can only be called once /// state scope: only modify _status /// token transfer: none function emergencyShutdown() external override onlyOwner { require(_status != IPowerSwitch.State.Shutdown, "PowerSwitch: cannot shutdown"); _status = IPowerSwitch.State.Shutdown; emit EmergencyShutdown(); } /* getter functions */ function isOnline() external view override returns (bool status) { return _status == State.Online; } function isOffline() external view override returns (bool status) { return _status == State.Offline; } function isShutdown() external view override returns (bool status) { return _status == State.Shutdown; } function getStatus() external view override returns (IPowerSwitch.State status) { return _status; } function getPowerController() external view override returns (address controller) { return Ownable.owner(); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.7.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with GSN meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } }
{ "optimizer": { "enabled": true, "runs": 1000 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[],"name":"EmergencyShutdown","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":[],"name":"PowerOff","type":"event"},{"anonymous":false,"inputs":[],"name":"PowerOn","type":"event"},{"inputs":[],"name":"emergencyShutdown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getPowerController","outputs":[{"internalType":"address","name":"controller","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStatus","outputs":[{"internalType":"enum IPowerSwitch.State","name":"status","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOffline","outputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOnline","outputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isShutdown","outputs":[{"internalType":"bool","name":"status","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"powerOff","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"powerOn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b506040516109f93803806109f98339818101604052602081101561003357600080fd5b5051600061003f6100eb565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350916000805160206109d9833981519152908290a3506001600160a01b0381166100d2576040805162461bcd60e51b815260206004820152601a60248201527f506f7765725377697463683a20696e76616c6964206f776e6572000000000000604482015290519081900360640190fd5b6100e5816100ef60201b6106231760201c565b50610200565b3390565b6100f76100eb565b6001600160a01b03166101086101f1565b6001600160a01b031614610163576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166101a85760405162461bcd60e51b81526004018080602001828103825260268152602001806109b36026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216916000805160206109d983398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031690565b6107a48061020f6000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c8063715018a611610081578063bf86d6901161005b578063bf86d69014610161578063efe6898214610169578063f2fde38b14610171576100c9565b8063715018a61461012d578063766f13bc146101355780638da5cb5b14610159576100c9565b8063438cae7e116100b2578063438cae7e146100e05780634e69d560146100fc578063664ab18e14610125576100c9565b806314fbf5cc146100ce5780633403c2fc146100d8575b600080fd5b6100d6610197565b005b6100d66102b2565b6100e86103e0565b604080519115158252519081900360200190f35b610104610403565b6040518082600281111561011457fe5b815260200191505060405180910390f35b6100e8610413565b6100d661041b565b61013d6104e6565b604080516001600160a01b039092168252519081900360200190f35b61013d6104f5565b6100e8610504565b6100d661050d565b6100d66004803603602081101561018757600080fd5b50356001600160a01b0316610623565b61019f610744565b6001600160a01b03166101b06104f5565b6001600160a01b03161461020b576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60008054600160a01b900460ff16600281111561022457fe5b14610276576040805162461bcd60e51b815260206004820152601d60248201527f506f7765725377697463683a2063616e6e6f7420706f776572206f6666000000604482015290519081900360640190fd5b6000805460ff60a01b1916600160a01b1781556040517f3f10cc673bb08c6ec06120804bfd562bd9edeaeff24a1eb7da3db0147de8ea019190a1565b6102ba610744565b6001600160a01b03166102cb6104f5565b6001600160a01b031614610326576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6002600054600160a01b900460ff16600281111561034057fe5b1415610393576040805162461bcd60e51b815260206004820152601c60248201527f506f7765725377697463683a2063616e6e6f742073687574646f776e00000000604482015290519081900360640190fd5b6000805460ff60a01b1916740200000000000000000000000000000000000000001781556040517ff443ecad8d837e188abcabbbd02f1057b0d94896a09d5b97b2eb4bb445b94de89190a1565b600060015b600054600160a01b900460ff1660028111156103fd57fe5b14905090565b600054600160a01b900460ff1690565b6000806103e5565b610423610744565b6001600160a01b03166104346104f5565b6001600160a01b03161461048f576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b60006104f06104f5565b905090565b6000546001600160a01b031690565b600060026103e5565b610515610744565b6001600160a01b03166105266104f5565b6001600160a01b031614610581576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600054600160a01b900460ff16600281111561059b57fe5b146105ed576040805162461bcd60e51b815260206004820152601c60248201527f506f7765725377697463683a2063616e6e6f7420706f776572206f6e00000000604482015290519081900360640190fd5b6000805460ff60a01b191681556040517fd2ccdbf8763990e0fcff9e0d5c5867bcc73af876f85f1a8a65e868db95bf074c9190a1565b61062b610744565b6001600160a01b031661063c6104f5565b6001600160a01b031614610697576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166106dc5760405162461bcd60e51b81526004018080602001828103825260268152602001806107496026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b339056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a2646970667358221220f2c3844630250c7ec38fd7b40e11812251ced700a78e86640c554198f06aef7064736f6c634300070600334f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573738be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0000000000000000000000000f1ba76d490183a10b29f4dfc89d84c1f9b41dd3d
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100c95760003560e01c8063715018a611610081578063bf86d6901161005b578063bf86d69014610161578063efe6898214610169578063f2fde38b14610171576100c9565b8063715018a61461012d578063766f13bc146101355780638da5cb5b14610159576100c9565b8063438cae7e116100b2578063438cae7e146100e05780634e69d560146100fc578063664ab18e14610125576100c9565b806314fbf5cc146100ce5780633403c2fc146100d8575b600080fd5b6100d6610197565b005b6100d66102b2565b6100e86103e0565b604080519115158252519081900360200190f35b610104610403565b6040518082600281111561011457fe5b815260200191505060405180910390f35b6100e8610413565b6100d661041b565b61013d6104e6565b604080516001600160a01b039092168252519081900360200190f35b61013d6104f5565b6100e8610504565b6100d661050d565b6100d66004803603602081101561018757600080fd5b50356001600160a01b0316610623565b61019f610744565b6001600160a01b03166101b06104f5565b6001600160a01b03161461020b576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60008054600160a01b900460ff16600281111561022457fe5b14610276576040805162461bcd60e51b815260206004820152601d60248201527f506f7765725377697463683a2063616e6e6f7420706f776572206f6666000000604482015290519081900360640190fd5b6000805460ff60a01b1916600160a01b1781556040517f3f10cc673bb08c6ec06120804bfd562bd9edeaeff24a1eb7da3db0147de8ea019190a1565b6102ba610744565b6001600160a01b03166102cb6104f5565b6001600160a01b031614610326576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6002600054600160a01b900460ff16600281111561034057fe5b1415610393576040805162461bcd60e51b815260206004820152601c60248201527f506f7765725377697463683a2063616e6e6f742073687574646f776e00000000604482015290519081900360640190fd5b6000805460ff60a01b1916740200000000000000000000000000000000000000001781556040517ff443ecad8d837e188abcabbbd02f1057b0d94896a09d5b97b2eb4bb445b94de89190a1565b600060015b600054600160a01b900460ff1660028111156103fd57fe5b14905090565b600054600160a01b900460ff1690565b6000806103e5565b610423610744565b6001600160a01b03166104346104f5565b6001600160a01b03161461048f576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b60006104f06104f5565b905090565b6000546001600160a01b031690565b600060026103e5565b610515610744565b6001600160a01b03166105266104f5565b6001600160a01b031614610581576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600054600160a01b900460ff16600281111561059b57fe5b146105ed576040805162461bcd60e51b815260206004820152601c60248201527f506f7765725377697463683a2063616e6e6f7420706f776572206f6e00000000604482015290519081900360640190fd5b6000805460ff60a01b191681556040517fd2ccdbf8763990e0fcff9e0d5c5867bcc73af876f85f1a8a65e868db95bf074c9190a1565b61062b610744565b6001600160a01b031661063c6104f5565b6001600160a01b031614610697576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166106dc5760405162461bcd60e51b81526004018080602001828103825260268152602001806107496026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b339056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a2646970667358221220f2c3844630250c7ec38fd7b40e11812251ced700a78e86640c554198f06aef7064736f6c63430007060033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000f1ba76d490183a10b29f4dfc89d84c1f9b41dd3d
-----Decoded View---------------
Arg [0] : owner (address): 0xf1Ba76d490183a10B29f4dFc89d84C1F9B41dD3d
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000f1ba76d490183a10b29f4dfc89d84c1f9b41dd3d
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ 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.