Skip to content

Commit

Permalink
Adds getActiveOperators to the public interface of the Node Operator …
Browse files Browse the repository at this point in the history
…Facet (#78)
  • Loading branch information
pfives authored May 28, 2024
1 parent e36bbfe commit be2e012
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ contract DeployRewardsDistribution is Deployer, FacetHelper {
addSelector(RewardsDistribution.getPeriodDistributionAmount.selector);
addSelector(RewardsDistribution.setActivePeriodLength.selector);
addSelector(RewardsDistribution.getActivePeriodLength.selector);
addSelector(RewardsDistribution.getActiveOperators.selector);
}

function initializer() public pure override returns (bytes4) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,6 @@ interface IRewardsDistribution is IRewardsDistributionBase {
function setActivePeriodLength(uint256 length) external;

function getActivePeriodLength() external view returns (uint256);

function getActiveOperators() external view returns (address[] memory);
}
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,10 @@ contract RewardsDistribution is
return RewardsDistributionStorage.layout().activePeriodLength;
}

function getActiveOperators() public view returns (address[] memory) {
return _getActiveOperators();
}

// =============================================================
// Internal
// =============================================================
Expand Down
34 changes: 34 additions & 0 deletions contracts/test/base/registry/RewardsDistribution.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ import {MainnetDelegation} from "contracts/src/tokens/river/base/delegation/Main
import {RewardsDistribution} from "contracts/src/base/registry/facets/distribution/RewardsDistribution.sol";
import {SpaceDelegationFacet} from "contracts/src/base/registry/facets/delegation/SpaceDelegationFacet.sol";
import {INodeOperatorBase} from "contracts/src/base/registry/facets/operator/INodeOperator.sol";
import {console} from "forge-std/console.sol";

contract RewardsDistributionTest is
BaseSetup,
Expand Down Expand Up @@ -114,6 +115,39 @@ contract RewardsDistributionTest is
// Tests
// =============================================================

function test_getActiveOperators() public {
_createEntitiesForTest(
exAmountsPerUser,
exCommissionsPerOperator,
exDelegationsPerUser
);

setupOperators(tOperators);
setupDistributionInformation(exDistributionAmount, exActivePeriodLength);

assertEq(
rewardsDistributionFacet.getActiveOperators().length,
tOperators.length,
"Active Operators length does not match expected length"
);
for (
uint256 i = 0;
i < rewardsDistributionFacet.getActiveOperators().length;
i++
) {
bool found = false;
for (uint256 j = 0; j < tOperators.length; j++) {
if (
rewardsDistributionFacet.getActiveOperators()[i] == tOperators[j].addr
) {
found = true;
break;
}
}
assertEq(found, true, "Operator not found in active operators");
}
}

//specific test case of users delegating to operators
function test_exUserRewards() public {
_createEntitiesForTest(
Expand Down

0 comments on commit be2e012

Please sign in to comment.