fix(firo): temporarily disable masternode management until its fixed
What changed, and why it matters
This commit simply hides the 'Masternodes' menu option for Firo wallets in both mobile and desktop versions of Stack Wallet. The underlying masternode management code is not removed or changed, only the user-facing button that opens it is commented out. The commit message says this is a temporary disablement 'until its fixed,' but gives no details about what is broken or whether it is security-related.
Treat this as a routine feature-disable commit unless additional vendor or researcher information emerges explaining a specific security defect in the masternode management feature. If such information is published, re-evaluate and consider updating or removing the underlying masternode code rather than only hiding the UI entry point.
Security signals we found
Feature temporarily disabled without explanation of underlying issue
No changes to security-critical code paths
No mention of vulnerability, bug class, or attack scenario in commit or supplied references
Evidence from the diff
The patch comments out two conditional UI blocks that add a ‘Masternodes’ navigation item when the wallet is a non-view-only FiroWallet. One block is in the mobile wallet view bottom navigation bar, the other in the desktop wallet features list. The import for MasternodesHomeView is removed from the mobile file. No logic changes are made to masternode handling, authentication, transaction signing, or wallet security.
Changed components
lib/pages/wallet_view/wallet_view.dartlib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_features.dartInspect captured patch +23 / −25
diff --git a/lib/pages/wallet_view/wallet_view.dart b/lib/pages/wallet_view/wallet_view.dart
index 04c0888..5d15365 100644
--- a/lib/pages/wallet_view/wallet_view.dart
+++ b/lib/pages/wallet_view/wallet_view.dart
@@ -96,7 +96,6 @@ import '../coin_control/coin_control_view.dart';
import '../epic_finalize_view/epic_finalize_view.dart';
import '../exchange_view/wallet_initiated_exchange_view.dart';
import '../finalize_view/finalize_view.dart';
-import '../masternodes/masternodes_home_view.dart';
import '../monkey/monkey_view.dart';
import '../more_view/gift_cards_view.dart';
import '../more_view/services_view.dart';
@@ -1208,27 +1207,27 @@ class _WalletViewState extends ConsumerState<WalletView> {
);
},
),
- if (!viewOnly && wallet is FiroWallet)
- WalletNavigationBarItemData(
- label: "Masternodes",
- icon: SvgPicture.asset(
- Assets.svg.recycle,
- height: 20,
- width: 20,
- colorFilter: ColorFilter.mode(
- Theme.of(
- context,
- ).extension<StackColors>()!.bottomNavIconIcon,
- BlendMode.srcIn,
- ),
- ),
- onTap: () {
- Navigator.of(context).pushNamed(
- MasternodesHomeView.routeName,
- arguments: widget.walletId,
- );
- },
- ),
+ // if (!viewOnly && wallet is FiroWallet)
+ // WalletNavigationBarItemData(
+ // label: "Masternodes",
+ // icon: SvgPicture.asset(
+ // Assets.svg.recycle,
+ // height: 20,
+ // width: 20,
+ // colorFilter: ColorFilter.mode(
+ // Theme.of(
+ // context,
+ // ).extension<StackColors>()!.bottomNavIconIcon,
+ // BlendMode.srcIn,
+ // ),
+ // ),
+ // onTap: () {
+ // Navigator.of(context).pushNamed(
+ // MasternodesHomeView.routeName,
+ // arguments: widget.walletId,
+ // );
+ // },
+ // ),
if (wallet is NamecoinWallet)
WalletNavigationBarItemData(
label: "Domains",
diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_features.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_features.dart
index ca0a2ae..f924ad4 100644
--- a/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_features.dart
+++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_wallet_features.dart
@@ -505,9 +505,8 @@ class _DesktopWalletFeaturesState extends ConsumerState<DesktopWalletFeatures> {
if (wallet is SignVerifyInterface && !isViewOnly)
(WalletFeature.sign, Assets.svg.pencil, _onSignPressed),
- if (!isViewOnly && wallet is FiroWallet)
- (WalletFeature.masternodes, Assets.svg.recycle, _onMasternodesPressed),
-
+ // if (!isViewOnly && wallet is FiroWallet)
+ // (WalletFeature.masternodes, Assets.svg.recycle, _onMasternodesPressed),
if (showCoinControl)
(
WalletFeature.coinControl,
Why this scored 12/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.