-
Notifications
You must be signed in to change notification settings - Fork 14
/
IVaultController.sol
104 lines (68 loc) · 3.24 KB
/
IVaultController.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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
// SPDX-License-Identifier: GPL-3.0
// Docgen-SOLC: 0.8.15
pragma solidity ^0.8.15;
import { VaultInitParams, VaultFees } from "./IVault.sol";
import { VaultMetadata } from "./IVaultRegistry.sol";
import { IDeploymentController } from "./IDeploymentController.sol";
import { IERC4626, IERC20 } from "./IERC4626.sol";
struct DeploymentArgs {
/// @Notice templateId
bytes32 id;
/// @Notice encoded init params
bytes data;
}
interface IVaultController {
function deployVault(
VaultInitParams memory vaultData,
DeploymentArgs memory adapterData,
DeploymentArgs memory strategyData,
address staking,
bytes memory rewardsData,
VaultMetadata memory metadata,
uint256 initialDeposit
) external returns (address);
function deployAdapter(
IERC20 asset,
DeploymentArgs memory adapterData,
DeploymentArgs memory strategyData,
uint256 initialDeposit
) external returns (address);
function deployStaking(IERC20 asset) external returns (address);
function proposeVaultAdapters(address[] memory vaults, IERC4626[] memory newAdapter) external;
function changeVaultAdapters(address[] memory vaults) external;
function proposeVaultFees(address[] memory vaults, VaultFees[] memory newFees) external;
function changeVaultFees(address[] memory vaults) external;
function registerVaults(address[] memory vaults, VaultMetadata[] memory metadata) external;
function addClones(address[] memory clones) external;
function toggleEndorsements(address[] memory targets) external;
function toggleRejections(address[] memory targets) external;
function addStakingRewardsTokens(address[] memory vaults, bytes[] memory rewardsTokenData) external;
function changeStakingRewardsSpeeds(
address[] memory vaults,
IERC20[] memory rewardTokens,
uint160[] memory rewardsSpeeds
) external;
function fundStakingRewards(
address[] memory vaults,
IERC20[] memory rewardTokens,
uint256[] memory amounts
) external;
function setEscrowTokenFees(IERC20[] memory tokens, uint256[] memory fees) external;
function addTemplateCategories(bytes32[] memory templateCategories) external;
function toggleTemplateEndorsements(bytes32[] memory templateCategories, bytes32[] memory templateIds) external;
function pauseAdapters(address[] calldata vaults) external;
function pauseVaults(address[] calldata vaults) external;
function unpauseAdapters(address[] calldata vaults) external;
function unpauseVaults(address[] calldata vaults) external;
function nominateNewAdminProxyOwner(address newOwner) external;
function acceptAdminProxyOwnership() external;
function setPerformanceFee(uint256 newFee) external;
function setAdapterPerformanceFees(address[] calldata adapters) external;
function performanceFee() external view returns (uint256);
function setHarvestCooldown(uint256 newCooldown) external;
function setAdapterHarvestCooldowns(address[] calldata adapters) external;
function harvestCooldown() external view returns (uint256);
function setDeploymentController(IDeploymentController _deploymentController) external;
function setActiveTemplateId(bytes32 templateCategory, bytes32 templateId) external;
function activeTemplateId(bytes32 templateCategory) external view returns (bytes32);
}