// 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 {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 { __Ownable_init(); __Pausable_init(); __ReentrancyGuard_init(); __ERC4626_init(IERC20MetadataUpgradeable(c_stCeloToken)); } }