Address
0x91c32d08deb1c52377e8584efd0fb95b025dddfeCurrent Holdings
$0.00
TXs sent
not counted
First Active
2024-11-06
block 21,856,713
Last Active
674 days ago
block 21,910,408
Funded By
not identified
Net worth historyi
No net-worth snapshots recorded yet
exact matchWhitelistsolc 0.5.17+commit.d19bba13runtime exact · creation not verified
pragma solidity ^0.5.1;
import 'openzeppelin-solidity/contracts/ownership/Ownable.sol';
/// @title Whitelist for adding/removing users from a whitelist
/// @author Anton Shtylman - @InfiniteStyles
contract Whitelist is Ownable {
event UsersAddedToWhitelist(address[] users);
event UsersRemovedFromWhitelist(address[] users);
mapping(address => bool) public isWhitelisted;
mapping(address => bool) private collateralWhitelist;
address[] public collateralAddresses;
function addToWhitelist(address[] calldata users) onlyOwner external {
for (uint i = 0; i < users.length; i++) {
isWhitelisted[users[i]] = true;
}
emit UsersAddedToWhitelist(users);
}
function removeFromWhitelist(address[] calldata users) onlyOwner external {
for (uint i = 0; i < users.length; i++) {
isWhitelisted[users[i]] = false;
}
emit UsersRemovedFromWhitelist(users);
}
function checkCollateralWhitelist(address _collaterAddress) external view returns (bool) {
bool _isWhiteCollateralListed = collateralWhitelist[_collaterAddress];
return _isWhiteCollateralListed;
}
function addCollateralWhitelist(address _collateralAddress, bool _isWhiteListed) onlyOwner external {
collateralWhitelist[_collateralAddress] = _isWhiteListed;
if (_isWhiteListed) {
// Add the address to the array if it is being whitelisted
for (uint256 i = 0; i < collateralAddresses.length; i++) {
require(collateralAddresses[i] != _collateralAddress, "Address already whitelisted");
}
collateralAddresses.push(_collateralAddress);
} else {
// Remove the address from the array if it is being unlisted
for (uint256 i = 0; i < collateralAddresses.length; i++) {
if (collateralAddresses[i] == _collateralAddress) {
collateralAddresses[i] = collateralAddresses[collateralAddresses.length - 1]; // Replace with last element
collateralAddresses.pop(); // Remove last element
break;
}
}
}
}
function getCollateralWhitelist() public view returns (address[] memory) {
return collateralAddresses;
}
}