Implement reputation recovery#677
Merged
soomtochukwu merged 6 commits intoJun 1, 2026
Merged
Conversation
|
@Maximum-Prosper is attempting to deploy a commit to the mAzI's projects Team on Vercel. A member of the Team first needs to authorize it. |
soomtochukwu
requested changes
Jun 1, 2026
soomtochukwu
left a comment
Contributor
There was a problem hiding this comment.
- see that the CI checks pass
- If you could fix the merge conflict(s) ASAP
|
@Maximum-Prosper 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! 🚀 |
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.
Closes #460
Title: Implement reputation recovery after inactivity
Description:
This PR adds score recovery to the reputation contract so inactive profiles gradually move back toward the default score after a defined cooldown period.
What changed:
Added last_activity tracking on profiles through the main reputation update paths.
Added a new recover_score contract API for authorized contracts.
Implemented safe recovery math that nudges scores toward the default 5_000 BPS value.
Added a ScoreRecovered event for visibility into recovery actions.
Updated profile mutation paths to refresh activity timestamps consistently.
Added unit tests covering recovery after inactivity and authorization checks.
Behavior:
Recovery only applies after 30 days of inactivity.
If the profile is still active, recovery returns the current score unchanged.
Blacklisted profiles cannot recover.
Recovery is only callable by an authorized contract.
Testing:
Added tests for recovery timing and authorization.
I could not run the Rust test suite here because cargo is not available in this environment.