// SPDX-License-Identifier: Apache-2.0 // https://docs.soliditylang.org/en/v0.8.10/style-guide.html pragma solidity ^0.8.10; import {IAccount} from "lib/staked-celo/contracts/interfaces/IAccount.sol"; import {Manager} from "lib/staked-celo/contracts/Manager.sol"; import {IERC20} from "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"; import {ERC20} from "lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol"; import {ERC4626Upgradeable} from "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC4626Upgradeable.sol"; import {IERC20MetadataUpgradeable} from "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol"; import "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol"; import "lib/openzeppelin-contracts-upgradeable/contracts/security/PausableUpgradeable.sol"; import "lib/openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol"; /// @title StakedTokenVault /// @author @douglasqian @no40 /// @notice This is a modification of the EIP-4626 tokenized vault standard /// for yield-bearing tokens where the yield is accrued back onto the vault /// instead of being distributed to the depositors. contract StakedTokenVault is ERC4626Upgradeable // OwnableUpgradeable, // PausableUpgradeable, // ReentrancyGuardUpgradeable { address internal c_stCeloToken = 0xC668583dcbDc9ae6FA3CE46462758188adfdfC24; address internal c_stCeloManager = 0x0239b96D10a434a56CC9E09383077A0490cF9398; address internal c_stCeloAccount = 0x4aAD04D41FD7fd495503731C5a2579e19054C432; function initialize() public initializer { // __Ownable_init(); // __Pausable_init(); // __ReentrancyGuard_init(); __ERC4626_init(IERC20MetadataUpgradeable(c_stCeloToken)); } function getAssetName() public view returns (string memory) { return ERC20(asset()).name(); } function getAssetSymbol() public view returns (string memory) { return ERC20(asset()).symbol(); } }