preTransferProcess is no longer needed due to the restructured rewards distribution process. This was removed to free up some bytecode.
Additionally, the periodFinish was being set twice during constructor. Removed the duplicated logic.
Removed previous version of familial gauge that emulated abi of controller & distributor
Replaced that version of familial gauge with the distributor only abi emulation. This acts as a reward token manager for FXS & each farm has no gauge controller stored in it.
For testing in ZrowGz/frax-transfers-testing, GaugeController was converted from Vyper to Solidity (using GPT-4 + cleanup) but is untested and unoptimized - only used for testing!
The farm also now should allow self-transfers, which may prove to be important if people need to receive new stakes but have reached the max_locked_stakes limit.
The convex wrapper checkpoint user calls are removed as they're no longer needed - rewards are added to the farm by convex's reward token manager
preTransferProcess is no longer needed due to the restructured rewards distribution process. This was removed to free up some bytecode. Additionally, the periodFinish was being set twice during constructor. Removed the duplicated logic.