Maple
  • Welcome to Maple
  • Maple for Lenders
    • Introduction
    • Lending
    • Defaults and Impairments
    • Margin Calls and Liquidations
    • Risk
    • Withdrawal Process
  • syrupUSDC for Lenders
    • Powered by Maple
    • Lending in syrupUSDC and syrupUSDT
    • Commitments
    • Drips Rewards
    • Withdrawals
    • Monthly Updates
    • Pendle Integration
  • SyrupUSDC Rewards Prize Draw Program Summary
  • FAQ
  • Maple for Borrowers
    • Introduction
    • Loan Management
  • Maple for Token Holders
    • Introduction to SYRUP
      • MPL to SYRUP Conversion
      • FAQs
    • SYRUP Tokenomics
      • Staking
      • Staking Smart Contract Details
    • Governance and Voting
    • Drips Rewards
    • Research and Media
      • Podcasts
      • News Articles
      • TV Segments
      • Research Reports
      • Data Dashboards
    • Additional Resources
  • Technical Resources
    • Protocol Overview
      • Background
      • Protocol Actors
      • Smart Contract Architecture
      • Glossary
      • Smart Contract Addresses
      • Fees
      • Composability
      • Proxies and Upgradeability
    • Security
      • Security
      • List of Assumptions
      • External Entry Points
      • Emergency Protocol Pause
      • Protocol Invariants
      • Test Report
    • Loans
      • Loans
      • Fixed Term Loans
      • Open Term Loans
      • Refinancing
      • Impairments
      • Defaults
    • Pools
      • Pools
      • Pool Creation
      • PoolManager
      • PoolDelegateCover
      • Accounting
        • Pool Accounting
        • Pool Exchange Rates
    • Strategies
      • Fixed Term Loan Manager
        • Overview
        • Claims
        • Advance Payment Accounting
        • Accounting Examples
      • Open Term Loan Manager
      • DeFi Strategies
    • Withdrawal Managers
      • WithdrawalManager (Cyclical)
      • WithdrawalManager (Queue)
    • Singletons
      • Globals
      • MapleTreasury
      • Oracles
      • Pool Permission Manager
    • Admin Functions
      • Governor Admin Actions
        • Operational Admin Actions
      • Pool Delegate Admin Actions
      • Timelocks
    • Operations
      • Protocol Deployment
      • Open Term Loan Deployment
      • December 2023 Deployment & Upgrade Procedure
      • Strategies Release Deployment Procedure
    • Interfaces
      • FixedTermLoan
      • FixedTermLoanFactory
      • FixedTermLoanFeeManager
      • FixedTermLoanInitializer
      • FixedTermLoanManager
      • FixedTermLoanManagerFactory
      • FixedTermLoanManagerInitializer
      • FixedTermLoanRefinancer
      • Globals
      • Liquidator
      • LiquidatorFactory
      • LiquidatorInitializer
      • OpenTermLoan
      • OpenTermLoanFactory
      • OpenTermLoanInitializer
      • OpenTermLoanManager
      • OpenTermLoanManagerFactory
      • OpenTermLoanManagerInitializer
      • OpenTermLoanRefinancer
      • Pool
      • PoolDelegateCover
      • PoolDeployer
      • PoolManager
      • PoolManagerFactory
      • PoolManagerInitializer
      • PoolPermissionManager
      • WithdrawalManager (Cyclical)
      • WithdrawalManagerFactory (Cyclical)
      • WithdrawalManagerInitializer (Cyclical)
      • WithdrawalManager (Queue)
      • WithdrawalManagerFactory (Queue)
      • WithdrawalManagerInitializer (Queue)
    • SYRUP Token
      • Architectural Overview
      • Base ERC20 Structure
      • Upgradability
      • Modules
      • Time Locks
      • Recapitalization Module
      • Emergency Module
      • Deployment and Migration Procedure
    • GraphQL API
    • SDK
      • Introduction
      • Installation
      • Protocol Actors
      • Usage Guide
  • Troubleshooting & Support
    • Intercom
  • Maple 1.0
    • Access to deprecated Maple 1.0
  • Legal
    • Borrower MLA
    • KYC
    • Interface Terms of Use
    • Privacy Policy
    • syrupUSDC and syrupUSDT - Risks
    • syrupUSDC and syrupUSDT - Defaults and Impairments
    • syrupUSDC and syrupUSDT - Available Jurisdictions
    • Interface Terms of Use [syrupUSDC and syrupUSDT]
    • Interface Terms of Use [Syrup.fi/convert/ and Syrup.fi/stake/]
    • syrupUSDC and syrupUSDT- Privacy Policy
    • SyrupUSDC Rewards Prize Draw Terms & Conditions
Powered by GitBook
On this page
  • Smart Contract Deployments & Upgrade Procedure for Strategies Release
  • Upgrade procedure
  • Setting up Pool Manager
  • Setting up strategies
  • Setting up Globals
  • Attaching Strategies
  • Strategy Manager Bot
  1. Technical Resources
  2. Operations

Strategies Release Deployment Procedure

PreviousDecember 2023 Deployment & Upgrade ProcedureNextInterfaces

Last updated 2 months ago

Smart Contract Deployments & Upgrade Procedure for Strategies Release

The following contracts will be deployed with the relevant release tags.

  • instance with updated logic.

  • instance with updated logic.

  • instance with updated compiler.

  • instance with updated logic.

  • 3 instances of the new contract . Each one will be used for Aave, Sky and Basic strategies.

  • New contract

  • New contract

  • New contract

  • New contract

  • New contract

  • New contract

Upgrade procedure

Setting up Pool Manager

The following transactions will be made to the PoolManagerFactory by the GOVERNOR

  1. registerImplementation(400, <newly deployed PM>, <newly deployed PM Initializer>)

  2. enableUpgradePath(300, 400, address(0))

  3. enableUpgradePath(301, 400, address(0))

  4. setDefaultVersion(400)

After that, on each Pool Manager that will be upgraded, the following function will be called:

  1. upgrade(400, "") by PoolDelegate/SecurityAdmin

The list of pools that will have their pool manager upgraded are:

* AQRU
* Cash Management USDC
* Blue Chip Secured Lending USDC
* High Yield Corporate Loan USDC
* High Yield Corporate Loan WETH
* High Yield Secured Lending - USDC
* Syrup USDC
* syrup USDT

Setting up strategies

For each of the 3 instances of MapleStrategyFactory deployed, the following transactions will be made by GOVERNOR:

  1. registerImplementation(100, <aave/basic/sky strategyImplementation>, <aave/basic/sky strategyInitializer>)

  2. setDefaultVersion(100)

Setting up Globals

Following transactions will be made by the GOVERNOR or OPERATIONAL ADMIN

Upgrade Globals via Governor

  1. setImplementation(<newly deployed MapleGlobals implementation>)

Set Valid Instance Keys via Operational Admin

  1. setValidInstanceOf("STRATEGY_FACTORY", fixedTermLoanManagerFactory, true)

  2. setValidInstanceOf("STRATEGY_FACTORY", openTermLoanManagerFactory, true)

  3. setValidInstanceOf("STRATEGY_FACTORY", basicStrategyFactory, true)

  4. setValidInstanceOf("STRATEGY_FACTORY", aaveStrategyFactory, true)

  5. setValidInstanceOf("STRATEGY_FACTORY", skyStrategyFactory, true)

  6. setValidInstanceOf("STRATEGY_VAULT", aToken(USDC), true)

  7. setValidInstanceOf("STRATEGY_VAULT", aToken(USDT), true)

  8. setValidInstanceOf("STRATEGY_VAULT", sUSDS, true)

  9. 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

  1. addStrategy(<aave/basic/sky strategyFactory>, <aave/basic/sky initializer data>).

Strategy Manager Bot

Set Key in Globals to allow Bot to manage strategy positions.

  1. setValidInstanceOf("STRATEGY_MANAGER", <turnkey_bot_address>, true)

Maple Globals
Pool Manager Implementation
Pool Manager Initializer
Pool Deployer
Maple Strategy Factory
Maple Aave Strategy Initializer
Maple Aave Strategy Implementation
Maple Basic Strategy Initializer
Maple Basic Strategy Implementation
Maple Sky Strategy Initializer
Maple Sky Strategy Implementation