Skip to content

Commit 3d84c2d

Browse files
committed
feat: add weight boost providers
1 parent 846d4a5 commit 3d84c2d

13 files changed

Lines changed: 956 additions & 39 deletions

script/curated/DeployBase.s.sol

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ import { BaseOracle } from "../../src/lib/base-oracle/BaseOracle.sol";
2727
import { IVerifier } from "../../src/interfaces/IVerifier.sol";
2828
import { IParametersRegistry } from "../../src/interfaces/IParametersRegistry.sol";
2929
import { IBondCurve } from "../../src/interfaces/IBondCurve.sol";
30+
import { IMetaRegistry } from "../../src/interfaces/IMetaRegistry.sol";
31+
import { IWeightBoostProvider } from "../../src/interfaces/IWeightBoostProvider.sol";
3032

3133
import { JsonObj, Json } from "../utils/Json.sol";
3234
import { Dummy } from "../utils/Dummy.sol";
@@ -348,6 +350,10 @@ abstract contract DeployBase is Script {
348350

349351
accounting.grantRole(accounting.MANAGE_BOND_CURVES_ROLE(), address(deployer));
350352
accounting.grantRole(accounting.SET_BOND_CURVE_MULTIPLIER_ROLE(), address(additionalBondRegistry));
353+
metaRegistry.addWeightBoostProvider(
354+
IWeightBoostProvider(address(additionalBondRegistry)),
355+
IMetaRegistry.WeightBoostProviderMode.NodeOperator
356+
);
351357
metaRegistry.grantRole(metaRegistry.SET_BOND_CURVE_WEIGHT_ROLE(), deployer);
352358

353359
for (uint256 i = 0; i < gatesCount; i++) {

src/Accounting.sol

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import { PausableWithRoles } from "./abstract/PausableWithRoles.sol";
1515

1616
import { AssetRecovererLib } from "./lib/AssetRecovererLib.sol";
1717

18-
import { IStakingModule } from "./interfaces/IStakingModule.sol";
1918
import { IBaseModule, NodeOperatorManagementProperties } from "./interfaces/IBaseModule.sol";
2019
import { IAccounting } from "./interfaces/IAccounting.sol";
2120
import { IFeeDistributor } from "./interfaces/IFeeDistributor.sol";
@@ -614,7 +613,7 @@ contract Accounting is
614613
}
615614

616615
function _onlyExistingNodeOperator(uint256 nodeOperatorId) internal view {
617-
if (nodeOperatorId < IStakingModule(address(MODULE)).getNodeOperatorsCount()) return;
616+
if (nodeOperatorId < MODULE.getNodeOperatorsCount()) return;
618617

619618
revert NodeOperatorDoesNotExist();
620619
}

src/AdditionalBondRegistry.sol

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import { IAccounting } from "./interfaces/IAccounting.sol";
1010
import { ICuratedModule } from "./interfaces/ICuratedModule.sol";
1111
import { IMetaRegistry } from "./interfaces/IMetaRegistry.sol";
1212
import { IAdditionalBondRegistry, TierInfo, OperatorTierState } from "./interfaces/IAdditionalBondRegistry.sol";
13+
import { IWeightBoostProvider } from "./interfaces/IWeightBoostProvider.sol";
1314
import { MAX_BP } from "./lib/Constants.sol";
1415

1516
/// @notice Manages operator tiers.
@@ -96,7 +97,7 @@ contract AdditionalBondRegistry is IAdditionalBondRegistry, Initializable, Acces
9697
$.operatorTier[nodeOperatorId] = tierId;
9798
emit TierSelected(nodeOperatorId, tierId);
9899

99-
META_REGISTRY.refreshOperatorWeight(nodeOperatorId);
100+
META_REGISTRY.notifyWeightBoostChanged(nodeOperatorId);
100101
}
101102

102103
/// @inheritdoc IAdditionalBondRegistry
@@ -127,6 +128,12 @@ contract AdditionalBondRegistry is IAdditionalBondRegistry, Initializable, Acces
127128
state.curveMultiplier = ACCOUNTING.getBondCurveMultiplier(nodeOperatorId);
128129
}
129130

131+
/// @inheritdoc IWeightBoostProvider
132+
function getWeightBoostMultiplierBP(uint256 nodeOperatorId) external view returns (uint256 multiplierBP) {
133+
AdditionalBondRegistryStorage storage $ = _storage();
134+
multiplierBP = MAX_BP + $.tiers[$.operatorTier[nodeOperatorId]].weightMultiplier;
135+
}
136+
130137
/// @inheritdoc IAdditionalBondRegistry
131138
function getTierInfo(uint256 tierId) public view returns (TierInfo memory) {
132139
AdditionalBondRegistryStorage storage $ = _storage();

0 commit comments

Comments
 (0)