Skip to content

Commit 221b4fe

Browse files
committed
chore: bump core dependency and resolve issues
1 parent eea938a commit 221b4fe

18 files changed

+184
-153
lines changed

script/OperatorSetUpgrade.s.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ contract OperatorSetUpgradeScript is Script {
145145
function _upgradeAvsDirectory() internal {
146146
address proxyAdmin = OperatorSetUpgradeLib.getAdmin(avsDirectory);
147147
address avsDirectoryOwner = Ownable(proxyAdmin).owner();
148-
AVSDirectory avsDirectoryImpl = new AVSDirectory(IDelegationManager(delegationManager));
148+
AVSDirectory avsDirectoryImpl = new AVSDirectory(IDelegationManager(delegationManager), 0); // TODO: config
149149

150150
vm.startPrank(avsDirectoryOwner);
151151
OperatorSetUpgradeLib.upgrade(avsDirectory, address(avsDirectoryImpl));

src/StakeRegistry.sol

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -491,7 +491,8 @@ contract StakeRegistry is StakeRegistryStorage {
491491
uint256 stratsLength = strategyParamsLength(quorumNumber);
492492
StrategyParams memory strategyAndMultiplier;
493493

494-
uint256[] memory strategyShares = delegation.getDelegatableShares(operator, strategiesPerQuorum[quorumNumber]);
494+
uint256[] memory strategyShares;
495+
// = delegation.getDelegatableShares(operator, strategiesPerQuorum[quorumNumber]);
495496
for (uint256 i = 0; i < stratsLength; i++) {
496497
// accessing i^th StrategyParams struct for the quorumNumber
497498
strategyAndMultiplier = strategyParams[quorumNumber][i];

src/libraries/SignatureCheckerLib.sol

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
// SPDX-License-Identifier: BUSL-1.1
22
pragma solidity ^0.8.12;
33

4-
import {EIP1271SignatureUtils} from
5-
"eigenlayer-contracts/src/contracts/libraries/EIP1271SignatureUtils.sol";
4+
import "@openzeppelin-upgrades/contracts/utils/cryptography/SignatureCheckerUpgradeable.sol";
65

76
/**
87
* @title SignatureCheckerLib
@@ -11,6 +10,8 @@ import {EIP1271SignatureUtils} from
1110
* validation logic to this external library.
1211
*/
1312
library SignatureCheckerLib {
13+
error InvalidSignature();
14+
1415
/**
1516
* @notice Validates a signature using EIP-1271 standard.
1617
* @param signer The address of the signer.
@@ -22,6 +23,8 @@ library SignatureCheckerLib {
2223
bytes32 digestHash,
2324
bytes memory signature
2425
) external view {
25-
EIP1271SignatureUtils.checkSignature_EIP1271(signer, digestHash, signature);
26+
if (!SignatureCheckerUpgradeable.isValidSignatureNow(signer, digestHash, signature)) {
27+
revert InvalidSignature();
28+
}
2629
}
2730
}

test/harnesses/AVSDirectoryHarness.sol

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {AVSDirectory} from "eigenlayer-contracts/src/contracts/core/AVSDirectory
77

88
// wrapper around the AVSDirectory contract that exposes internal functionality, for unit testing
99
contract AVSDirectoryHarness is AVSDirectory {
10-
constructor(IDelegationManager _delegation) AVSDirectory(_delegation) {}
10+
constructor(IDelegationManager _delegation) AVSDirectory(_delegation, 0) {} // TODO: config update
1111

1212
function setOperatorSaltIsSpent(address operator, bytes32 salt, bool isSpent) external {
1313
operatorSaltIsSpent[operator][salt] = isSpent;
@@ -59,7 +59,7 @@ contract AVSDirectoryHarness is AVSDirectory {
5959
}
6060

6161
function _calculateDigestHashExternal(bytes32 structHash) external view returns (bytes32) {
62-
return _calculateDigestHash(structHash);
62+
// return calculateOperatorSetRegistrationDigestHash(structHash); // TODO: Fix
6363
}
6464

6565
function _calculateDomainSeparatorExternal() external view returns (bytes32) {

test/integration/CoreRegistration.t.sol

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@ pragma solidity ^0.8.12;
33

44
import "../utils/MockAVSDeployer.sol";
55
import { AVSDirectory } from "eigenlayer-contracts/src/contracts/core/AVSDirectory.sol";
6-
import { IAVSDirectory } from "eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol";
6+
import { IAVSDirectory, IAVSDirectoryTypes} from "eigenlayer-contracts/src/contracts/interfaces/IAVSDirectory.sol";
7+
import { IStrategyManager } from "eigenlayer-contracts/src/contracts/interfaces/IStrategyManager.sol";
78
import { DelegationManager } from "eigenlayer-contracts/src/contracts/core/DelegationManager.sol";
8-
import { IDelegationManager } from "eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol";
9+
import { IDelegationManager, IDelegationManagerTypes } from "eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol";
910
import { RewardsCoordinator } from "eigenlayer-contracts/src/contracts/core/RewardsCoordinator.sol";
1011
import { IRewardsCoordinator } from "eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol";
1112

@@ -26,7 +27,7 @@ contract Test_CoreRegistration is MockAVSDeployer {
2627
_deployMockEigenLayerAndAVS();
2728

2829
// Deploy New DelegationManager
29-
DelegationManager delegationManagerImplementation = new DelegationManager(strategyManagerMock, slasher, eigenPodManagerMock, avsDirectoryMock, allocationManagerMock, 0); // TODO: Fix
30+
DelegationManager delegationManagerImplementation = new DelegationManager(avsDirectoryMock, IStrategyManager(address(strategyManagerMock)), eigenPodManagerMock, allocationManagerMock, 0);
3031
IStrategy[] memory initializeStrategiesToSetDelayBlocks = new IStrategy[](0);
3132
uint256[] memory initializeWithdrawalDelayBlocks = new uint256[](0);
3233
delegationManager = DelegationManager(
@@ -48,7 +49,7 @@ contract Test_CoreRegistration is MockAVSDeployer {
4849
);
4950

5051
// Deploy New AVS Directory
51-
AVSDirectory avsDirectoryImplementation = new AVSDirectory(delegationManager);
52+
AVSDirectory avsDirectoryImplementation = new AVSDirectory(delegationManager, 0); // TODO: Fix Config
5253
avsDirectory = AVSDirectory(
5354
address(
5455
new TransparentUpgradeableProxy(
@@ -102,7 +103,7 @@ contract Test_CoreRegistration is MockAVSDeployer {
102103
// Register operator to EigenLayer
103104
cheats.prank(operator);
104105
delegationManager.registerAsOperator(
105-
IDelegationManager.OperatorDetails({
106+
IDelegationManagerTypes.OperatorDetails({
106107
__deprecated_earningsReceiver: operator,
107108
delegationApprover: address(0),
108109
stakerOptOutWindowBlocks: 0
@@ -139,8 +140,8 @@ contract Test_CoreRegistration is MockAVSDeployer {
139140
registryCoordinator.registerOperator(quorumNumbers, defaultSocket, pubkeyRegistrationParams, operatorSignature);
140141

141142
// Check operator is registered
142-
IAVSDirectory.OperatorAVSRegistrationStatus operatorStatus = avsDirectory.avsOperatorStatus(address(serviceManager), operator);
143-
assertEq(uint8(operatorStatus), uint8(IAVSDirectory.OperatorAVSRegistrationStatus.REGISTERED));
143+
IAVSDirectoryTypes.OperatorAVSRegistrationStatus operatorStatus = avsDirectory.avsOperatorStatus(address(serviceManager), operator);
144+
assertEq(uint8(operatorStatus), uint8(IAVSDirectoryTypes.OperatorAVSRegistrationStatus.REGISTERED));
144145
}
145146

146147
function test_deregisterOperator_coreStateChanges() public {
@@ -153,8 +154,8 @@ contract Test_CoreRegistration is MockAVSDeployer {
153154
registryCoordinator.deregisterOperator(quorumNumbers);
154155

155156
// Check operator is deregistered
156-
IAVSDirectory.OperatorAVSRegistrationStatus operatorStatus = avsDirectory.avsOperatorStatus(address(serviceManager), operator);
157-
assertEq(uint8(operatorStatus), uint8(IAVSDirectory.OperatorAVSRegistrationStatus.UNREGISTERED));
157+
IAVSDirectoryTypes.OperatorAVSRegistrationStatus operatorStatus = avsDirectory.avsOperatorStatus(address(serviceManager), operator);
158+
assertEq(uint8(operatorStatus), uint8(IAVSDirectoryTypes.OperatorAVSRegistrationStatus.UNREGISTERED));
158159
}
159160

160161
function test_deregisterOperator_notGloballyDeregistered() public {
@@ -169,8 +170,8 @@ contract Test_CoreRegistration is MockAVSDeployer {
169170
registryCoordinator.deregisterOperator(quorumNumbers);
170171

171172
// Check operator is still registered
172-
IAVSDirectory.OperatorAVSRegistrationStatus operatorStatus = avsDirectory.avsOperatorStatus(address(serviceManager), operator);
173-
assertEq(uint8(operatorStatus), uint8(IAVSDirectory.OperatorAVSRegistrationStatus.REGISTERED));
173+
IAVSDirectoryTypes.OperatorAVSRegistrationStatus operatorStatus = avsDirectory.avsOperatorStatus(address(serviceManager), operator);
174+
assertEq(uint8(operatorStatus), uint8(IAVSDirectoryTypes.OperatorAVSRegistrationStatus.REGISTERED));
174175
}
175176

176177
function test_setMetadataURI_fail_notServiceManagerOwner() public {

test/integration/IntegrationBase.t.sol

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -166,15 +166,15 @@ abstract contract IntegrationBase is IntegrationConfig {
166166
/// AVSDirectory:
167167

168168
function assert_NotRegisteredToAVS(User operator, string memory err) internal {
169-
IAVSDirectory.OperatorAVSRegistrationStatus status = avsDirectory.avsOperatorStatus(address(serviceManager), address(operator));
169+
IAVSDirectoryTypes.OperatorAVSRegistrationStatus status = avsDirectory.avsOperatorStatus(address(serviceManager), address(operator));
170170

171-
assertTrue(status == IAVSDirectory.OperatorAVSRegistrationStatus.UNREGISTERED, err);
171+
assertTrue(status == IAVSDirectoryTypes.OperatorAVSRegistrationStatus.UNREGISTERED, err);
172172
}
173173

174174
function assert_IsRegisteredToAVS(User operator, string memory err) internal {
175175
IAVSDirectory.OperatorAVSRegistrationStatus status = avsDirectory.avsOperatorStatus(address(serviceManager), address(operator));
176176

177-
assertTrue(status == IAVSDirectory.OperatorAVSRegistrationStatus.REGISTERED, err);
177+
assertTrue(status == IAVSDirectoryTypes.OperatorAVSRegistrationStatus.REGISTERED, err);
178178
}
179179

180180
/*******************************************************************************
@@ -591,7 +591,7 @@ abstract contract IntegrationBase is IntegrationConfig {
591591
function assert_Snap_Removed_OperatorShares(
592592
User operator,
593593
IStrategy[] memory strategies,
594-
OwnedShares[] memory removedShares,
594+
uint256[] memory removedShares,
595595
string memory err
596596
) internal {
597597
uint[] memory curShares = _getOperatorShares(operator, strategies);
@@ -600,7 +600,7 @@ abstract contract IntegrationBase is IntegrationConfig {
600600

601601
// For each strategy, check (prev - removed == cur)
602602
for (uint i = 0; i < strategies.length; i++) {
603-
assertEq(prevShares[i] - removedShares[i].unwrap(), curShares[i], err);
603+
assertEq(prevShares[i] - removedShares[i], curShares[i], err);
604604
}
605605
}
606606

@@ -773,7 +773,7 @@ abstract contract IntegrationBase is IntegrationConfig {
773773
for (uint i = 0; i < strategies.length; i++) {
774774
IStrategy strat = strategies[i];
775775

776-
curShares[i] = strategyManager.stakerStrategyShares(address(staker), strat).unwrap();
776+
curShares[i] = strategyManager.stakerDepositShares(address(staker), strat);
777777
}
778778

779779
return curShares;

test/integration/IntegrationChecks.t.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ contract IntegrationChecks is IntegrationBase {
245245
User operator,
246246
bytes memory quorums,
247247
IStrategy[] memory strategies,
248-
OwnedShares[] memory shares
248+
uint256[] memory shares
249249
) internal {
250250
_log("check_Withdraw_State", operator);
251251

test/integration/IntegrationDeployer.t.sol

Lines changed: 4 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import "@openzeppelin/contracts/utils/Strings.sol";
1414
// Core contracts
1515
import "eigenlayer-contracts/src/contracts/core/DelegationManager.sol";
1616
import "eigenlayer-contracts/src/contracts/core/StrategyManager.sol";
17-
import "eigenlayer-contracts/src/contracts/core/Slasher.sol";
1817
import "eigenlayer-contracts/src/contracts/core/AVSDirectory.sol";
1918
import "eigenlayer-contracts/src/contracts/core/RewardsCoordinator.sol";
2019
import "eigenlayer-contracts/src/contracts/core/AllocationManager.sol";
@@ -52,7 +51,6 @@ abstract contract IntegrationDeployer is Test, IUserDeployer {
5251
EigenPodManager eigenPodManager;
5352
RewardsCoordinator rewardsCoordinator;
5453
PauserRegistry pauserRegistry;
55-
Slasher slasher;
5654
IBeacon eigenPodBeacon;
5755
EigenPod pod;
5856
ETHPOSDepositMock ethPOSDeposit;
@@ -133,11 +131,6 @@ abstract contract IntegrationDeployer is Test, IUserDeployer {
133131
new TransparentUpgradeableProxy(address(emptyContract), address(proxyAdmin), "")
134132
)
135133
);
136-
slasher = Slasher(
137-
address(
138-
new TransparentUpgradeableProxy(address(emptyContract), address(proxyAdmin), "")
139-
)
140-
);
141134
eigenPodManager = EigenPodManager(
142135
address(
143136
new TransparentUpgradeableProxy(address(emptyContract), address(proxyAdmin), "")
@@ -169,14 +162,13 @@ abstract contract IntegrationDeployer is Test, IUserDeployer {
169162

170163
// Second, deploy the *implementation* contracts, using the *proxy contracts* as inputs
171164
DelegationManager delegationImplementation =
172-
new DelegationManager(strategyManager, slasher, eigenPodManager, avsDirectory, allocationManager, 0);
165+
new DelegationManager(avsDirectory, strategyManager, eigenPodManager, allocationManager, 0);
173166
StrategyManager strategyManagerImplementation =
174-
new StrategyManager(delegationManager, eigenPodManager, slasher, avsDirectory);
175-
Slasher slasherImplementation = new Slasher(strategyManager, delegationManager);
167+
new StrategyManager(delegationManager, eigenPodManager, avsDirectory);
176168
EigenPodManager eigenPodManagerImplementation = new EigenPodManager(
177-
ethPOSDeposit, eigenPodBeacon, strategyManager, slasher, delegationManager
169+
ethPOSDeposit, eigenPodBeacon, strategyManager, delegationManager
178170
);
179-
AVSDirectory avsDirectoryImplemntation = new AVSDirectory(delegationManager);
171+
AVSDirectory avsDirectoryImplemntation = new AVSDirectory(delegationManager, 0); // TODO: fix config
180172
// RewardsCoordinator rewardsCoordinatorImplementation = new RewardsCoordinator(
181173
// delegationManager,
182174
// IStrategyManager(address(strategyManager)),
@@ -216,17 +208,6 @@ abstract contract IntegrationDeployer is Test, IUserDeployer {
216208
0 // initialPausedStatus
217209
)
218210
);
219-
// Slasher
220-
proxyAdmin.upgradeAndCall(
221-
TransparentUpgradeableProxy(payable(address(slasher))),
222-
address(slasherImplementation),
223-
abi.encodeWithSelector(
224-
Slasher.initialize.selector,
225-
eigenLayerReputedMultisig,
226-
pauserRegistry,
227-
0 // initialPausedStatus
228-
)
229-
);
230211
// EigenPodManager
231212
proxyAdmin.upgradeAndCall(
232213
TransparentUpgradeableProxy(payable(address(eigenPodManager))),

test/integration/User.t.sol

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import "eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol";
1111

1212
// Core
1313
import "eigenlayer-contracts/src/contracts/core/DelegationManager.sol";
14+
import "eigenlayer-contracts/src/contracts/interfaces/IDelegationManager.sol";
1415
import "eigenlayer-contracts/src/contracts/core/StrategyManager.sol";
1516
import "eigenlayer-contracts/src/contracts/core/AVSDirectory.sol";
1617

@@ -243,7 +244,7 @@ contract User is Test {
243244
function registerAsOperator() public createSnapshot virtual {
244245
_log("registerAsOperator (core)");
245246

246-
IDelegationManager.OperatorDetails memory details = IDelegationManager.OperatorDetails({
247+
IDelegationManagerTypes.OperatorDetails memory details = IDelegationManagerTypes.OperatorDetails({
247248
__deprecated_earningsReceiver: address(this),
248249
delegationApprover: address(0),
249250
stakerOptOutWindowBlocks: 0
@@ -266,15 +267,17 @@ contract User is Test {
266267
}
267268
}
268269

269-
function exitEigenlayer() public createSnapshot virtual returns (IStrategy[] memory, OwnedShares[] memory) {
270+
function exitEigenlayer() public createSnapshot virtual returns (IStrategy[] memory, uint256[] memory) {
270271
_log("exitEigenlayer (core)");
271272

272-
(IStrategy[] memory strategies, OwnedShares[] memory shares) = delegationManager.getDelegatableShares(address(this));
273+
IStrategy[] memory strategies;
274+
uint256[] memory shares;
275+
// = delegationManager.getDelegatableShares(address(this)); // TODO: Fix
273276

274-
IDelegationManager.QueuedWithdrawalParams[] memory params = new IDelegationManager.QueuedWithdrawalParams[](1);
275-
params[0] = IDelegationManager.QueuedWithdrawalParams({
277+
IDelegationManagerTypes.QueuedWithdrawalParams[] memory params = new IDelegationManager.QueuedWithdrawalParams[](1);
278+
params[0] = IDelegationManagerTypes.QueuedWithdrawalParams({
276279
strategies: strategies,
277-
ownedShares: shares,
280+
shares: shares,
278281
withdrawer: address(this)
279282
});
280283

test/integration/tests/NonFull_Register_CoreBalanceChange_Update.t.sol

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ contract Integration_NonFull_Register_CoreBalanceChange_Update is IntegrationChe
118118
check_Register_State(operator, quorums);
119119

120120
// 2. (core) queue full withdrawal
121-
(IStrategy[] memory strategies, OwnedShares[] memory shares) = operator.exitEigenlayer();
121+
(IStrategy[] memory strategies, uint256[] memory shares) = operator.exitEigenlayer();
122122
check_Withdraw_State(operator, quorums, strategies, shares);
123123

124124
// 3. Update stakes
@@ -151,7 +151,7 @@ contract Integration_NonFull_Register_CoreBalanceChange_Update is IntegrationChe
151151
check_Register_State(operator, quorums);
152152

153153
// 2. (core) queue full withdrawal
154-
(IStrategy[] memory strategies, OwnedShares[] memory shares) = operator.exitEigenlayer();
154+
(IStrategy[] memory strategies, uint256[] memory shares) = operator.exitEigenlayer();
155155
check_Withdraw_State(operator, quorums, strategies, shares);
156156

157157
// 3. Deregister from all quorums

0 commit comments

Comments
 (0)