The expectation is that after the pools receive their HAMs, the forking degenerates are nowhere to be found. This is a protocol that will be launched, and left to the growing community of meat eaters.
If you do need help or technical support, you can always harass whoever runs the Yam Finance Twitter or maybe just Dan Elitzer since he seems pretty smart. You might have to pretend you like sweet potatoes though.
To help ensure governance by a robust group of degenerate meat eaters, here's a TL;DR
address that controls every permissioned function, or is primed to.
_setPendingGov(address): sets pendingGov to new address. To complete the change of governance, the new governance contract has to call _acceptGov().
address that controls the rebasing functionality. This contract is one of two contracts that can mint. It also tells how much to change hamsScalingFactor.
_setRebaser(address): sets rebaser to new address.
address that controls the incentivizer pool. This contract is one of two contracts that can mint. It is there to promote liquidity for the rebasing functionality to work correctly.
_setIncentivizer(address): sets incentivzer to new address.
Transactions that the rebaser sends after a rebase. Useful for calling sync() like functions.
addTransaction(address destination, bytes calldata data)
adds a transaction to the list of txs to perform.
removeTransaction(uint index)
removes a transaction to the list of txs.
setTransactionEnabled(uint index, bool enabled)
enables or disables a tx in the transactions list.
address that controls every permissioned function, or is primed to.
_setPendingGov(address): sets pendingGov to new address. To complete the change of governance, the new governance contract has to call _acceptGov().
rebaseLag spreads out the time it takes to reach the peg. i.e. if the supply is suppose to increase 10% in a particular rebase, that 10% is divided by this rebaseLag to slow it down a bit. Since rebases happen twice daily, a value of 10, slows it down to 5 days (if no further price change).
setRebaseLag(uint256 rebaseLag_)
The peg the protocol should aim for relative to the reserveToken. i.e. 1e18 means 1:1 between the reserveToken and HAM.
setTargetRate(uint256 targetRate_)
The amount of HAM that the rebaser mints that is sold to build the protocol's treasury. Decimals: 18. i.e. 1e17 == .1, or 10% of the rebase.
setRebaseMintPerc(uint256 rebaseMintPerc_)
The percentage difference between price and peg needed to allow for a change of supply via rebase.
setDeviationThreshold(uint256 deviationThreshold_)
Amount of time between rebases.
setRebaseTimingParameters(
uint256 minRebaseTimeIntervalSec_,
uint256 rebaseWindowOffsetSec_,
uint256 rebaseWindowLengthSec_
)
The number of seconds from the beginning of the rebase interval, where the rebase window begins.
setRebaseTimingParameters(
uint256 minRebaseTimeIntervalSec_,
uint256 rebaseWindowOffsetSec_,
uint256 rebaseWindowLengthSec_
)
The length of the time window where a rebase operation is allowed to execute, in seconds.
setRebaseTimingParameters(
uint256 minRebaseTimeIntervalSec_,
uint256 rebaseWindowOffsetSec_,
uint256 rebaseWindowLengthSec_
)
Address of the protocol owned reserves (treasury) contract.
setReserveContract(address reservesContract_)
Max slippage factor when buying reserve token. Magic number based on the fact that uniswap is a constant product. Therefore, targeting a % max slippage can be achieved by using a single precomputed number. i.e. 2.5% slippage is always equal to some f(maxSlippageFactor, reserves)
setMaxSlippageFactor(uint256 maxSlippageFactor_)