-
Notifications
You must be signed in to change notification settings - Fork 45
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
Suggestion: improved proposal ops #140
Comments
Thanks for the suggestion! Can you expand on your vision here a bit more? We have some ideas for how to improve tooling in this repo, but it's mainly around safety checks around state changes, for example running various assertions about the state diff in a I'm not too familiar with forge-proposal-simulator, but it seems to basically use a similar approach with the |
The Forge Proposal Simulator is designed to help eliminate bugs in governance proposals. It does this in two ways:
To properly integrate this tool and get the full benefits, you would likely need to move your governance proposal creation to the repo where the smart contracts and integration test suite lives, but I'm sure there's other ways around this if you don't want to move things around too much. In most smart contract protocols today, governance proposals and deployment scripts are some of the least audited parts of the codebase because they are expected to be secure, or not do anything incorrectly. These assumptions often turn out to be wrong, so we built this tool to help solve this pain point and hopefully get rid of bugs that could be easily caught with checks and a run against the existing integration test suite post proposal. The main benefit you would get from day 1 using this tool is there would not be a need to write a JSON file that specifies all targets, calls, parameters, and values. Instead, you could write the proposal straight in readable Solidity, which would then be extracted into calls for the multisig wallet to make via multicall. This is what a proposal would look like from an example in our docs: You can learn more about Forge Proposal Simulator in the docs, reading the code, or reach out directly and I can walk you through things. |
Another benefit is you could consolidate and make your addresses system easier to use https://github.com/ethereum-optimism/superchain-ops/blob/main/tasks/sep/metal-001-MCP-L1/SignFromJson.s.sol#L396-L404 Instead would look more like this |
I propose using a framework like forge-proposal-simulator to standardize how proposals are generated.
The text was updated successfully, but these errors were encountered: