Overview
FTM Balance
0 FTM
FTM Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 10 from a total of 10 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Operator | 82195130 | 189 days ago | IN | 0 FTM | 0.0208233 | ||||
Set Operator | 82195125 | 189 days ago | IN | 0 FTM | 0.0208233 | ||||
Set Operator | 82195119 | 189 days ago | IN | 0 FTM | 0.0208233 | ||||
Set Operator | 69956954 | 407 days ago | IN | 0 FTM | 0.0161959 | ||||
Set Operator | 69709686 | 413 days ago | IN | 0 FTM | 0.00292447 | ||||
Set Operator | 69709679 | 413 days ago | IN | 0 FTM | 0.00232437 | ||||
Set Operator | 69709676 | 413 days ago | IN | 0 FTM | 0.00262373 | ||||
Set Operator | 69709669 | 413 days ago | IN | 0 FTM | 0.00232174 | ||||
Set Operator | 69709665 | 413 days ago | IN | 0 FTM | 0.00359824 | ||||
Set Operator | 69709660 | 413 days ago | IN | 0 FTM | 0.00517389 |
Latest 1 internal transaction
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
69709074 | 413 days ago | Contract Creation | 0 FTM |
Loading...
Loading
Contract Name:
Operators
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.8.9; import "@openzeppelin/contracts/utils/Context.sol"; contract Operators is Context { // level 1: normal operator // level 2: rewards and feed manager // level 3: admin // level 4: owner mapping(address => uint256) operatorLevel; address public oldOwner; address public pendingOwner; modifier onlyOperator(uint256 level) { require(operatorLevel[_msgSender()] >= level, "invalid operator"); _; } constructor() { operatorLevel[_msgSender()] = 4; } function setOperator(address op, uint256 level) external onlyOperator(4) { operatorLevel[op] = level; } function getOperatorLevel(address op) public view returns (uint256) { return operatorLevel[op]; } function transferOwnership(address newOwner) external onlyOperator(4) { require(newOwner != address(0), "zero address"); oldOwner = _msgSender(); pendingOwner = newOwner; } function acceptOwnership() external { require(_msgSender() == pendingOwner, "not pendingOwner"); operatorLevel[_msgSender()] = 4; operatorLevel[oldOwner] = 0; pendingOwner = address(0); oldOwner = address(0); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^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 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) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
{ "evmVersion": "london", "libraries": {}, "metadata": { "bytecodeHash": "ipfs", "useLiteralContent": true }, "optimizer": { "enabled": true, "runs": 200 }, "remappings": [], "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"op","type":"address"}],"name":"getOperatorLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oldOwner","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":"op","type":"address"},{"internalType":"uint256","name":"level","type":"uint256"}],"name":"setOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b503360009081526020819052604081206004905561038b90819061003490396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063777541361461006757806379ba50971461007c578063df07560514610084578063e30c3978146100c0578063f2fde38b146100eb578063f487404f146100fe575b600080fd5b61007a610075366004610309565b610111565b005b61007a610188565b6100ad610092366004610333565b6001600160a01b031660009081526020819052604090205490565b6040519081526020015b60405180910390f35b6002546100d3906001600160a01b031681565b6040516001600160a01b0390911681526020016100b7565b61007a6100f9366004610333565b610222565b6001546100d3906001600160a01b031681565b3360009081526020819052604090205460049081111561016b5760405162461bcd60e51b815260206004820152601060248201526f34b73b30b634b21037b832b930ba37b960811b60448201526064015b60405180910390fd5b506001600160a01b03909116600090815260208190526040902055565b6002546001600160a01b0316336001600160a01b0316146101de5760405162461bcd60e51b815260206004820152601060248201526f3737ba103832b73234b733a7bbb732b960811b6044820152606401610162565b3360009081526020819052604080822060049055600180546001600160a01b0316835290822091909155600280546001600160a01b03199081169091558154169055565b336000908152602081905260409020546004908111156102775760405162461bcd60e51b815260206004820152601060248201526f34b73b30b634b21037b832b930ba37b960811b6044820152606401610162565b6001600160a01b0382166102bc5760405162461bcd60e51b815260206004820152600c60248201526b7a65726f206164647265737360a01b6044820152606401610162565b50600180546001600160a01b03199081163317909155600280549091166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030457600080fd5b919050565b6000806040838503121561031c57600080fd5b610325836102ed565b946020939093013593505050565b60006020828403121561034557600080fd5b61034e826102ed565b939250505056fea26469706673582212201313cbfce2511b9ef6088e3641e3d77b6a6c0f5b512fee7f927b1cf1b543e52c64736f6c63430008090033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100625760003560e01c8063777541361461006757806379ba50971461007c578063df07560514610084578063e30c3978146100c0578063f2fde38b146100eb578063f487404f146100fe575b600080fd5b61007a610075366004610309565b610111565b005b61007a610188565b6100ad610092366004610333565b6001600160a01b031660009081526020819052604090205490565b6040519081526020015b60405180910390f35b6002546100d3906001600160a01b031681565b6040516001600160a01b0390911681526020016100b7565b61007a6100f9366004610333565b610222565b6001546100d3906001600160a01b031681565b3360009081526020819052604090205460049081111561016b5760405162461bcd60e51b815260206004820152601060248201526f34b73b30b634b21037b832b930ba37b960811b60448201526064015b60405180910390fd5b506001600160a01b03909116600090815260208190526040902055565b6002546001600160a01b0316336001600160a01b0316146101de5760405162461bcd60e51b815260206004820152601060248201526f3737ba103832b73234b733a7bbb732b960811b6044820152606401610162565b3360009081526020819052604080822060049055600180546001600160a01b0316835290822091909155600280546001600160a01b03199081169091558154169055565b336000908152602081905260409020546004908111156102775760405162461bcd60e51b815260206004820152601060248201526f34b73b30b634b21037b832b930ba37b960811b6044820152606401610162565b6001600160a01b0382166102bc5760405162461bcd60e51b815260206004820152600c60248201526b7a65726f206164647265737360a01b6044820152606401610162565b50600180546001600160a01b03199081163317909155600280549091166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030457600080fd5b919050565b6000806040838503121561031c57600080fd5b610325836102ed565b946020939093013593505050565b60006020828403121561034557600080fd5b61034e826102ed565b939250505056fea26469706673582212201313cbfce2511b9ef6088e3641e3d77b6a6c0f5b512fee7f927b1cf1b543e52c64736f6c63430008090033
Loading...
Loading
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.