Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 5 from a total of 5 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Transfer Ownersh... | 11692843 | 1265 days ago | IN | 0 ETH | 0.0023689 | ||||
Add Access | 11476604 | 1299 days ago | IN | 0 ETH | 0.00386019 | ||||
Add Access | 11472270 | 1299 days ago | IN | 0 ETH | 0.0080606 | ||||
Add Access | 11472270 | 1299 days ago | IN | 0 ETH | 0.01498662 | ||||
0x60806040 | 11386989 | 1312 days ago | IN | Create: SimpleWriteAccessController | 0 ETH | 0.02058169 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
SimpleWriteAccessController
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-01-20 */ // SPDX-License-Identifier: MIT pragma solidity ^0.6.0; /** * @title The Owned contract * @notice A contract with helpers for basic contract ownership. */ contract Owned { address public owner; address private pendingOwner; event OwnershipTransferRequested( address indexed from, address indexed to ); event OwnershipTransferred( address indexed from, address indexed to ); constructor() public { owner = msg.sender; } /** * @dev Allows an owner to begin transferring ownership to a new address, * pending. */ function transferOwnership(address _to) external onlyOwner() { pendingOwner = _to; emit OwnershipTransferRequested(owner, _to); } /** * @dev Allows an ownership transfer to be completed by the recipient. */ function acceptOwnership() external { require(msg.sender == pendingOwner, "Must be proposed owner"); address oldOwner = owner; owner = msg.sender; pendingOwner = address(0); emit OwnershipTransferred(oldOwner, msg.sender); } /** * @dev Reverts if called by anyone other than the contract owner. */ modifier onlyOwner() { require(msg.sender == owner, "Only callable by owner"); _; } } interface AccessControllerInterface { function hasAccess(address user, bytes calldata data) external view returns (bool); } /** * @title SimpleWriteAccessController * @notice Gives access to accounts explicitly added to an access list by the * controller's owner. * @dev does not make any special permissions for externally, see * SimpleReadAccessController for that. */ contract SimpleWriteAccessController is AccessControllerInterface, Owned { bool public checkEnabled; mapping(address => bool) internal accessList; event AddedAccess(address user); event RemovedAccess(address user); event CheckAccessEnabled(); event CheckAccessDisabled(); constructor() public { checkEnabled = true; } /** * @notice Returns the access of an address * @param _user The address to query */ function hasAccess( address _user, bytes memory ) public view virtual override returns (bool) { return accessList[_user] || !checkEnabled; } /** * @notice Adds an address to the access list * @param _user The address to add */ function addAccess(address _user) external onlyOwner() { if (!accessList[_user]) { accessList[_user] = true; emit AddedAccess(_user); } } /** * @notice Removes an address from the access list * @param _user The address to remove */ function removeAccess(address _user) external onlyOwner() { if (accessList[_user]) { accessList[_user] = false; emit RemovedAccess(_user); } } /** * @notice makes the access check enforced */ function enableAccessCheck() external onlyOwner() { if (!checkEnabled) { checkEnabled = true; emit CheckAccessEnabled(); } } /** * @notice makes the access check unenforced */ function disableAccessCheck() external onlyOwner() { if (checkEnabled) { checkEnabled = false; emit CheckAccessDisabled(); } } /** * @dev reverts if the caller does not have access */ modifier checkAccess() { require(hasAccess(msg.sender, msg.data), "No access"); _; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"}],"name":"AddedAccess","type":"event"},{"anonymous":false,"inputs":[],"name":"CheckAccessDisabled","type":"event"},{"anonymous":false,"inputs":[],"name":"CheckAccessEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipTransferRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"}],"name":"RemovedAccess","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"addAccess","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableAccessCheck","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableAccessCheck","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"hasAccess","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"removeAccess","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50600080546001600160a01b031916331790556001805460ff60a01b1916600160a01b1790556106ee806100456000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80638823da6c116100665780638823da6c1461017c5780638da5cb5b146101a2578063a118f249146101c6578063dc7f0124146101ec578063f2fde38b146101f457610093565b80630a756983146100985780636b14daf8146100a257806379ba50971461016c5780638038e4a114610174575b600080fd5b6100a061021a565b005b610158600480360360408110156100b857600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100e357600080fd5b8201836020820111156100f557600080fd5b8035906020019184600183028401116401000000008311171561011757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506102bd945050505050565b604080519115158252519081900360200190f35b6100a06102f5565b6100a06103a4565b6100a06004803603602081101561019257600080fd5b50356001600160a01b031661044b565b6101aa61051d565b604080516001600160a01b039092168252519081900360200190f35b6100a0600480360360208110156101dc57600080fd5b50356001600160a01b031661052c565b6101586105ff565b6100a06004803603602081101561020a57600080fd5b50356001600160a01b031661060f565b6000546001600160a01b03163314610272576040805162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b604482015290519081900360640190fd5b600154600160a01b900460ff16156102bb576001805460ff60a01b191690556040517f3be8a977a014527b50ae38adda80b56911c267328965c98ddc385d248f53963890600090a15b565b6001600160a01b03821660009081526002602052604081205460ff16806102ee5750600154600160a01b900460ff16155b9392505050565b6001546001600160a01b0316331461034d576040805162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b604482015290519081900360640190fd5b60008054336001600160a01b0319808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b6000546001600160a01b031633146103fc576040805162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b604482015290519081900360640190fd5b600154600160a01b900460ff166102bb576001805460ff60a01b1916600160a01b1790556040517faebf329500988c6488a0074e5a0a9ff304561fc5c6fc877aeb1d59c8282c348090600090a1565b6000546001600160a01b031633146104a3576040805162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b604482015290519081900360640190fd5b6001600160a01b03811660009081526002602052604090205460ff161561051a576001600160a01b038116600081815260026020908152604091829020805460ff19169055815192835290517f3d68a6fce901d20453d1a7aa06bf3950302a735948037deb182a8db66df2a0d19281900390910190a15b50565b6000546001600160a01b031681565b6000546001600160a01b03163314610584576040805162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b604482015290519081900360640190fd5b6001600160a01b03811660009081526002602052604090205460ff1661051a576001600160a01b038116600081815260026020908152604091829020805460ff19166001179055815192835290517f87286ad1f399c8e82bf0c4ef4fcdc570ea2e1e92176e5c848b6413545b885db49281900390910190a150565b600154600160a01b900460ff1681565b6000546001600160a01b03163314610667576040805162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a35056fea26469706673582212205c01e7188c25831fa6e35e1fbd70ffc6468fb3115f70366f7b1ae3fec73453ed64736f6c634300060c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100935760003560e01c80638823da6c116100665780638823da6c1461017c5780638da5cb5b146101a2578063a118f249146101c6578063dc7f0124146101ec578063f2fde38b146101f457610093565b80630a756983146100985780636b14daf8146100a257806379ba50971461016c5780638038e4a114610174575b600080fd5b6100a061021a565b005b610158600480360360408110156100b857600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100e357600080fd5b8201836020820111156100f557600080fd5b8035906020019184600183028401116401000000008311171561011757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506102bd945050505050565b604080519115158252519081900360200190f35b6100a06102f5565b6100a06103a4565b6100a06004803603602081101561019257600080fd5b50356001600160a01b031661044b565b6101aa61051d565b604080516001600160a01b039092168252519081900360200190f35b6100a0600480360360208110156101dc57600080fd5b50356001600160a01b031661052c565b6101586105ff565b6100a06004803603602081101561020a57600080fd5b50356001600160a01b031661060f565b6000546001600160a01b03163314610272576040805162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b604482015290519081900360640190fd5b600154600160a01b900460ff16156102bb576001805460ff60a01b191690556040517f3be8a977a014527b50ae38adda80b56911c267328965c98ddc385d248f53963890600090a15b565b6001600160a01b03821660009081526002602052604081205460ff16806102ee5750600154600160a01b900460ff16155b9392505050565b6001546001600160a01b0316331461034d576040805162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b604482015290519081900360640190fd5b60008054336001600160a01b0319808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b6000546001600160a01b031633146103fc576040805162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b604482015290519081900360640190fd5b600154600160a01b900460ff166102bb576001805460ff60a01b1916600160a01b1790556040517faebf329500988c6488a0074e5a0a9ff304561fc5c6fc877aeb1d59c8282c348090600090a1565b6000546001600160a01b031633146104a3576040805162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b604482015290519081900360640190fd5b6001600160a01b03811660009081526002602052604090205460ff161561051a576001600160a01b038116600081815260026020908152604091829020805460ff19169055815192835290517f3d68a6fce901d20453d1a7aa06bf3950302a735948037deb182a8db66df2a0d19281900390910190a15b50565b6000546001600160a01b031681565b6000546001600160a01b03163314610584576040805162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b604482015290519081900360640190fd5b6001600160a01b03811660009081526002602052604090205460ff1661051a576001600160a01b038116600081815260026020908152604091829020805460ff19166001179055815192835290517f87286ad1f399c8e82bf0c4ef4fcdc570ea2e1e92176e5c848b6413545b885db49281900390910190a150565b600154600160a01b900460ff1681565b6000546001600160a01b03163314610667576040805162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a35056fea26469706673582212205c01e7188c25831fa6e35e1fbd70ffc6468fb3115f70366f7b1ae3fec73453ed64736f6c634300060c0033
Deployed Bytecode Sourcemap
1699:1883:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3240:168;;;:::i;:::-;;2166:189;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2166:189:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2166:189:0;;-1:-1:-1;2166:189:0;;-1:-1:-1;;;;;2166:189:0:i;:::-;;;;;;;;;;;;;;;;;;849:264;;;:::i;3006:166::-;;;:::i;2756:184::-;;;;;;;;;;;;;;;;-1:-1:-1;2756:184:0;-1:-1:-1;;;;;2756:184:0;;:::i;190:20::-;;;:::i;:::-;;;;-1:-1:-1;;;;;190:20:0;;;;;;;;;;;;;;2462:179;;;;;;;;;;;;;;;;-1:-1:-1;2462:179:0;-1:-1:-1;;;;;2462:179:0;;:::i;1779:24::-;;;:::i;598:157::-;;;;;;;;;;;;;;;;-1:-1:-1;598:157:0;-1:-1:-1;;;;;598:157:0;;:::i;3240:168::-;1253:5;;-1:-1:-1;;;;;1253:5:0;1239:10;:19;1231:54;;;;;-1:-1:-1;;;1231:54:0;;;;;;;;;;;;-1:-1:-1;;;1231:54:0;;;;;;;;;;;;;;;3315:12:::1;::::0;-1:-1:-1;;;3315:12:0;::::1;;;3311:92;;;3338:12;:20:::0;;-1:-1:-1;;;;3338:20:0::1;::::0;;3374:21:::1;::::0;::::1;::::0;3353:5:::1;::::0;3374:21:::1;3311:92;3240:168::o:0;2166:189::-;-1:-1:-1;;;;;2315:17:0;;2292:4;2315:17;;;:10;:17;;;;;;;;;:34;;-1:-1:-1;2337:12:0;;-1:-1:-1;;;2337:12:0;;;;2336:13;2315:34;2308:41;2166:189;-1:-1:-1;;;2166:189:0:o;849:264::-;922:12;;-1:-1:-1;;;;;922:12:0;908:10;:26;900:61;;;;;-1:-1:-1;;;900:61:0;;;;;;;;;;;;-1:-1:-1;;;900:61:0;;;;;;;;;;;;;;;970:16;989:5;;1009:10;-1:-1:-1;;;;;;1001:18:0;;;;;;;-1:-1:-1;1026:25:0;;;;;;;1065:42;;-1:-1:-1;;;;;989:5:0;;;;1009:10;;989:5;;1065:42;;;849:264;:::o;3006:166::-;1253:5;;-1:-1:-1;;;;;1253:5:0;1239:10;:19;1231:54;;;;;-1:-1:-1;;;1231:54:0;;;;;;;;;;;;-1:-1:-1;;;1231:54:0;;;;;;;;;;;;;;;3081:12:::1;::::0;-1:-1:-1;;;3081:12:0;::::1;;;3076:91;;3119:4;3104:19:::0;;-1:-1:-1;;;;3104:19:0::1;-1:-1:-1::0;;;3104:19:0::1;::::0;;3139:20:::1;::::0;::::1;::::0;3104:19;;3139:20:::1;3006:166::o:0;2756:184::-;1253:5;;-1:-1:-1;;;;;1253:5:0;1239:10;:19;1231:54;;;;;-1:-1:-1;;;1231:54:0;;;;;;;;;;;;-1:-1:-1;;;1231:54:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;2838:17:0;::::1;;::::0;;;:10:::1;:17;::::0;;;;;::::1;;2834:101;;;-1:-1:-1::0;;;;;2866:17:0;::::1;2886:5;2866:17:::0;;;:10:::1;:17;::::0;;;;;;;;:25;;-1:-1:-1;;2866:25:0::1;::::0;;2907:20;;;;;;;::::1;::::0;;;;;;;;::::1;2834:101;2756:184:::0;:::o;190:20::-;;;-1:-1:-1;;;;;190:20:0;;:::o;2462:179::-;1253:5;;-1:-1:-1;;;;;1253:5:0;1239:10;:19;1231:54;;;;;-1:-1:-1;;;1231:54:0;;;;;;;;;;;;-1:-1:-1;;;1231:54:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;2542:17:0;::::1;;::::0;;;:10:::1;:17;::::0;;;;;::::1;;2537:99;;-1:-1:-1::0;;;;;2570:17:0;::::1;;::::0;;;:10:::1;:17;::::0;;;;;;;;:24;;-1:-1:-1;;2570:24:0::1;2590:4;2570:24;::::0;;2610:18;;;;;;;::::1;::::0;;;;;;;;::::1;2462:179:::0;:::o;1779:24::-;;;-1:-1:-1;;;1779:24:0;;;;;:::o;598:157::-;1253:5;;-1:-1:-1;;;;;1253:5:0;1239:10;:19;1231:54;;;;;-1:-1:-1;;;1231:54:0;;;;;;;;;;;;-1:-1:-1;;;1231:54:0;;;;;;;;;;;;;;;679:12:::1;:18:::0;;-1:-1:-1;;;;;;679:18:0::1;-1:-1:-1::0;;;;;679:18:0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;738:5:0;;711:38:::1;::::0;679:18;;738:5:::1;::::0;711:38:::1;::::0;-1:-1:-1;711:38:0::1;598:157:::0;:::o
Swarm Source
ipfs://5c01e7188c25831fa6e35e1fbd70ffc6468fb3115f70366f7b1ae3fec73453ed
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 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.