- Notifications
You must be signed in to change notification settings - Fork 50
Closed
Labels
Description
Motivation
Post-audit it will not make sense anymore to make distinction between the Neo and non-Neo implementations, we will have a stable version and that is it.
In addition it allows for the removal of the KlerosCoreBase and SortitionModuleBase inheritance.
Implementation details
To accommodate the testnet deployments it should be possible to disable the arbitrable whitelist.
Testnet configuration
KlerosCore.arbitrableWhitelistEnabled = false; KlerosCore.jurorNft = address(0); SortitionModule.maxStakePerJuror = type(int256).max; SortitionModule.maxTotalStaked = type(int256).max;Changes required
- Make sure that
jurorNft = address(0)is supported gracefully as meaning no gating. - An extra state variable
arbitrableWhitelistEnabledis needed. Ensure it is enabled on mainnet and disabled on testnet/devnet.
Later: permanent removal of the Neo restrictions
There are 2 paths
1) By adopting the same config as on the testnets
Pro: no code change, audit still valid
Con: unnecessary state and logic (with KlerosCore already very close to 24KB)
2) Via upgrade
The slot state can be cleared and the slots free to be used again in subsequent upgrades. The related logic can be removed.
Pro: leaner contract size and code
Con: code change, audit needed again.