Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 2 additions & 7 deletions src/core/SSVBasedApps.sol
Original file line number Diff line number Diff line change
Expand Up @@ -59,10 +59,7 @@ import { ProtocolStorageLib } from "@ssv/src/core/libraries/ProtocolStorageLib.s
contract SSVBasedApps is
ISSVBasedApps,
UUPSUpgradeable,
Ownable2StepUpgradeable,
IBasedAppManager,
IStrategyManager,
IProtocolManager
Ownable2StepUpgradeable
{
// ***************************
// ** Section: Initializers **
Expand Down Expand Up @@ -343,9 +340,7 @@ contract SSVBasedApps is
_delegateTo(SSVCoreModules.SSV_PROTOCOL_MANAGER);
}

function updateDisabledFeatures(
uint32 disabledFeatures
) external onlyOwner {
function updateDisabledFeatures(uint32 value) external onlyOwner {
_delegateTo(SSVCoreModules.SSV_PROTOCOL_MANAGER);
}

Expand Down
9 changes: 7 additions & 2 deletions src/core/interfaces/ISSVBasedApps.sol
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,21 @@ pragma solidity 0.8.29;
import { IStrategyManager } from "@ssv/src/core/interfaces/IStrategyManager.sol";
import { IBasedAppManager } from "@ssv/src/core/interfaces/IBasedAppManager.sol";
import { IProtocolManager } from "@ssv/src/core/interfaces/IProtocolManager.sol";
import { IViews } from "@ssv/src/core/interfaces/IViews.sol";
import { SSVCoreModules } from "@ssv/src/core/libraries/CoreStorageLib.sol";
import { ProtocolStorageLib } from "@ssv/src/core/libraries/ProtocolStorageLib.sol";

interface ISSVBasedApps {
interface ISSVBasedApps is
IStrategyManager,
IBasedAppManager,
IProtocolManager,
IViews
{
event ModuleUpdated(SSVCoreModules indexed moduleId, address moduleAddress);

function getModuleAddress(
SSVCoreModules moduleId
) external view returns (address);
function getVersion() external pure returns (string memory version);
function initialize(
address owner_,
IBasedAppManager ssvBasedAppManger_,
Expand Down
91 changes: 91 additions & 0 deletions src/core/interfaces/IViews.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
// SPDX-License-Identifier: GPL-3.0
pragma solidity 0.8.29;

interface IViews {
function delegations(
address account,
address receiver
) external view returns (uint32);
function totalDelegatedPercentage(
address delegator
) external view returns (uint32);
function registeredBApps(
address bApp
) external view returns (bool isRegistered);
function strategies(
uint32 strategyId
) external view returns (address strategyOwner, uint32 fee);
function ownedStrategies(
address owner
) external view returns (uint32[] memory strategyIds);
function strategyAccountShares(
uint32 strategyId,
address account,
address token
) external view returns (uint256);
function strategyTotalBalance(
uint32 strategyId,
address token
) external view returns (uint256);
function strategyTotalShares(
uint32 strategyId,
address token
) external view returns (uint256);
function strategyGeneration(
uint32 strategyId,
address token
) external view returns (uint256);
function obligations(
uint32 strategyId,
address bApp,
address token
) external view returns (uint32 percentage, bool isSet);
function bAppTokens(
address bApp,
address token
)
external
view
returns (
uint32 currentValue,
bool isSet,
uint32 pendingValue,
uint32 effectTime
);
function accountBAppStrategy(
address account,
address bApp
) external view returns (uint32);
function feeUpdateRequests(
uint32 strategyId
) external view returns (uint32 percentage, uint32 requestTime);
function withdrawalRequests(
uint32 strategyId,
address account,
address token
) external view returns (uint256 shares, uint32 requestTime);
function obligationRequests(
uint32 strategyId,
address token,
address bApp
) external view returns (uint32 percentage, uint32 requestTime);
function slashingFund(
address account,
address token
) external view returns (uint256);

// External Protocol Views
function maxPercentage() external pure returns (uint32);
function ethAddress() external pure returns (address);
function maxShares() external view returns (uint256);
function maxFeeIncrement() external view returns (uint32);
function feeTimelockPeriod() external view returns (uint32);
function feeExpireTime() external view returns (uint32);
function withdrawalTimelockPeriod() external view returns (uint32);
function withdrawalExpireTime() external view returns (uint32);
function obligationTimelockPeriod() external view returns (uint32);
function obligationExpireTime() external view returns (uint32);
function disabledFeatures() external view returns (uint32);
function tokenUpdateTimelockPeriod() external view returns (uint32);
function getVersion() external pure returns (string memory);
}
2 changes: 1 addition & 1 deletion test/modules/ProtocolManager.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,7 @@ contract ProtocolManagerTest is Setup, Ownable2StepUpgradeable {
}

/// @notice By default, no features should be disabled
function testDefaultDisabledFeaturesIsZero() public {
function testDefaultDisabledFeaturesIsZero() public view {
assertEq(
proxiedManager.disabledFeatures(),
0,
Expand Down