use ACTIVE/BANNED masternode statuses, revoked masternodes are banned
What changed, and why it matters
This commit simplifies how the Stack Wallet app labels Firo masternodes. Previously, the app distinguished between 'banned' and 'revoked' masternodes, showing banned ones in orange and revoked ones in red. Now both states are treated as 'banned' and shown in red. This is a UI/status-label change; it does not appear to alter how transactions are signed, validated, or how funds are handled.
No security action required. Treat as a routine UI/status cleanup. If the change was intended to reflect a protocol-level update in Firo masternode status naming, verify the upstream Firo daemon documentation aligns with this mapping.
Security signals we found
No security-relevant code paths modified
UI-only status label and color change
No input validation, parsing, or cryptographic changes
Evidence from the diff
The patch removes the MasternodeStatus.revoked enum value and merges the revoked condition (revocationReason != 0) into the banned condition (poseBanHeight != -1). The UI color mapping now uses red for banned and green for active, dropping the orange banned and red revoked distinction. There is no change to wallet logic, cryptography, RPC parsing beyond the status enum, or transaction handling.
Changed components
lib/pages/masternodes/sub_widgets/masternodes_list.dartlib/wallets/wallet/impl/firo_wallet.dartInspect captured patch +5 / −6
### lib/pages/masternodes/sub_widgets/masternodes_list.dart
@@ -108,8 +108,7 @@ class _MasternodeCard extends StatelessWidget {
decoration: BoxDecoration(
color: switch (status) {
MasternodeStatus.active => stack.accentColorGreen,
- MasternodeStatus.banned => stack.accentColorOrange,
- MasternodeStatus.revoked => stack.accentColorRed,
+ MasternodeStatus.banned => stack.accentColorRed,
},
borderRadius: BorderRadius.circular(8),
),
### lib/wallets/wallet/impl/firo_wallet.dart
@@ -34,8 +34,7 @@ import 'firo_transaction_type.dart';
enum MasternodeStatus {
active("ACTIVE"),
- banned("BANNED"),
- revoked("REVOKED");
+ banned("BANNED");
const MasternodeStatus(this.label);
@@ -82,8 +81,9 @@ class MasternodeInfo {
});
MasternodeStatus get status {
- if (revocationReason != 0) return MasternodeStatus.revoked;
- if (poseBanHeight != -1) return MasternodeStatus.banned;
+ if (revocationReason != 0 || poseBanHeight != -1) {
+ return MasternodeStatus.banned;
+ }
return MasternodeStatus.active;
}
Why this scored 16/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.