Detect changes, deploy new contracts, create a governance proposal that repoints proxies at new contracts.
Current Behavior
Governance now owns Proxy contracts, so yarn run upgrade no longer works to upgrade contract changes on specified network. (The script at packages/protocol/scripts/truffle/upgrade.ts is outdated, as it assumes the MultiSig contract is deployed. However, we don't deploy it anymore, so the script breaks.)
hotfixes have fewer timing dependencies compared to governance proposal phases
hotfixes might seem centrally unilateral from an optics perspective
Concrete steps:
migrate functionality from protocol upgrade script to contractkit for constructing proxy logic update transaction
add functionality to contractkit Governance wrapper for <encoding/hashing> transaction and submitting <proposal/hotfix>
add validator commands to CLI for interacting with governance <hotfix/proposals>
migrate functionality from protocol upgrade script to for detecting changes between network bytecode and local bytecode and performing upgrade via CLI/contractkit
Expected Behavior
Detect changes, deploy new contracts, create a governance proposal that repoints proxies at new contracts.
Current Behavior
Governance now owns Proxy contracts, so
yarn run upgrade
no longer works to upgrade contract changes on specified network. (The script atpackages/protocol/scripts/truffle/upgrade.ts
is outdated, as it assumes theMultiSig
contract is deployed. However, we don't deploy it anymore, so the script breaks.)