Skip to content
This repository was archived by the owner on Mar 11, 2025. It is now read-only.

Commit f5133d6

Browse files
committed
token-cli: display CpiGuard and PermanentDelegate
also dont display MintCloseAuthority line if revoked
1 parent 0e530fa commit f5133d6

File tree

1 file changed

+19
-10
lines changed

1 file changed

+19
-10
lines changed

token/cli/src/output.rs

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ use serde::{Deserialize, Serialize, Serializer};
44
use solana_account_decoder::{
55
parse_token::{UiAccountState, UiMint, UiMultisig, UiTokenAccount, UiTokenAmount},
66
parse_token_extension::{
7-
UiDefaultAccountState, UiExtension, UiInterestBearingConfig, UiMemoTransfer,
8-
UiMintCloseAuthority, UiTransferFeeAmount, UiTransferFeeConfig,
7+
UiCpiGuard, UiDefaultAccountState, UiExtension, UiInterestBearingConfig, UiMemoTransfer,
8+
UiMintCloseAuthority, UiPermanentDelegate, UiTransferFeeAmount, UiTransferFeeConfig,
99
},
1010
};
1111
use solana_cli_output::{display::writeln_name_value, OutputFormat, QuietDisplay, VerboseDisplay};
@@ -607,11 +607,11 @@ fn display_ui_extension(
607607
writeln_name_value(f, " Transfer fees withheld:", &withheld_amount.to_string())
608608
}
609609
UiExtension::MintCloseAuthority(UiMintCloseAuthority { close_authority }) => {
610-
writeln_name_value(
611-
f,
612-
" Close authority:",
613-
close_authority.as_ref().unwrap_or(&String::new()),
614-
)
610+
if let Some(close_authority) = close_authority {
611+
writeln_name_value(f, " Close authority:", close_authority)
612+
} else {
613+
Ok(())
614+
}
615615
}
616616
UiExtension::ConfidentialTransferMint(_) => unimplemented!(),
617617
UiExtension::ConfidentialTransferAccount(_) => unimplemented!(),
@@ -656,16 +656,25 @@ fn display_ui_extension(
656656
rate_authority.as_ref().unwrap_or(&String::new()),
657657
)
658658
}
659+
UiExtension::CpiGuard(UiCpiGuard { lock_cpi }) => writeln_name_value(
660+
f,
661+
" CPI Guard:",
662+
if *lock_cpi { "Enabled" } else { "Disabled" },
663+
),
664+
UiExtension::PermanentDelegate(UiPermanentDelegate { delegate }) => {
665+
if let Some(delegate) = delegate {
666+
writeln_name_value(f, " Permanent delegate:", delegate)
667+
} else {
668+
Ok(())
669+
}
670+
}
659671
// ExtensionType::Uninitialized is a hack to ensure a mint/account is never the same length as a multisig
660672
UiExtension::Uninitialized => Ok(()),
661673
UiExtension::UnparseableExtension => writeln_name_value(
662674
f,
663675
" Unparseable extension:",
664676
"Consider upgrading to a newer version of spl-token",
665677
),
666-
// XXX HANA this is needed temporarily to make monorepo ci happy while the new cases are added
667-
#[allow(unreachable_patterns)]
668-
_ => unimplemented!(),
669678
}
670679
}
671680

0 commit comments

Comments
 (0)