stQEUROFactory
Inherits: Initializable, AccessControlUpgradeable, SecureUpgradeable
Title: stQEUROFactory
Deploys and registers one stQEURO token proxy per staking vault.
State Variables
GOVERNANCE_ROLE
bytes32 public constant GOVERNANCE_ROLE = keccak256("GOVERNANCE_ROLE")
VAULT_FACTORY_ROLE
bytes32 public constant VAULT_FACTORY_ROLE = keccak256("VAULT_FACTORY_ROLE")
tokenImplementation
stQEUROToken implementation used by newly deployed ERC1967 proxies.
address public tokenImplementation
qeuro
address public qeuro
yieldShift
address public yieldShift
usdc
address public usdc
treasury
address public treasury
oracle
address public oracle
tokenAdmin
address public tokenAdmin
stQEUROByVaultId
mapping(uint256 => address) public stQEUROByVaultId
stQEUROByVault
mapping(address => address) public stQEUROByVault
vaultById
mapping(uint256 => address) public vaultById
vaultIdByStQEURO
mapping(address => uint256) public vaultIdByStQEURO
_vaultNamesById
mapping(uint256 => string) private _vaultNamesById
_vaultNameHashUsed
mapping(bytes32 => bool) private _vaultNameHashUsed
Functions
constructor
constructor() ;
initialize
function initialize(
address admin,
address _tokenImplementation,
address _qeuro,
address _yieldShift,
address _usdc,
address _treasury,
address _timelock,
address _oracle
) external initializer;
registerVault
Strict self-registration entrypoint. Caller vault deploys its own stQEURO.
function registerVault(uint256 vaultId, string calldata vaultName)
external
onlyRole(VAULT_FACTORY_ROLE)
returns (address stQEUROToken_);
getStQEUROByVaultId
function getStQEUROByVaultId(uint256 vaultId) external view returns (address stQEUROToken_);
getStQEUROByVault
function getStQEUROByVault(address vault) external view returns (address stQEUROToken_);
getVaultById
function getVaultById(uint256 vaultId) external view returns (address vault);
getVaultIdByStQEURO
function getVaultIdByStQEURO(address stQEUROToken_) external view returns (uint256 vaultId);
getVaultName
function getVaultName(uint256 vaultId) external view returns (string memory vaultName);
updateYieldShift
function updateYieldShift(address _yieldShift) external onlyRole(GOVERNANCE_ROLE);
updateTokenImplementation
function updateTokenImplementation(address _tokenImplementation) external onlyRole(GOVERNANCE_ROLE);
updateOracle
function updateOracle(address _oracle) external onlyRole(GOVERNANCE_ROLE);
updateTreasury
function updateTreasury(address _treasury) external onlyRole(GOVERNANCE_ROLE);
updateTokenAdmin
function updateTokenAdmin(address _tokenAdmin) external onlyRole(GOVERNANCE_ROLE);
_validateVaultName
function _validateVaultName(string calldata vaultName) internal pure;
Events
VaultRegistered
event VaultRegistered(
uint256 indexed vaultId, address indexed vault, address indexed stQEUROToken, string vaultName
);
FactoryConfigUpdated
event FactoryConfigUpdated(string indexed key, address oldValue, address newValue);