-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAdmin.sol
More file actions
47 lines (34 loc) · 1.34 KB
/
Admin.sol
File metadata and controls
47 lines (34 loc) · 1.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.8.18;
import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol";
contract Admin is Ownable {
mapping(address => bool) whitelist;
mapping(address => bool) blacklist;
event Whitelisted(address _address);
event Blacklisted(address _address);
constructor (){
whitelist[msg.sender] = true;
}
modifier notWhitelisted(address _address) {
require(!whitelist[_address],"l'adresse est deja ds la whitelist");
_;
}
modifier notBlacklisted(address _address) {
require(!blacklist[_address],"l'adresse est deja ds la blacklist");
_;
}
function authorize(address _address) public onlyOwner() notWhitelisted(_address) notBlacklisted(_address) {
whitelist[_address] = true;
emit Whitelisted(_address);
}
function ban(address _address) public onlyOwner() notWhitelisted(_address) notBlacklisted(_address) {
blacklist[_address] = true;
emit Blacklisted(_address);
}
function isWhitelisted(address _address) public view onlyOwner returns(bool) {
return (whitelist[_address]);
}
function isBlacklisted(address _address) public view onlyOwner returns(bool) {
return (blacklist[_address]);
}
}