Skip to content

Feat/two step admin rotation - #1133

Merged
Ejirowebfi merged 2 commits into
Favourorg:mainfrom
marvel6828:feat/two-step-admin-rotation
Aug 24, 2026
Merged

Feat/two step admin rotation#1133
Ejirowebfi merged 2 commits into
Favourorg:mainfrom
marvel6828:feat/two-step-admin-rotation

Conversation

@marvel6828

Copy link
Copy Markdown
Contributor

Closes

closes #1012

- Add propose_admin, accept_admin, cancel_admin_proposal entrypoints
- Proposals expire after ADMIN_PROPOSAL_TTL_LEDGERS (~28 h) and require
  the incoming address to sign, eliminating accidental rotation to an
  uncontrolled key
- transfer_admin / update_admin become aliases for propose_admin;
  no single-step rotation path remains
- New error codes: NoPendingProposal (24), ProposalExpired (25)
- New events: adm_prop, adm_acc, adm_can
- Bump CURRENT_SCHEMA_VERSION to 4; add schema-v4 migration step
  (adds pending_admin / pending_admin_expiry to FactoryState)
- Replace single-step admin tests with full two-step test suite
  (pending->accept, cancel, wrong proposee, overwrite, expiry,
   legacy aliases, schema-v4 migration)
- Update docs/contract-abi.md, docs/incident-response.md,
  docs/mainnet-deployment-checklist.md, README.md

Closes Favourorg#1095
@Ejirowebfi
Ejirowebfi merged commit 927e5a2 into Favourorg:main Aug 24, 2026
17 of 20 checks passed
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 1.5.6 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

🟠 Admin rotation is single-step and unverified: one typo permanently bricks the factory

2 participants