Skip to content

feat: harden reporting init and admin authorization paths#400

Merged
Baskarayelu merged 3 commits intoRemitwise-Org:mainfrom
Daniel4000-dev:feature/reporting-admin-auth-hardening
Mar 28, 2026
Merged

feat: harden reporting init and admin authorization paths#400
Baskarayelu merged 3 commits intoRemitwise-Org:mainfrom
Daniel4000-dev:feature/reporting-admin-auth-hardening

Conversation

@Daniel4000-dev
Copy link
Copy Markdown
Contributor

Overview
This PR strengthens the security of the

reporting
contract by implementing a two-step admin rotation process and hardening the initialization path to prevent unauthorized takeovers and re-initialization attacks.

Closes #308

Changes
Hardened

init
: Updated the initialization logic to ensure it can only be called once and requires the initial administrator's authorization.
Two-Step Admin Rotation: Added a secure

propose_new_admin
and

accept_admin_rotation
flow, mitigating the risk of accidental or malicious admin loss.
Result-Based Error Handling: Refactored administrative functions (

configure_addresses
,

archive_old_reports
,

cleanup_old_reports
) to return Result types with specific error codes instead of panicking.
NatSpec Documentation: Implemented comprehensive documentation for all public functions, detailing security assumptions and error states.
Workspace Stability: Fixed pre-existing compilation errors in remitwise-common and duplication in the reporting tests.
Verification Results
Added 5 new test cases covering the entire admin rotation lifecycle and unauthorized access attempts.
All 53 tests in the

reporting
package are passing successfully.
Verified manual security assumptions for cross-contract authorization.

@Baskarayelu Baskarayelu merged commit ec0060d into Remitwise-Org:main Mar 28, 2026
2 of 3 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.

Harden reporting init and admin rotation authorization

2 participants