Skip to content

Gate execute_proposal to proposer or allow-listed executors - #362

Merged
snowrugar-beep merged 1 commit into
VertexChainLabs:mainfrom
ameeribro4-sudo:fix/issue-123-gate-execute-proposal
Jul 22, 2026
Merged

Gate execute_proposal to proposer or allow-listed executors#362
snowrugar-beep merged 1 commit into
VertexChainLabs:mainfrom
ameeribro4-sudo:fix/issue-123-gate-execute-proposal

Conversation

@ameeribro4-sudo

Copy link
Copy Markdown
Contributor

Summary

Implemented a production-ready fix while maintaining the existing architecture and coding standards.

Changes

  • Added NotInExecutorAllowlist error variant to GovernanceError
  • Added ExecutorAllowlist storage key for managing the executor allow-list
  • Added is_admin_config_key helper to identify admin-protected config keys (admin, required_approvals, executor_allowlist)
  • Added set_executor_allowlist (admin-only) and get_executor_allowlist public functions
  • Updated execute_proposal to check the allow-list for admin-key proposals, while still allowing the proposer to execute their own proposals
  • Regular (non-admin) config keys remain executable by anyone after sufficient votes
  • Wrote 6 new tests: empty allow-list, admin set, non-admin rejected, blocked non-allow-listed caller, allowed proposer, allowed executor
  • All 20 tests pass
  • No warnings
  • Ensured no unrelated changes were introduced

Closes #123

@ameeribro4-sudo
ameeribro4-sudo force-pushed the fix/issue-123-gate-execute-proposal branch from 7dd9831 to 7f18908 Compare July 22, 2026 21:27

@snowrugar-beep snowrugar-beep left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@snowrugar-beep
snowrugar-beep merged commit 8853020 into VertexChainLabs:main Jul 22, 2026
20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Governance: gate execute_proposal to proposer or maintainers, not "anyone authenticated"

2 participants