-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathIVaultAccounting.sol
42 lines (23 loc) · 1.63 KB
/
IVaultAccounting.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.0;
interface IVaultAccounting {
event DepositEth(address indexed user, bytes12 indexed vaultName, uint256 amountEth, uint256 amountLp);
event DepositLpToken(address indexed user, bytes12 indexed vaultName, uint256 amountLp);
event Withdraw(address indexed user, bytes12 indexed vaultName, uint256 amountEth, uint256 amountLp);
event WithdrawLpToken(address indexed user, bytes12 indexed vaultName, uint256 amountLp);
event RewardAdded(bytes12 vaultName, uint256 reward);
event RewardPaid(bytes12 vaultName, address indexed user, uint256 reward);
event RewardsDurationUpdated(bytes12 vaultName, uint256 newDuration);
function deposit(bytes12 vaultName) external payable;
function depositLpToken(bytes12 vaultName, uint256 amount) external;
function withdraw(uint256 lpTokenAmount, bytes12 vaultName) external;
function withdrawLpToken(uint256 lpTokenAmount, bytes12 vault) external;
function getReward(bytes12 vaultName) external;
function notifyRewardAmount(bytes12 vaultName, uint256 reward) external;
function setRewardsDuration(bytes12 vaultName, uint256 duration) external;
function userLPTokenBalance(address user, bytes12 vaultName) external view returns (uint256);
function userETHBalance(address user, bytes12 vaultName) external view returns (uint256);
function earned(bytes12 vaultName, address account) external view returns (uint256);
function rewardPerToken(bytes12 vaultName) external view returns (uint256);
function lastTimeRewardApplicable(bytes12 vaultName) external view returns (uint256);
}