want) and the contract will confirm the amount that is received by checking balances before and after the transfer. If the received amount is non-zero then check if an existing lock for SPIRIT exists, which it likely will unless the lock has not been initiated before or has been left to expire. If the lock exists then it will extended out to the full 4 years if the current lock time is less than the full amount, and the received balance of SPIRIT is locked to get a 1:1 amount of inSPIRIT. If no lock currently exists then create a new one and lock the balance of SPIRIT on the contract. Finally mint an equal amount of binSPIRIT as the received balance of SPIRIT from the user.
_amount) in the token that is assigned to the gauge (
_underlying). Harvests (
claimGaugeReward()) pass through only the SPIRIT (
want) reward that's received by the Gauge Staker when claiming the reward, ignoring the existing balance on the Gauge Staker. None of the funds are kept on the Gauge Staker, they are always passed across in the same transaction.
claimVeWantReward(). Only the SPIRIT (
want) reward is immediately passed back to the Reward Pool, if there is anything available to claim.
_want) assigned to the gauge is reset and increased to the max limit for spending by the gauge. The gauge is mapped to the whitelisted strategy and the strategy is allowed access to the Gauge Staker for the specified gauge.
proposeStrategy()should be called on the Gauge Staker before
upgradeStrat()on the vault so the switch will succeed. The new strategy must have the same gauge as the previous strategy.
upgradeStrategy()is only called in
retireStrat()on the previous strategy, so is controlled indirectly by the vault owner through upgrading the strategy address on the vault.