-
Notifications
You must be signed in to change notification settings - Fork 98
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Auto generate metadata for TC proposals #900
Conversation
551abac
to
402c3d2
Compare
proposalId, | ||
proposal.description | ||
]); | ||
return `Calldata: ${calldata}\nMetadata Calldata: ${registerMetadataCalldata}\nExecute Calldata: ${executeCalldata}`; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's strange to me that we're returning a formatted string. If we want to log this to console, we should do that explicitly; the string returned should just be the pure calldata, imo.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This function generates the string of calldata, returns that and it is later logged at the top level. I personally like that so you don't have logging going on several layers of abstraction down, it's clear where it's coming from
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep, that's what I'm saying - the logging should happen at the higher level
rename to podCalldata rather than timelockCalldata
Feature: Auto-generate the metadata for TC proposals
Summary
Automatically generates the metadata for registering TC proposals in the
GovernanceMetadataRegistry
: https://etherscan.io/address/0xd78Cd3AaE6168BE43B548877aAc68312B9df9AFbContext
Registering proposals in the metadata registry is currently too high friction. It requires a seperate transaction by an engineer after a proposal has been queued on the TC timelock.
Solution
This PR outputs the calldata for the register metadata transaction that should be submitted to the registry at the same time the proposal is queued.
The
podId
is known for the TC (25) and the timelockproposalID
can be computed deterministically ahead of time locally. Themetadata
human readable description of what the proposal does is taken from theproposals/description/fip_x.ts
proposal.New proposal submission flow
When submitting a TC proposal on the TC safe:
DEPLOY_FILE=fip_x npm run calldata
Calldata
(which will schedule the proposal) and theMetadata calldata
(which will register the human readable description)a. Call to the TC timelock (
0xe0C7DE94395B629860Cbb3c42995F300F56e6d7a
) with theCalldata
b. Call to the Governance Metadata registry (
0xd78Cd3AaE6168BE43B548877aAc68312B9df9AFb
) withMetadata calldata
PR Checklist - Feature (Proposal)