Skip to content

feat: RBAC wave — role validation, grant idempotency, role-based gating, dep audit - #869

Open
nekwasar wants to merge 5 commits into
BCPathway:mainfrom
nekwasar:feat/stellar-drips-wave-761-768-769-770
Open

feat: RBAC wave — role validation, grant idempotency, role-based gating, dep audit#869
nekwasar wants to merge 5 commits into
BCPathway:mainfrom
nekwasar:feat/stellar-drips-wave-761-768-769-770

Conversation

@nekwasar

Copy link
Copy Markdown

Stellar Wave RBAC epic (Wave 2) — four issues:

Closes #761
Closes #768
Closes #769
Closes #770

nekwasar added 4 commits August 31, 2026 10:54
grant_role now reverts with the new AdminError::RoleAlreadyGranted when the
target address already holds the role, instead of silently no-op'ing the
bitmask OR. Adds the error variant (code 22), updates the error-code docs and
the PascalCase variant test, and converts the grant-idempotency fuzz test into
one that asserts the repeat grant reverts.

Closes BCPathway#768
Role is a contracttype enum serialized by case-name symbol, so an
unrecognized discriminant fails to decode in try_from_val before the
contract's require_valid_role guard runs. Locks that boundary with a
round-trip test for every defined variant plus an unknown-name rejection
case, and extends the error-code variant test to the new RoleAlreadyGranted
(also carries the Admin-vs-Pauser role-separation test that shares this
file).

Closes BCPathway#761
Replaces the legacy caller != get_admin() address-equality checks in
pause/unpause with the new admin::is_admin_or_pauser role-mask helper. The
admin always holds the Admin role bit, so behavior is unchanged while the
gate is now role-based and survives admin-entry changes.

Closes BCPathway#769
Resolves the workspace with cargo metadata and walks the full dependency
graph with all features via cargo tree, so manifest cycles, malformed
feature declarations and feature-isolation breakage fail CI instead of
surfacing at deploy time.

Closes BCPathway#770
@drips-wave

drips-wave Bot commented Aug 31, 2026

Copy link
Copy Markdown

@nekwasar 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

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

Labels

None yet

Projects

None yet

2 participants