How To Upgrade
Introduction
This document outlines upgrading contracts within our system. It delves into the two primary upgrade paths: multi-contract and single-contract upgrades, detailing how each approach should be approached.
Universal Process
When addressing bugs or adding new features, the deployment process is streamlined and consistent, regardless of the upgrade path chosen:
Deploy the updated logic contract to incorporate the necessary changes or additions.
Initialize the new protocol version to prepare it for integration and use within the system.
Create a change log with changes added
Single Contract Upgrades
A single contract upgrade occurs when updates or enhancements are contained within a single contract, without affecting other parts of the system. This type of upgrade is applicable when the contract in question does not induce changes or require updates in other contracts or modules within the protocol. The upgrade process in such cases is straightforward and involves only the contract directly impacted by the proposed changes.
Multi-Contract Upgrades
Multi-contract upgrades are necessary when changes in one contract necessitate adjustments or updates in other contracts within the system. This interconnected upgrade approach ensures that enhancements or fixes are consistently applied across all affected components, maintaining the integrity and functionality of the overall protocol. Multi-contract upgrades require a coordinated deployment strategy to seamlessly integrate the updated contracts without disrupting the system's operations.
Before initiating the upgrade, it's crucial to ensure that the backend is fully prepared and updated to align with the changes introduced by the upgrade.
Performing Upgrade
To modify a component follow these steps:
Access the admin panel with your blueprint email for the login and connect your wallet.
Use the "disable" function to deactivate the component in question providing the name of the component and the parent address.
On completion of the above step, execute the "enable" function, specifying the component's name, the parent address, and the newly deployed address of the component.
(INSERT IMAGES FROM ADMIN PANEL)
Functions
Module
Blueprint
Action
/// TODO
Criteria for Rollback
Rollback Process
Governance Process
Smart Contract Audits
Last updated