uint256 public periodFinish = 0;
uint256 public rewardRate = 0;
uint256 public queuedRewards = 0;
uint256 public currentRewards = 0;
uint256 public historicalRewards = 0;
Repeated storage access should be cached, e.g. veAsset is accessed 3 times here:
uint is always >= 0, can't be negative:
No need for safe math where overflow/underflow is impossible, e.g.:
When you declared the named return value, then you do not need to return afterward explicitly:
No need to initialize to default values, e.g.:
Repeated storage access should be cached, e.g. veAsset is accessed 3 times here: