I added a creator-only curve migration section to the creator key dashboard's Governance tab. It lists pending proposals with their proposed parameters, a live timelock countdown, and vote approval percentage, and it keeps the Execute button disabled until the vote has reached quorum with majority support and the timelock has fully elapsed. Executed migrations are kept in a history section showing the parameters they applied and the date they were applied. The work added six new files (types, pure utilities, service, hook, component, and documentation), extended two existing files, and added forty-nine passing tests across six test files. - #1011
Merged
Merged
Conversation
|
@DevScoopee Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
…hboard's Governance tab. It lists pending proposals with their proposed parameters, a live timelock countdown, and vote approval percentage, and it keeps the Execute button disabled until the vote has reached quorum with majority support and the timelock has fully elapsed. Executed migrations are kept in a history section showing the parameters they applied and the date they were applied. The work added six new files (types, pure utilities, service, hook, component, and documentation), extended two existing files, and added forty-nine passing tests across six test files. A curve migration changes the bonding-curve parameters that every holder buys and sells at, so rather than being applied directly it is handled as a governance action with two independent gates. The vote must reach quorum and carry strictly more weight in favour than against, and the post-vote timelock must have elapsed so holders have a window to exit before the new pricing goes live. Both gates are implemented as pure functions in a shared utilities module, which means the panel derives the Execute button's disabled state and its explanatory text from the same source, so the message can never contradict the button. The panel itself only renders, and follows the patterns of the vesting panel that already sits nearby in the codebase. The contract call is assembled by a pure helper so the exact call can be verified in tests without signing anything, and on success both of the repository's cache layers are invalidated so the migration appears in history with its real applied parameters. Creator-only visibility reuses the page's existing owner check, so for non-creators the section never renders and the query never runs. Closes accesslayerorg#985
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A curve migration changes the bonding-curve parameters that every holder buys and sells at, so rather than being applied directly it is handled as a governance action with two independent gates. The vote must reach quorum and carry strictly more weight in favour than against, and the post-vote timelock must have elapsed so holders have a window to exit before the new pricing goes live. Both gates are implemented as pure functions in a shared utilities module, which means the panel derives the Execute button's disabled state and its explanatory text from the same source, so the message can never contradict the button. The panel itself only renders, and follows the patterns of the vesting panel that already sits nearby in the codebase. The contract call is assembled by a pure helper so the exact call can be verified in tests without signing anything, and on success both of the repository's cache layers are invalidated so the migration appears in history with its real applied parameters. Creator-only visibility reuses the page's existing owner check, so for non-creators the section never renders and the query never runs.
Closes #985