Files
zeekay 86402a84d1 refactor: rename Alchemist/Alchemix to Liquid/Lux across entire codebase
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)
2026-03-16 23:45:39 -07:00

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();
}
}
}