Specialized Strategy Modules (Legacy)
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.
struct StrategyType has drop {}Initialize
Initialize the Vault referenced by vault_id with debt_ratio by calling base_strategy::initialize function with the StrategyType identifier.
public fun initialize(
manager: &signer,
vault_id: u64,
debt_ratio: u64
)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