Skip to main content
PulseScanner.io

Address

0x91c32d08deb1c52377e8584efd0fb95b025dddfe
Current 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;
  }
}