Skip to content

[#736] Contracts: Add deterministic admin proposal nonce for governance action replay protection#879

Merged
Junirezz merged 2 commits into
Junirezz:mainfrom
esthertitilayo-dev:fix/736-contracts-add-deterministic-admin-proposal-nonce-for-governance-action-replay-protection
Jun 29, 2026
Merged

[#736] Contracts: Add deterministic admin proposal nonce for governance action replay protection#879
Junirezz merged 2 commits into
Junirezz:mainfrom
esthertitilayo-dev:fix/736-contracts-add-deterministic-admin-proposal-nonce-for-governance-action-replay-protection

Conversation

@esthertitilayo-dev

Copy link
Copy Markdown
Contributor

Summary

  • Add admin.rs with AdminProposal records and monotonic AdminProposalNonce
  • propose_admin returns proposal ID; accept_admin / cancel_admin_rotation require proposal_id and reject replays
  • Storage migration v3 backfills legacy PendingAdmin into proposal 1
  • Replay tests in proxy_tests.rs

Closes #736

Test plan

  • cargo test -p vault test_admin passes in CI
  • Sequential proposals get increasing IDs
  • Double-accept and cancel-then-accept return VaultError

Introduce AdminProposal storage with monotonic nonces, require proposal_id
on accept/cancel, reject replayed governance actions, and migrate legacy
PendingAdmin state. Closes Junirezz#736.
@drips-wave

drips-wave Bot commented Jun 29, 2026

Copy link
Copy Markdown

@esthertitilayo-dev 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! 🚀

Learn more about application limits

@esthertitilayo-dev esthertitilayo-dev force-pushed the fix/736-contracts-add-deterministic-admin-proposal-nonce-for-governance-action-replay-protection branch from 1ec1001 to 1a742e7 Compare June 29, 2026 16:45
…oposal-nonce-for-governance-action-replay-protection
@Junirezz Junirezz merged commit c4ec83c into Junirezz:main Jun 29, 2026
7 of 8 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.

Contracts: Add deterministic admin proposal nonce for governance action replay protection

2 participants