@@ -6,17 +6,15 @@ import "./KlerosCoreXBase.sol";
66import "@openzeppelin/contracts/token/ERC721/IERC721.sol " ;
77
88/// @title KlerosCoreXNeo
9- /// @notice KlerosCore implementation with new StakeController architecture for production environments
9+ /// @notice KlerosCore with whitelisted arbitrables
1010contract KlerosCoreXNeo is KlerosCoreXBase {
11- /// @notice Version of the implementation contract
1211 string public constant override version = "0.0.1 " ;
1312
1413 // ************************************* //
1514 // * Storage * //
1615 // ************************************* //
1716
1817 mapping (address => bool ) public arbitrableWhitelist; // Arbitrable whitelist.
19- IERC721 public jurorNft; // Eligible jurors NFT.
2018
2119 // ************************************* //
2220 // * Constructor * //
@@ -37,7 +35,6 @@ contract KlerosCoreXNeo is KlerosCoreXBase {
3735 /// @param _timesPerPeriod The timesPerPeriod array for courts
3836 /// @param _sortitionExtraData Extra data for sortition module setup
3937 /// @param _stakeController The stake controller for coordination
40- /// @param _jurorNft NFT contract to vet the jurors
4138 function initialize (
4239 address _governor ,
4340 address _guardian ,
@@ -48,8 +45,7 @@ contract KlerosCoreXNeo is KlerosCoreXBase {
4845 uint256 [4 ] memory _timesPerPeriod ,
4946 bytes memory _sortitionExtraData ,
5047 IStakeController _stakeController ,
51- IVault _vault ,
52- IERC721 _jurorNft
48+ IVault _vault
5349 ) external reinitializer (2 ) {
5450 __KlerosCoreXBase_initialize (
5551 _governor,
@@ -63,7 +59,6 @@ contract KlerosCoreXNeo is KlerosCoreXBase {
6359 _stakeController,
6460 _vault
6561 );
66- jurorNft = _jurorNft;
6762 }
6863
6964 function initialize5 () external reinitializer (5 ) {
@@ -77,13 +72,7 @@ contract KlerosCoreXNeo is KlerosCoreXBase {
7772 /// @notice Access Control to perform implementation upgrades (UUPS Proxiable)
7873 /// Only the governor can perform upgrades (`onlyByGovernor`)
7974 function _authorizeUpgrade (address ) internal view override onlyByGovernor {
80- // Empty block: access control implemented by `onlyByGovernor` modifier
81- }
82-
83- /// @dev Changes the `jurorNft` storage variable.
84- /// @param _jurorNft The new value for the `jurorNft` storage variable.
85- function changeJurorNft (IERC721 _jurorNft ) external onlyByGovernor {
86- jurorNft = _jurorNft;
75+ // NOP
8776 }
8877
8978 /// @dev Adds or removes an arbitrable from whitelist.
@@ -93,20 +82,6 @@ contract KlerosCoreXNeo is KlerosCoreXBase {
9382 arbitrableWhitelist[_arbitrable] = _allowed;
9483 }
9584
96- // ************************************* //
97- // * State Modifiers * //
98- // ************************************* //
99-
100- /// @dev Sets the caller's stake in a court.
101- /// Note: Staking and unstaking is forbidden during pause.
102- /// @param _courtID The ID of the court.
103- /// @param _newStake The new stake.
104- /// Note that the existing delayed stake will be nullified as non-relevant.
105- function setStake (uint96 _courtID , uint256 _newStake ) external override whenNotPaused {
106- if (jurorNft.balanceOf (msg .sender ) == 0 ) revert NotEligibleForStaking ();
107- _setStake (msg .sender , _courtID, _newStake, OnError.Revert);
108- }
109-
11085 // ************************************* //
11186 // * Internal * //
11287 // ************************************* //
@@ -131,7 +106,6 @@ contract KlerosCoreXNeo is KlerosCoreXBase {
131106 // * Errors * //
132107 // ************************************* //
133108
134- error NotEligibleForStaking ();
135109 error StakingMoreThanMaxStakePerJuror ();
136110 error StakingMoreThanMaxTotalStaked ();
137111 error ArbitrableNotWhitelisted ();
0 commit comments