Geode Finance cannot upgrade the source code of it's contract infrastructure without the approval of their users.
This creates a more secure implementation and prevents any harmful events that can be caused by a Governance Token, thus removes the trust between users and the developers.
{% hint style="success" %}
{% endhint %}
- A new implementation address is proposed by Governance.
- Proposal can be approved by Senate.
- Upgrade is now allowed.
- New Withdrawal Contract is proposed by the Governance with the TYPE of
WITHDRAWAL_CONTRACT_UPGRADE
- Senate Approves the new Withdrawal Contract. From now on Portal references to the new implementation address
- Then, anyone can call
fetchUpgradeProposal
:fetchUpgradeProposal,
notifies the Portal.- Portal proposes a new implementation on Withdrawal Contract with the TYPE of
UPGRADE
. - Withdrawal Contracts pointing the old implementation enters into Recovery Mode.
- Owners can approve the proposal and migrate to a new implementation, exiting from the Recovery Mode.
{% hint style="success" %}
If the fetchUpgradeProposal
is called by the Owner, the proposal is also automatically approved.
{% endhint %}