mirror of
https://github.com/luxfi/liquid.git
synced 2026-10-30 16:21:07 +00:00
Mechanical rename preserving all logic: - AlchemistV3 → Liquid, AlchemistV3Position → LiquidPosition - AlchemistETHVault → LiquidETHVault, AlchemistTokenVault → LiquidTokenVault - AlchemistCurator → LiquidCurator, AlchemistAllocator → LiquidAllocator - AlchemistStrategyClassifier → LiquidStrategyClassifier, AlchemistGate → LiquidGate - Transmuter → LiquidTransmuter, MYTStrategy → LiquidStrategy - PerpetualGauge → LiquidGauge - IAlchemistV3 → ILiquid, IAlchemicToken → ILiquidMintable - All interfaces renamed to ILiquid* pattern - TransmuterErrors.sol → LiquidTransmuterErrors.sol - "Alchemix Finance" → "Lux Liquid" in author tags - Lowercase variable names: alchemist → liquid, MYT → VAULT - AlEth.sol left unchanged (external token contract)
64 lines
1.6 KiB
Solidity
64 lines
1.6 KiB
Solidity
pragma solidity ^0.8.13;
|
|
|
|
import "../base/Errors.sol";
|
|
import "../interfaces/IWhitelist.sol";
|
|
import "../../lib/openzeppelin-contracts/contracts/access/Ownable.sol";
|
|
import "../libraries/Sets.sol";
|
|
|
|
/// @title Whitelist
|
|
/// @author Lux Liquid
|
|
contract Whitelist is IWhitelist, Ownable {
|
|
using Sets for Sets.AddressSet;
|
|
|
|
Sets.AddressSet addresses;
|
|
|
|
/// @inheritdoc IWhitelist
|
|
bool public override disabled;
|
|
|
|
constructor() Ownable(msg.sender) {}
|
|
|
|
/// @inheritdoc IWhitelist
|
|
function getAddresses() external view returns (address[] memory) {
|
|
return addresses.values;
|
|
}
|
|
|
|
/// @inheritdoc IWhitelist
|
|
function add(address caller) external override {
|
|
_onlyAdmin();
|
|
if (disabled) {
|
|
revert IllegalState();
|
|
}
|
|
addresses.add(caller);
|
|
emit AccountAdded(caller);
|
|
}
|
|
|
|
/// @inheritdoc IWhitelist
|
|
function remove(address caller) external override {
|
|
_onlyAdmin();
|
|
if (disabled) {
|
|
revert IllegalState();
|
|
}
|
|
addresses.remove(caller);
|
|
emit AccountRemoved(caller);
|
|
}
|
|
|
|
/// @inheritdoc IWhitelist
|
|
function disable() external override {
|
|
_onlyAdmin();
|
|
disabled = true;
|
|
emit WhitelistDisabled();
|
|
}
|
|
|
|
/// @inheritdoc IWhitelist
|
|
function isWhitelisted(address account) external view override returns (bool) {
|
|
return disabled || addresses.contains(account);
|
|
}
|
|
|
|
/// @dev Reverts if the caller is not the contract owner.
|
|
function _onlyAdmin() internal view {
|
|
if (msg.sender != owner()) {
|
|
revert Unauthorized();
|
|
}
|
|
}
|
|
}
|