skalenetwork / upgrade-tools

Scripts to support upgrades of smart contracts
GNU Affero General Public License v3.0
1 stars 4 forks source link

Improve predeployed contract upgrading mechanism #190

Open DmytroNazarenko opened 1 year ago

DmytroNazarenko commented 1 year ago

OKR: Q2 2023

Currently predeployed upgrade mechanism needs a lot of interaction and executing a lot of manual commands by chain owner. We need to automate our predeployed upgrading pipeline to minimize interactions with chain owners.

Possible solution is to create a smart contract on mainnet to manage upgrades on all skale-schains. The contract will interact with skale-manager and then will send upgrade commands throw IMA for all SKALE chains.

DmytroNazarenko commented 1 year ago

Important Q: Can we have a full control of predeployeds upgrade? @kladkogex @payvint

Solution A. Centralized contract upgrade: same versions of contracts + easy upgrade procedure + upgrade responsibilities -

Solution B. Deploy implementations + generate transactions for upgrade.

  1. Add our key to owner multisigs
  2. Ask all multisigs create a delegator certificate for add transactions
  3. Connect GnosisSafe to Admin UI (with WalletConnect)
  4. SafeApp

@DimaStebaev to add more info

DimaStebaev commented 1 year ago

I also consider a good idea for option B to create a portal which contains information about versions of all smart contracts on all SKALE chains. It simplifies our life in nearest future and could become an entry point for further automated or semi-automated solution.

DmytroNazarenko commented 1 year ago

per @kladkogex - solution should be decentralized per @DimaStebaev - using current upgrade-scripts and write readable instructions for it, then @EvgeniyZZ to review it

DmytroNazarenko commented 1 year ago

Solution proposal: https://github.com/skalenetwork/upgrade-tools/issues/188