Skip to content

Migrate governance proposals from v1beta1 to v1 #1282

Closed
@colin-axner

Description

Summary

Our existing governance proposals are based on the SDK version v1beta1 of the x/gov module. Updating to v1 of the x/gov module requires breaking changes.

Problem Definition

Instead of defining governance proposal handlers and proposal types, v1 of the gov module simply executes a list of messages. This is beneficial for many reasons, but one primary one is the ability to atomically commit multiple messages in a single governance proposal. For us this could help with:

  • updating many expired clients at once
  • simplifying UpgradeProposal (currently wraps calls to x/upgrade), an IBC chain upgrade could simply be combined with a x/upgrade message
  • delegation of responsibility for IBC related proposals to trusted groups (edit)

The new approach is also cleaner as there is less fragmentation in handlers/types.

Using v1beta1 with a MsgExecLegacyContent works alright. You can still atomically commit multiple messages with legacy code, but it does not allow for delegation of authority to trusted groups

Proposal

Readjust our proposal handlers into msg_server handler and change our proposal types to message types. The fixes are primarily for code hygiene and keeping up to date with the SDK, so on the lower priority side. This issue should be split up into smaller issues for each proposal type.

The existing governance handlers should be removed (and the registration on the router in simapp should be removed). We should add migration documentation explaining how to use the messages

Approved signers can be a parameter in IBC

Issues and tasks


For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged/assigned

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    epictype: featureNew features, sub-features or integrations

    Type

    No type

    Projects

    • Status

      Done 🥳

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions