Specialized Strategy Modules
Overview
A strategy must define a set of functions and structs to operate on a vault. It interacts with satay::base_strategy
and Structured Prodocts.
Identifier
StrategyType
is used to identify a strategy and verify its authenticity in function calls via the witnessing pattern.
Initialize
Initialize the Vault
referenced by vault_id
with debt_ratio
by calling base_strategy::initialize
function with the StrategyType
identifier.
Harvest
Calls structured_product::reinvest_returns
and deposits StrategyCoin
to vault. Rebalances the debt position given the strategy's balance and debt_ratio
. Only called if harvest_trigger
returns true
.
Harvest Trigger
Returns a boolean regarding whether or not the vault manager should call harvest
for StrategyType
.
Tend
Calls structured_product::reinvest_returns
and deposits farmed StrategyCoin
to the Vault
Withdraw for User
Called by user
when there is not enough BaseCoin
in the vault, and the user wants to liquidate the respective amount of StrategyCoin
for a given share_amount
of VaultCoin<BaseCoin>
.
Admin Functions
Implement all of the Admin Functions of the Base Strategy Module using the specialized strategy Identifier.
Last updated