Strategies Release Deployment Procedure
Smart Contract Deployments & Upgrade Procedure for Strategies Release
The following contracts will be deployed with the relevant release tags.
Maple Globals instance with updated logic.
Pool Manager Implementation instance with updated logic.
Pool Manager Initializer instance with updated compiler.
Pool Deployer instance with updated logic.
3 instances of the new contract Maple Strategy Factory. Each one will be used for
Aave
,Sky
andBasic
strategies.New contract Maple Aave Strategy Initializer
New contract Maple Aave Strategy Implementation
New contract Maple Basic Strategy Initializer
New contract Maple Basic Strategy Implementation
New contract Maple Sky Strategy Initializer
New contract Maple Sky Strategy Implementation
Upgrade procedure
Setting up Pool Manager
The following transactions will be made to the PoolManagerFactory
by the GOVERNOR
registerImplementation(400, <newly deployed PM>, <newly deployed PM Initializer>)
enableUpgradePath(300, 400, address(0))
enableUpgradePath(301, 400, address(0))
setDefaultVersion(400)
After that, on each Pool Manager that will be upgraded, the following function will be called:
upgrade(400, "")
byPoolDelegate/SecurityAdmin
The list of pools that will have their pool manager upgraded are:
Setting up strategies
For each of the 3 instances of MapleStrategyFactory
deployed, the following transactions will be made by GOVERNOR
:
registerImplementation(100, <aave/basic/sky strategyImplementation>, <aave/basic/sky strategyInitializer>)
setDefaultVersion(100)
Setting up Globals
Following transactions will be made by the GOVERNOR
or OPERATIONAL ADMIN
Upgrade Globals via Governor
setImplementation(<newly deployed MapleGlobals implementation>
)
Set Valid Instance Keys via Operational Admin
setValidInstanceOf("STRATEGY_FACTORY", fixedTermLoanManagerFactory, true)
setValidInstanceOf("STRATEGY_FACTORY", openTermLoanManagerFactory, true)
setValidInstanceOf("STRATEGY_FACTORY", basicStrategyFactory, true)
setValidInstanceOf("STRATEGY_FACTORY", aaveStrategyFactory, true)
setValidInstanceOf("STRATEGY_FACTORY", skyStrategyFactory, true)
setValidInstanceOf("STRATEGY_VAULT", aToken(USDC), true)
setValidInstanceOf("STRATEGY_VAULT", aToken(USDT), true)
setValidInstanceOf("STRATEGY_VAULT", sUSDS, true)
setValidInstanceOf("PSM", usdsLitePSM, true)
Attaching Strategies
For each PoolManager of syrupUSDC, syrupUSDT and High-Yield Secured that needs a given strategy added, the following function will be called by the OPERATIONAL ADMIN
addStrategy(<aave/basic/sky strategyFactory>, <aave/basic/sky initializer data>)
.
Strategy Manager Bot
Set Key in Globals to allow Bot to manage strategy positions.
setValidInstanceOf("STRATEGY_MANAGER", <turnkey_bot_address>, true)
Last updated
Was this helpful?