-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathpuissantIndicator.sol
41 lines (30 loc) · 1.12 KB
/
puissantIndicator.sol
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
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;
import "@openzeppelin/contracts/access/Ownable.sol";
contract PuissantIndicator is Ownable {
address[] puissants;
mapping(address => bool) public isPuissant;
event PuissantDeployed(address coinbase);
event PuissantDisabled(address coinbase);
function addValidator(address coinbase) external onlyOwner {
require(!isPuissant[coinbase], "already exist");
isPuissant[coinbase] = true;
puissants.push(coinbase);
emit PuissantDeployed(coinbase);
}
function removeValidator(address coinbase) external onlyOwner {
require(isPuissant[coinbase], "!exist");
isPuissant[coinbase] = false;
for (uint256 index = 0; index < puissants.length; index++) {
if (puissants[index] == coinbase) {
puissants[index] = puissants[puissants.length - 1];
puissants.pop();
break;
}
}
emit PuissantDisabled(coinbase);
}
function getPuissants() external view returns (address[] memory) {
return puissants;
}
}