staking/contracts/interfaces/IStakeManager.sol

26 lines
1.0 KiB
Solidity
Raw Normal View History

2024-11-08 03:56:09 +00:00
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.27;
2024-11-08 03:56:09 +00:00
import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import { ITrustedCodehashAccess } from "./ITrustedCodehashAccess.sol";
import { IStakeConstants } from "./IStakeConstants.sol";
2024-11-08 03:56:09 +00:00
interface IStakeManager is IStakeConstants, ITrustedCodehashAccess {
2024-11-08 03:56:09 +00:00
error StakeManager__FundsLocked();
error StakeManager__InvalidLockTime();
error StakeManager__InsufficientFunds();
error StakeManager__StakeIsTooLow();
function STAKING_TOKEN() external view returns (IERC20);
function REWARD_TOKEN() external view returns (IERC20);
2024-11-08 03:56:09 +00:00
function stake(uint256 _amount, uint256 _seconds) external;
function lock(uint256 _seconds) external;
function unstake(uint256 _amount) external;
function totalStaked() external view returns (uint256);
function totalMP() external view returns (uint256);
//function totalMaxMP() external view returns (uint256);
2024-11-08 03:56:09 +00:00
function getStakedBalance(address _vault) external view returns (uint256 _balance);
}