Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 7 from a total of 7 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Revoke Role | 19660487 | 293 days ago | IN | 0 ETH | 0.00035145 | ||||
Revoke Role | 19660474 | 293 days ago | IN | 0 ETH | 0.00035876 | ||||
Revoke Role | 19660472 | 293 days ago | IN | 0 ETH | 0.00036745 | ||||
Grant Role | 19623892 | 298 days ago | IN | 0 ETH | 0.00075031 | ||||
Grant Role | 19623689 | 298 days ago | IN | 0 ETH | 0.00069737 | ||||
Grant Role | 19620297 | 299 days ago | IN | 0 ETH | 0.00100843 | ||||
Grant Role | 19453176 | 322 days ago | IN | 0 ETH | 0.00117541 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
EeseeAccessManager
Compiler Version
v0.8.21+commit.d9974bed
Optimization Enabled:
Yes with 100000000 runs
Other Settings:
shanghai EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: BUSL-1.1 pragma solidity 0.8.21; import "../interfaces/IEeseeAccessManager.sol"; contract EeseeAccessManager is IEeseeAccessManager { bytes32 public constant ADMIN_ROLE = 0x00; mapping(bytes32 => mapping(address => bool)) private _roles; /** * @dev Modifier that checks that an account has {ADMIN_ROLE}. */ modifier onlyAdmin() { if(!hasRole(ADMIN_ROLE, msg.sender)) revert CallerNotAdmin(); _; } constructor() { _grantRole(ADMIN_ROLE, msg.sender); } // ============ External Write Functions ============ /** * @dev Grants {role} to {account}. If {account} had not been already granted {role}, emits a {RoleGranted} event. * @param role - Role to grant. * @param account - Account to grant role to. * Note: This function can only be called by the ADMIN_ROLE. */ function grantRole(bytes32 role, address account) external onlyAdmin { _grantRole(role, account); } /** * @dev Revokes {role} from {account}. If {account} had been granted {role}, emits a {RoleRevoked} event. * @param role - Role to revoke. * @param account - Account to revoke role from. * Note: This function can only be called by the ADMIN_ROLE. */ function revokeRole(bytes32 role, address account) external onlyAdmin { if (hasRole(role, account)) { _roles[role][account] = false; emit RoleRevoked(role, account); } } // ============ Public View Functions ============ /** * @dev Retrurns if {account} has {role}. * @param role - Role to check. * @param account - Account to check. * @return true if {account} has been granted {role}. */ function hasRole(bytes32 role, address account) public view returns (bool) { return _roles[role][account]; } // ============ Internal Write Functions ============ function _grantRole(bytes32 role, address account) internal { if (!hasRole(role, account)) { _roles[role][account] = true; emit RoleGranted(role, account); } } }
// SPDX-License-Identifier: BUSL-1.1 pragma solidity 0.8.21; interface IEeseeAccessManager { event RoleGranted(bytes32 indexed role, address indexed account); event RoleRevoked(bytes32 indexed role, address indexed account); error CallerNotAdmin(); function hasRole(bytes32 role, address account) external view returns (bool); function ADMIN_ROLE() external view returns (bytes32); function grantRole(bytes32 role, address account) external; function revokeRole(bytes32 role, address account) external; }
{ "optimizer": { "enabled": true, "runs": 100000000 }, "evmVersion": "shanghai", "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"CallerNotAdmin","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561000f575f80fd5b5061001a5f3361001f565b61009f565b5f828152602081815260408083206001600160a01b038516845290915290205460ff1661009b575f828152602081815260408083206001600160a01b0385168085529252808320805460ff1916600117905551909184917f2ae6a113c0ed5b78a53413ffbb7679881f11145ccfba4fb92e863dfcd5a1d2f39190a35b5050565b6103a7806100ac5f395ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c80632f2ff15d1461004e57806375b238fc1461006357806391d148541461007d578063d547741f146100d0575b5f80fd5b61006161005c36600461032b565b6100e3565b005b61006a5f81565b6040519081526020015b60405180910390f35b6100c061008b36600461032b565b5f9182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b6040519015158152602001610074565b6100616100de36600461032b565b610158565b335f9081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff1661014a576040517f06d919f200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6101548282610274565b5050565b335f9081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff166101bf576040517f06d919f200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1615610154575f8281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551909184917f155aaafb6329a2098580462df33ec4b7441b19729b9601c5fc17ae1cf99a8a529190a35050565b5f8281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610154575f8281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905551909184917f2ae6a113c0ed5b78a53413ffbb7679881f11145ccfba4fb92e863dfcd5a1d2f39190a35050565b5f806040838503121561033c575f80fd5b82359150602083013573ffffffffffffffffffffffffffffffffffffffff81168114610366575f80fd5b80915050925092905056fea2646970667358221220921580c324719edbab07bb63aa1f29c9a7ef24d8a0308fff6e279afbdaddbc0164736f6c63430008150033
Deployed Bytecode
0x608060405234801561000f575f80fd5b506004361061004a575f3560e01c80632f2ff15d1461004e57806375b238fc1461006357806391d148541461007d578063d547741f146100d0575b5f80fd5b61006161005c36600461032b565b6100e3565b005b61006a5f81565b6040519081526020015b60405180910390f35b6100c061008b36600461032b565b5f9182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b6040519015158152602001610074565b6100616100de36600461032b565b610158565b335f9081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff1661014a576040517f06d919f200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6101548282610274565b5050565b335f9081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff166101bf576040517f06d919f200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1615610154575f8281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551909184917f155aaafb6329a2098580462df33ec4b7441b19729b9601c5fc17ae1cf99a8a529190a35050565b5f8281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610154575f8281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905551909184917f2ae6a113c0ed5b78a53413ffbb7679881f11145ccfba4fb92e863dfcd5a1d2f39190a35050565b5f806040838503121561033c575f80fd5b82359150602083013573ffffffffffffffffffffffffffffffffffffffff81168114610366575f80fd5b80915050925092905056fea2646970667358221220921580c324719edbab07bb63aa1f29c9a7ef24d8a0308fff6e279afbdaddbc0164736f6c63430008150033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.