Skip to content

Commit 1c86fe4

Browse files
Enrich SSVBasedApps interface (#51)
1 parent 90ede9d commit 1c86fe4

File tree

3 files changed

+99
-6
lines changed

3 files changed

+99
-6
lines changed

src/core/SSVBasedApps.sol

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,7 @@ import { ProtocolStorageLib } from "@ssv/src/core/libraries/ProtocolStorageLib.s
5959
contract SSVBasedApps is
6060
ISSVBasedApps,
6161
UUPSUpgradeable,
62-
Ownable2StepUpgradeable,
63-
IBasedAppManager,
64-
IStrategyManager,
65-
IProtocolManager
62+
Ownable2StepUpgradeable
6663
{
6764
// ***************************
6865
// ** Section: Initializers **

src/core/interfaces/ISSVBasedApps.sol

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,21 @@ pragma solidity 0.8.29;
44
import { IStrategyManager } from "@ssv/src/core/interfaces/IStrategyManager.sol";
55
import { IBasedAppManager } from "@ssv/src/core/interfaces/IBasedAppManager.sol";
66
import { IProtocolManager } from "@ssv/src/core/interfaces/IProtocolManager.sol";
7+
import { IViews } from "@ssv/src/core/interfaces/IViews.sol";
78
import { SSVCoreModules } from "@ssv/src/core/libraries/CoreStorageLib.sol";
89
import { ProtocolStorageLib } from "@ssv/src/core/libraries/ProtocolStorageLib.sol";
910

10-
interface ISSVBasedApps {
11+
interface ISSVBasedApps is
12+
IStrategyManager,
13+
IBasedAppManager,
14+
IProtocolManager,
15+
IViews
16+
{
1117
event ModuleUpdated(SSVCoreModules indexed moduleId, address moduleAddress);
1218

1319
function getModuleAddress(
1420
SSVCoreModules moduleId
1521
) external view returns (address);
16-
function getVersion() external pure returns (string memory version);
1722
function initialize(
1823
address owner_,
1924
IBasedAppManager ssvBasedAppManger_,

src/core/interfaces/IViews.sol

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
// SPDX-License-Identifier: GPL-3.0
2+
pragma solidity 0.8.29;
3+
4+
interface IViews {
5+
function delegations(
6+
address account,
7+
address receiver
8+
) external view returns (uint32);
9+
function totalDelegatedPercentage(
10+
address delegator
11+
) external view returns (uint32);
12+
function registeredBApps(
13+
address bApp
14+
) external view returns (bool isRegistered);
15+
function strategies(
16+
uint32 strategyId
17+
) external view returns (address strategyOwner, uint32 fee);
18+
function ownedStrategies(
19+
address owner
20+
) external view returns (uint32[] memory strategyIds);
21+
function strategyAccountShares(
22+
uint32 strategyId,
23+
address account,
24+
address token
25+
) external view returns (uint256);
26+
function strategyTotalBalance(
27+
uint32 strategyId,
28+
address token
29+
) external view returns (uint256);
30+
function strategyTotalShares(
31+
uint32 strategyId,
32+
address token
33+
) external view returns (uint256);
34+
function strategyGeneration(
35+
uint32 strategyId,
36+
address token
37+
) external view returns (uint256);
38+
function obligations(
39+
uint32 strategyId,
40+
address bApp,
41+
address token
42+
) external view returns (uint32 percentage, bool isSet);
43+
function bAppTokens(
44+
address bApp,
45+
address token
46+
)
47+
external
48+
view
49+
returns (
50+
uint32 currentValue,
51+
bool isSet,
52+
uint32 pendingValue,
53+
uint32 effectTime
54+
);
55+
function accountBAppStrategy(
56+
address account,
57+
address bApp
58+
) external view returns (uint32);
59+
function feeUpdateRequests(
60+
uint32 strategyId
61+
) external view returns (uint32 percentage, uint32 requestTime);
62+
function withdrawalRequests(
63+
uint32 strategyId,
64+
address account,
65+
address token
66+
) external view returns (uint256 shares, uint32 requestTime);
67+
function obligationRequests(
68+
uint32 strategyId,
69+
address token,
70+
address bApp
71+
) external view returns (uint32 percentage, uint32 requestTime);
72+
function slashingFund(
73+
address account,
74+
address token
75+
) external view returns (uint256);
76+
77+
// External Protocol Views
78+
function maxPercentage() external pure returns (uint32);
79+
function ethAddress() external pure returns (address);
80+
function maxShares() external view returns (uint256);
81+
function maxFeeIncrement() external view returns (uint32);
82+
function feeTimelockPeriod() external view returns (uint32);
83+
function feeExpireTime() external view returns (uint32);
84+
function withdrawalTimelockPeriod() external view returns (uint32);
85+
function withdrawalExpireTime() external view returns (uint32);
86+
function obligationTimelockPeriod() external view returns (uint32);
87+
function obligationExpireTime() external view returns (uint32);
88+
function disabledFeatures() external view returns (uint32);
89+
function tokenUpdateTimelockPeriod() external view returns (uint32);
90+
function getVersion() external pure returns (string memory);
91+
}

0 commit comments

Comments
 (0)