Deploy a strategy lever which allows user to create a leveraged position of strategy token
The StrategyLever builds on Strategy tokens as collateral to allow leveraged LP positions. While the spread between LP returns and fyToken borrowing rates are unlikely to be very attractive for users right now, this allows us to bootstrap liquidity on the pools at a low cost. Building up liquidity unlocks other features such as stEthLever and CrabLever.
In this proposal we are going to deploy Giver & StrategyLever and orchestrate them to give relevant permissions.
Steps:
- Deploy giver (no need for governance approval)
- Orchestrate giver
- Grant permission on
Cauldron
forgive
to theGiver
- Grant permission on
Giver
forbanIlk
to theTimelock
- Remove
ROOT
permission for the deployer onGiver
- Grant permission on
- Deploy StrategyLever (no need for governance approval)
- Orchestrate Strategy Lever
- Grant permission on
Giver
forgive
to the lever - Grant permission on
Giver
forseize
to the lever
- Grant permission on
- Set flashFee factor for joins & fyTokens
Configuration parameters:
// ----- deployment parameters -----
export const contractDeployments: ContractDeployment[] = [
{
addressFile: 'protocol.json',
name: GIVER,
contract: 'Giver',
args: [() => protocol().getOrThrow(CAULDRON)],
},
{
addressFile: 'protocol.json',
name: YIELD_STRATEGY_LEVER,
contract: 'YieldStrategyLever',
args: [() => protocol().getOrThrow(GIVER)],
},
]
/// @notice Flashfeefactor to be set on asset's join
/// @param assetId
/// @param flashFeeAmount
export const joinFlashFees: [string, string][] = [
['0x303000000000', '0'],
['0x303100000000', '0'],
['0x303200000000', '0'],
]
/// @notice Flashfeefactor to be set on fyTokens
/// @param seriesId
/// @param flashFee
export const fyTokenFlashFees: [string, string][] = [
['0x303030380000', '0'],
['0x303130380000', '0'],
['0x303230380000', '0'],
]
Testing was done on tenderly & local forks.