diff --git a/lib/core b/lib/core index bdbb05e..feb15ec 160000 --- a/lib/core +++ b/lib/core @@ -1 +1 @@ -Subproject commit bdbb05ebd9ea6d96c671b672562ae23afcb2123b +Subproject commit feb15ec0b55e30b56b9595a8b9d8f179f173bb76 diff --git a/package.json b/package.json index 233c214..17dab9b 100644 --- a/package.json +++ b/package.json @@ -23,8 +23,8 @@ "security" ], "dependencies": { - "@openzeppelin/contracts": "5.0.2", - "@openzeppelin/contracts-upgradeable": "5.0.2", - "@symbioticfi/core": "1.0.0-devnet.5" + "@openzeppelin/contracts": "5.1.0", + "@openzeppelin/contracts-upgradeable": "5.1.0", + "@symbioticfi/core": "1.0.0-devnet.9" } } diff --git a/src/contracts/fullRestakeDelegator/FullRestakeResetHook.sol b/src/contracts/fullRestakeDelegator/FullRestakeResetHook.sol index f93f044..7072874 100644 --- a/src/contracts/fullRestakeDelegator/FullRestakeResetHook.sol +++ b/src/contracts/fullRestakeDelegator/FullRestakeResetHook.sol @@ -24,8 +24,10 @@ contract FullRestakeResetHook is IFullRestakeResetHook { */ uint256 public immutable SLASH_COUNT; - mapping(address vault => mapping(address operator => CircularBuffer.Bytes32CircularBuffer buffer)) private - _slashings; + mapping( + address vault + => mapping(bytes32 subnetwork => mapping(address operator => CircularBuffer.Bytes32CircularBuffer buffer)) + ) private _slashings; constructor(uint48 period, uint256 slashCount) { if (slashCount == 0) { @@ -56,19 +58,19 @@ contract FullRestakeResetHook is IFullRestakeResetHook { revert NotVaultDelegator(); } - if (_slashings[vault][operator].count() == 0) { - _slashings[vault][operator].setup(SLASH_COUNT); + if (_slashings[vault][subnetwork][operator].count() == 0) { + _slashings[vault][subnetwork][operator].setup(SLASH_COUNT); } if (IFullRestakeDelegator(msg.sender).operatorNetworkLimit(subnetwork, operator) == 0) { return; } - _slashings[vault][operator].push(bytes32(uint256(Time.timestamp()))); + _slashings[vault][subnetwork][operator].push(bytes32(uint256(Time.timestamp()))); if ( - _slashings[vault][operator].count() == SLASH_COUNT - && Time.timestamp() - uint256(_slashings[vault][operator].last(SLASH_COUNT - 1)) <= PERIOD + _slashings[vault][subnetwork][operator].count() == SLASH_COUNT + && Time.timestamp() - uint256(_slashings[vault][subnetwork][operator].last(SLASH_COUNT - 1)) <= PERIOD ) { IFullRestakeDelegator(msg.sender).setOperatorNetworkLimit(subnetwork, operator, 0); } diff --git a/src/contracts/networkRestakeDelegator/NetworkRestakeResetHook.sol b/src/contracts/networkRestakeDelegator/NetworkRestakeResetHook.sol index dcd9d91..d78503f 100644 --- a/src/contracts/networkRestakeDelegator/NetworkRestakeResetHook.sol +++ b/src/contracts/networkRestakeDelegator/NetworkRestakeResetHook.sol @@ -24,8 +24,10 @@ contract NetworkRestakeResetHook is INetworkRestakeResetHook { */ uint256 public immutable SLASH_COUNT; - mapping(address vault => mapping(address operator => CircularBuffer.Bytes32CircularBuffer buffer)) private - _slashings; + mapping( + address vault + => mapping(bytes32 subnetwork => mapping(address operator => CircularBuffer.Bytes32CircularBuffer buffer)) + ) private _slashings; constructor(uint48 period, uint256 slashCount) { if (slashCount == 0) { @@ -56,19 +58,19 @@ contract NetworkRestakeResetHook is INetworkRestakeResetHook { revert NotVaultDelegator(); } - if (_slashings[vault][operator].count() == 0) { - _slashings[vault][operator].setup(SLASH_COUNT); + if (_slashings[vault][subnetwork][operator].count() == 0) { + _slashings[vault][subnetwork][operator].setup(SLASH_COUNT); } if (INetworkRestakeDelegator(msg.sender).operatorNetworkShares(subnetwork, operator) == 0) { return; } - _slashings[vault][operator].push(bytes32(uint256(Time.timestamp()))); + _slashings[vault][subnetwork][operator].push(bytes32(uint256(Time.timestamp()))); if ( - _slashings[vault][operator].count() == SLASH_COUNT - && Time.timestamp() - uint256(_slashings[vault][operator].last(SLASH_COUNT - 1)) <= PERIOD + _slashings[vault][subnetwork][operator].count() == SLASH_COUNT + && Time.timestamp() - uint256(_slashings[vault][subnetwork][operator].last(SLASH_COUNT - 1)) <= PERIOD ) { INetworkRestakeDelegator(msg.sender).setOperatorNetworkShares(subnetwork, operator, 0); } diff --git a/src/contracts/operatorSpecificDelegator/OperatorSpecificResetHook.sol b/src/contracts/operatorSpecificDelegator/OperatorSpecificResetHook.sol index 4174239..0835b11 100644 --- a/src/contracts/operatorSpecificDelegator/OperatorSpecificResetHook.sol +++ b/src/contracts/operatorSpecificDelegator/OperatorSpecificResetHook.sol @@ -24,7 +24,8 @@ contract OperatorSpecificResetHook is IOperatorSpecificResetHook { */ uint256 public immutable SLASH_COUNT; - mapping(address vault => CircularBuffer.Bytes32CircularBuffer buffer) private _slashings; + mapping(address vault => mapping(bytes32 subnetwork => CircularBuffer.Bytes32CircularBuffer buffer)) private + _slashings; constructor(uint48 period, uint256 slashCount) { if (slashCount == 0) { @@ -55,19 +56,19 @@ contract OperatorSpecificResetHook is IOperatorSpecificResetHook { revert NotVaultDelegator(); } - if (_slashings[vault].count() == 0) { - _slashings[vault].setup(SLASH_COUNT); + if (_slashings[vault][subnetwork].count() == 0) { + _slashings[vault][subnetwork].setup(SLASH_COUNT); } if (IOperatorSpecificDelegator(msg.sender).networkLimit(subnetwork) == 0) { return; } - _slashings[vault].push(bytes32(uint256(Time.timestamp()))); + _slashings[vault][subnetwork].push(bytes32(uint256(Time.timestamp()))); if ( - _slashings[vault].count() == SLASH_COUNT - && Time.timestamp() - uint256(_slashings[vault].last(SLASH_COUNT - 1)) <= PERIOD + _slashings[vault][subnetwork].count() == SLASH_COUNT + && Time.timestamp() - uint256(_slashings[vault][subnetwork].last(SLASH_COUNT - 1)) <= PERIOD ) { IOperatorSpecificDelegator(msg.sender).setNetworkLimit(subnetwork, 0); } diff --git a/test/fullRestakeDelegator/FullRestakeDecreaseHook.t.sol b/test/fullRestakeDelegator/FullRestakeDecreaseHook.t.sol index 65f4faa..b2b82dd 100644 --- a/test/fullRestakeDelegator/FullRestakeDecreaseHook.t.sol +++ b/test/fullRestakeDelegator/FullRestakeDecreaseHook.t.sol @@ -14,6 +14,7 @@ import {IVault} from "@symbioticfi/core/src/interfaces/vault/IVault.sol"; import {IVaultConfigurator} from "@symbioticfi/core/src/interfaces/IVaultConfigurator.sol"; import {Math} from "@openzeppelin/contracts/utils/math/Math.sol"; +import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol"; import {Subnetwork} from "@symbioticfi/core/src/contracts/libraries/Subnetwork.sol"; import {FullRestakeDecreaseHook} from "../../src/contracts/fullRestakeDelegator/FullRestakeDecreaseHook.sol"; @@ -28,6 +29,7 @@ contract FullRestakeDecreaseHookTest is POCBaseTest { Slasher public slasher0; function setUp() public override { + SYMBIOTIC_CORE_PROJECT_ROOT = "lib/core/"; super.setUp(); } @@ -54,8 +56,8 @@ contract FullRestakeDecreaseHookTest is POCBaseTest { vm.startPrank(alice); delegator2.setHook(hook); - delegator2.grantRole(delegator2.NETWORK_LIMIT_SET_ROLE(), hook); - delegator2.grantRole(delegator2.OPERATOR_NETWORK_LIMIT_SET_ROLE(), hook); + AccessControl(address(delegator2)).grantRole(delegator2.NETWORK_LIMIT_SET_ROLE(), hook); + AccessControl(address(delegator2)).grantRole(delegator2.OPERATOR_NETWORK_LIMIT_SET_ROLE(), hook); vm.stopPrank(); address network = alice; @@ -152,7 +154,7 @@ contract FullRestakeDecreaseHookTest is POCBaseTest { operatorNetworkLimitSetRoleHolders[0] = alice; (address vault_, address delegator_, address slasher_) = vaultConfigurator.create( IVaultConfigurator.InitParams({ - version: vaultFactory.lastVersion(), + version: 1, owner: alice, vaultParams: abi.encode( IVault.InitParams({ @@ -169,7 +171,7 @@ contract FullRestakeDecreaseHookTest is POCBaseTest { depositLimitSetRoleHolder: alice }) ), - delegatorIndex: 3, + delegatorIndex: delegatorFactory.totalTypes() - 1, delegatorParams: abi.encode( IFullRestakeDelegator.InitParams({ baseParams: IBaseDelegator.BaseParams({ @@ -191,8 +193,8 @@ contract FullRestakeDecreaseHookTest is POCBaseTest { vm.startPrank(alice); delegator0.setHook(hook); - delegator0.grantRole(delegator0.NETWORK_LIMIT_SET_ROLE(), hook); - delegator0.grantRole(delegator0.OPERATOR_NETWORK_LIMIT_SET_ROLE(), hook); + AccessControl(address(delegator0)).grantRole(delegator0.NETWORK_LIMIT_SET_ROLE(), hook); + AccessControl(address(delegator0)).grantRole(delegator0.OPERATOR_NETWORK_LIMIT_SET_ROLE(), hook); vm.stopPrank(); address network = alice; diff --git a/test/fullRestakeDelegator/FullRestakeResetHook.t.sol b/test/fullRestakeDelegator/FullRestakeResetHook.t.sol index 8e53ee6..59a5c93 100644 --- a/test/fullRestakeDelegator/FullRestakeResetHook.t.sol +++ b/test/fullRestakeDelegator/FullRestakeResetHook.t.sol @@ -14,6 +14,7 @@ import {IVault} from "@symbioticfi/core/src/interfaces/vault/IVault.sol"; import {IVaultConfigurator} from "@symbioticfi/core/src/interfaces/IVaultConfigurator.sol"; import {Math} from "@openzeppelin/contracts/utils/math/Math.sol"; +import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol"; import {Subnetwork} from "@symbioticfi/core/src/contracts/libraries/Subnetwork.sol"; import {FullRestakeResetHook} from "../../src/contracts/fullRestakeDelegator/FullRestakeResetHook.sol"; @@ -30,6 +31,7 @@ contract FullRestakeResetHookTest is POCBaseTest { Slasher public slasher0; function setUp() public override { + SYMBIOTIC_CORE_PROJECT_ROOT = "lib/core/"; super.setUp(); } @@ -48,7 +50,7 @@ contract FullRestakeResetHookTest is POCBaseTest { vm.startPrank(alice); delegator2.setHook(hook); - delegator2.grantRole(delegator2.OPERATOR_NETWORK_LIMIT_SET_ROLE(), hook); + AccessControl(address(delegator2)).grantRole(delegator2.OPERATOR_NETWORK_LIMIT_SET_ROLE(), hook); vm.stopPrank(); address network = alice; @@ -150,7 +152,7 @@ contract FullRestakeResetHookTest is POCBaseTest { operatorNetworkLimitSetRoleHolders[0] = alice; (address vault_, address delegator_, address slasher_) = vaultConfigurator.create( IVaultConfigurator.InitParams({ - version: vaultFactory.lastVersion(), + version: 1, owner: alice, vaultParams: abi.encode( IVault.InitParams({ @@ -167,7 +169,7 @@ contract FullRestakeResetHookTest is POCBaseTest { depositLimitSetRoleHolder: alice }) ), - delegatorIndex: 3, + delegatorIndex: delegatorFactory.totalTypes() - 1, delegatorParams: abi.encode( IFullRestakeDelegator.InitParams({ baseParams: IBaseDelegator.BaseParams({ @@ -256,7 +258,7 @@ contract FullRestakeResetHookTest is POCBaseTest { vm.startPrank(alice); delegator2.setHook(hook); - delegator2.grantRole(delegator2.OPERATOR_NETWORK_LIMIT_SET_ROLE(), hook); + AccessControl(address(delegator2)).grantRole(delegator2.OPERATOR_NETWORK_LIMIT_SET_ROLE(), hook); vm.stopPrank(); address network = alice; diff --git a/test/networkRestakeDelegator/NetworkRestakeDecreaseHook.t.sol b/test/networkRestakeDelegator/NetworkRestakeDecreaseHook.t.sol index eab91a7..b7028d6 100644 --- a/test/networkRestakeDelegator/NetworkRestakeDecreaseHook.t.sol +++ b/test/networkRestakeDelegator/NetworkRestakeDecreaseHook.t.sol @@ -14,6 +14,7 @@ import {IVault} from "@symbioticfi/core/src/interfaces/vault/IVault.sol"; import {IVaultConfigurator} from "@symbioticfi/core/src/interfaces/IVaultConfigurator.sol"; import {Math} from "@openzeppelin/contracts/utils/math/Math.sol"; +import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol"; import {Subnetwork} from "@symbioticfi/core/src/contracts/libraries/Subnetwork.sol"; import {NetworkRestakeDecreaseHook} from "../../src/contracts/networkRestakeDelegator/NetworkRestakeDecreaseHook.sol"; @@ -28,6 +29,7 @@ contract NetworkRestakeDecreaseHookTest is POCBaseTest { Slasher public slasher0; function setUp() public override { + SYMBIOTIC_CORE_PROJECT_ROOT = "lib/core/"; super.setUp(); } @@ -54,8 +56,8 @@ contract NetworkRestakeDecreaseHookTest is POCBaseTest { vm.startPrank(alice); delegator1.setHook(hook); - delegator1.grantRole(delegator1.NETWORK_LIMIT_SET_ROLE(), hook); - delegator1.grantRole(delegator1.OPERATOR_NETWORK_SHARES_SET_ROLE(), hook); + AccessControl(address(delegator1)).grantRole(delegator1.NETWORK_LIMIT_SET_ROLE(), hook); + AccessControl(address(delegator1)).grantRole(delegator1.OPERATOR_NETWORK_SHARES_SET_ROLE(), hook); vm.stopPrank(); address network = alice; @@ -168,7 +170,7 @@ contract NetworkRestakeDecreaseHookTest is POCBaseTest { operatorNetworkSharesSetRoleHolders[0] = alice; (address vault_, address delegator_, address slasher_) = vaultConfigurator.create( IVaultConfigurator.InitParams({ - version: vaultFactory.lastVersion(), + version: 1, owner: alice, vaultParams: abi.encode( IVault.InitParams({ @@ -185,7 +187,7 @@ contract NetworkRestakeDecreaseHookTest is POCBaseTest { depositLimitSetRoleHolder: alice }) ), - delegatorIndex: 3, + delegatorIndex: delegatorFactory.totalTypes() - 1, delegatorParams: abi.encode( INetworkRestakeDelegator.InitParams({ baseParams: IBaseDelegator.BaseParams({ @@ -207,8 +209,8 @@ contract NetworkRestakeDecreaseHookTest is POCBaseTest { vm.startPrank(alice); delegator0.setHook(hook); - delegator0.grantRole(delegator0.NETWORK_LIMIT_SET_ROLE(), hook); - delegator0.grantRole(delegator0.OPERATOR_NETWORK_SHARES_SET_ROLE(), hook); + AccessControl(address(delegator0)).grantRole(delegator0.NETWORK_LIMIT_SET_ROLE(), hook); + AccessControl(address(delegator0)).grantRole(delegator0.OPERATOR_NETWORK_SHARES_SET_ROLE(), hook); vm.stopPrank(); address network = alice; diff --git a/test/networkRestakeDelegator/NetworkRestakeRedistributeHook.t.sol b/test/networkRestakeDelegator/NetworkRestakeRedistributeHook.t.sol index 145fad3..f2c1616 100644 --- a/test/networkRestakeDelegator/NetworkRestakeRedistributeHook.t.sol +++ b/test/networkRestakeDelegator/NetworkRestakeRedistributeHook.t.sol @@ -14,6 +14,7 @@ import {IVault} from "@symbioticfi/core/src/interfaces/vault/IVault.sol"; import {IVaultConfigurator} from "@symbioticfi/core/src/interfaces/IVaultConfigurator.sol"; import {Math} from "@openzeppelin/contracts/utils/math/Math.sol"; +import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol"; import {Subnetwork} from "@symbioticfi/core/src/contracts/libraries/Subnetwork.sol"; import {NetworkRestakeRedistributeHook} from @@ -29,6 +30,7 @@ contract NetworkRestakeRedistributeHookTest is POCBaseTest { Slasher public slasher0; function setUp() public override { + SYMBIOTIC_CORE_PROJECT_ROOT = "lib/core/"; super.setUp(); } @@ -52,7 +54,7 @@ contract NetworkRestakeRedistributeHookTest is POCBaseTest { vm.startPrank(alice); delegator1.setHook(hook); - delegator1.grantRole(delegator1.OPERATOR_NETWORK_SHARES_SET_ROLE(), hook); + AccessControl(address(delegator1)).grantRole(delegator1.OPERATOR_NETWORK_SHARES_SET_ROLE(), hook); vm.stopPrank(); address network = alice; @@ -133,7 +135,7 @@ contract NetworkRestakeRedistributeHookTest is POCBaseTest { operatorNetworkSharesSetRoleHolders[0] = alice; (address vault_, address delegator_, address slasher_) = vaultConfigurator.create( IVaultConfigurator.InitParams({ - version: vaultFactory.lastVersion(), + version: 1, owner: alice, vaultParams: abi.encode( IVault.InitParams({ @@ -150,7 +152,7 @@ contract NetworkRestakeRedistributeHookTest is POCBaseTest { depositLimitSetRoleHolder: alice }) ), - delegatorIndex: 3, + delegatorIndex: delegatorFactory.totalTypes() - 1, delegatorParams: abi.encode( INetworkRestakeDelegator.InitParams({ baseParams: IBaseDelegator.BaseParams({ diff --git a/test/networkRestakeDelegator/NetworkRestakeResetHook.t.sol b/test/networkRestakeDelegator/NetworkRestakeResetHook.t.sol index e767ad0..ff031cc 100644 --- a/test/networkRestakeDelegator/NetworkRestakeResetHook.t.sol +++ b/test/networkRestakeDelegator/NetworkRestakeResetHook.t.sol @@ -14,6 +14,7 @@ import {IVault} from "@symbioticfi/core/src/interfaces/vault/IVault.sol"; import {IVaultConfigurator} from "@symbioticfi/core/src/interfaces/IVaultConfigurator.sol"; import {Math} from "@openzeppelin/contracts/utils/math/Math.sol"; +import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol"; import {Subnetwork} from "@symbioticfi/core/src/contracts/libraries/Subnetwork.sol"; import {NetworkRestakeResetHook} from "../../src/contracts/networkRestakeDelegator/NetworkRestakeResetHook.sol"; @@ -30,6 +31,7 @@ contract NetworkRestakeResetHookTest is POCBaseTest { Slasher public slasher0; function setUp() public override { + SYMBIOTIC_CORE_PROJECT_ROOT = "lib/core/"; super.setUp(); } @@ -48,7 +50,7 @@ contract NetworkRestakeResetHookTest is POCBaseTest { vm.startPrank(alice); delegator1.setHook(hook); - delegator1.grantRole(delegator1.OPERATOR_NETWORK_SHARES_SET_ROLE(), hook); + AccessControl(address(delegator1)).grantRole(delegator1.OPERATOR_NETWORK_SHARES_SET_ROLE(), hook); vm.stopPrank(); address network = alice; @@ -157,7 +159,7 @@ contract NetworkRestakeResetHookTest is POCBaseTest { operatorNetworkSharesSetRoleHolders[0] = alice; (address vault_, address delegator_, address slasher_) = vaultConfigurator.create( IVaultConfigurator.InitParams({ - version: vaultFactory.lastVersion(), + version: 1, owner: alice, vaultParams: abi.encode( IVault.InitParams({ @@ -174,7 +176,7 @@ contract NetworkRestakeResetHookTest is POCBaseTest { depositLimitSetRoleHolder: alice }) ), - delegatorIndex: 3, + delegatorIndex: delegatorFactory.totalTypes() - 1, delegatorParams: abi.encode( INetworkRestakeDelegator.InitParams({ baseParams: IBaseDelegator.BaseParams({ @@ -264,7 +266,7 @@ contract NetworkRestakeResetHookTest is POCBaseTest { vm.startPrank(alice); delegator1.setHook(hook); - delegator1.grantRole(delegator1.OPERATOR_NETWORK_SHARES_SET_ROLE(), hook); + AccessControl(address(delegator1)).grantRole(delegator1.OPERATOR_NETWORK_SHARES_SET_ROLE(), hook); vm.stopPrank(); address network = alice; diff --git a/test/operatorSpecificDelegator/OperatorSpecificDecreaseHook.t.sol b/test/operatorSpecificDelegator/OperatorSpecificDecreaseHook.t.sol index 826b80b..b3be8c0 100644 --- a/test/operatorSpecificDelegator/OperatorSpecificDecreaseHook.t.sol +++ b/test/operatorSpecificDelegator/OperatorSpecificDecreaseHook.t.sol @@ -14,6 +14,7 @@ import {IVault} from "@symbioticfi/core/src/interfaces/vault/IVault.sol"; import {IVaultConfigurator} from "@symbioticfi/core/src/interfaces/IVaultConfigurator.sol"; import {Math} from "@openzeppelin/contracts/utils/math/Math.sol"; +import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol"; import {Subnetwork} from "@symbioticfi/core/src/contracts/libraries/Subnetwork.sol"; import {OperatorSpecificDecreaseHook} from @@ -29,6 +30,7 @@ contract OperatorSpecificDecreaseHookTest is POCBaseTest { Slasher public slasher0; function setUp() public override { + SYMBIOTIC_CORE_PROJECT_ROOT = "lib/core/"; super.setUp(); } @@ -58,7 +60,7 @@ contract OperatorSpecificDecreaseHookTest is POCBaseTest { networkLimitSetRoleHolders[0] = alice; (address vault_, address delegator_, address slasher_) = vaultConfigurator.create( IVaultConfigurator.InitParams({ - version: vaultFactory.lastVersion(), + version: 1, owner: alice, vaultParams: abi.encode( IVault.InitParams({ @@ -97,7 +99,7 @@ contract OperatorSpecificDecreaseHookTest is POCBaseTest { vm.startPrank(alice); delegator0.setHook(hook); - delegator0.grantRole(delegator0.NETWORK_LIMIT_SET_ROLE(), hook); + AccessControl(address(delegator0)).grantRole(delegator0.NETWORK_LIMIT_SET_ROLE(), hook); vm.stopPrank(); address network = alice; @@ -175,7 +177,7 @@ contract OperatorSpecificDecreaseHookTest is POCBaseTest { networkLimitSetRoleHolders[0] = alice; (address vault_, address delegator_, address slasher_) = vaultConfigurator.create( IVaultConfigurator.InitParams({ - version: vaultFactory.lastVersion(), + version: 1, owner: alice, vaultParams: abi.encode( IVault.InitParams({ @@ -192,7 +194,7 @@ contract OperatorSpecificDecreaseHookTest is POCBaseTest { depositLimitSetRoleHolder: alice }) ), - delegatorIndex: 3, + delegatorIndex: delegatorFactory.totalTypes() - 1, delegatorParams: abi.encode( IOperatorSpecificDelegator.InitParams({ baseParams: IBaseDelegator.BaseParams({ @@ -214,7 +216,7 @@ contract OperatorSpecificDecreaseHookTest is POCBaseTest { vm.startPrank(alice); delegator0.setHook(hook); - delegator0.grantRole(delegator0.NETWORK_LIMIT_SET_ROLE(), hook); + AccessControl(address(delegator0)).grantRole(delegator0.NETWORK_LIMIT_SET_ROLE(), hook); vm.stopPrank(); address network = alice; diff --git a/test/operatorSpecificDelegator/OperatorSpecificResetHook.t.sol b/test/operatorSpecificDelegator/OperatorSpecificResetHook.t.sol index 78f3985..3700b15 100644 --- a/test/operatorSpecificDelegator/OperatorSpecificResetHook.t.sol +++ b/test/operatorSpecificDelegator/OperatorSpecificResetHook.t.sol @@ -14,6 +14,7 @@ import {IVault} from "@symbioticfi/core/src/interfaces/vault/IVault.sol"; import {IVaultConfigurator} from "@symbioticfi/core/src/interfaces/IVaultConfigurator.sol"; import {Math} from "@openzeppelin/contracts/utils/math/Math.sol"; +import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol"; import {Subnetwork} from "@symbioticfi/core/src/contracts/libraries/Subnetwork.sol"; import {OperatorSpecificResetHook} from "../../src/contracts/operatorSpecificDelegator/OperatorSpecificResetHook.sol"; @@ -30,6 +31,7 @@ contract OperatorSpecificResetHookTest is POCBaseTest { Slasher public slasher0; function setUp() public override { + SYMBIOTIC_CORE_PROJECT_ROOT = "lib/core/"; super.setUp(); } @@ -51,7 +53,7 @@ contract OperatorSpecificResetHookTest is POCBaseTest { networkLimitSetRoleHolders[0] = alice; (address vault_, address delegator_, address slasher_) = vaultConfigurator.create( IVaultConfigurator.InitParams({ - version: vaultFactory.lastVersion(), + version: 1, owner: alice, vaultParams: abi.encode( IVault.InitParams({ @@ -90,7 +92,7 @@ contract OperatorSpecificResetHookTest is POCBaseTest { vm.startPrank(alice); delegator0.setHook(hook); - delegator0.grantRole(delegator0.NETWORK_LIMIT_SET_ROLE(), hook); + AccessControl(address(delegator0)).grantRole(delegator0.NETWORK_LIMIT_SET_ROLE(), hook); vm.stopPrank(); address network = alice; @@ -181,7 +183,7 @@ contract OperatorSpecificResetHookTest is POCBaseTest { networkLimitSetRoleHolders[0] = alice; (address vault_, address delegator_, address slasher_) = vaultConfigurator.create( IVaultConfigurator.InitParams({ - version: vaultFactory.lastVersion(), + version: 1, owner: alice, vaultParams: abi.encode( IVault.InitParams({ @@ -198,7 +200,7 @@ contract OperatorSpecificResetHookTest is POCBaseTest { depositLimitSetRoleHolder: alice }) ), - delegatorIndex: 3, + delegatorIndex: delegatorFactory.totalTypes() - 1, delegatorParams: abi.encode( IOperatorSpecificDelegator.InitParams({ baseParams: IBaseDelegator.BaseParams({ @@ -285,7 +287,7 @@ contract OperatorSpecificResetHookTest is POCBaseTest { networkLimitSetRoleHolders[0] = alice; (address vault_, address delegator_, address slasher_) = vaultConfigurator.create( IVaultConfigurator.InitParams({ - version: vaultFactory.lastVersion(), + version: 1, owner: alice, vaultParams: abi.encode( IVault.InitParams({ @@ -324,7 +326,7 @@ contract OperatorSpecificResetHookTest is POCBaseTest { vm.startPrank(alice); delegator0.setHook(hook); - delegator0.grantRole(delegator0.NETWORK_LIMIT_SET_ROLE(), hook); + AccessControl(address(delegator0)).grantRole(delegator0.NETWORK_LIMIT_SET_ROLE(), hook); vm.stopPrank(); address network = alice;