@@ -4,8 +4,8 @@ use serde::{Deserialize, Serialize, Serializer};
4
4
use solana_account_decoder:: {
5
5
parse_token:: { UiAccountState , UiMint , UiMultisig , UiTokenAccount , UiTokenAmount } ,
6
6
parse_token_extension:: {
7
- UiDefaultAccountState , UiExtension , UiInterestBearingConfig , UiMemoTransfer ,
8
- UiMintCloseAuthority , UiTransferFeeAmount , UiTransferFeeConfig ,
7
+ UiCpiGuard , UiDefaultAccountState , UiExtension , UiInterestBearingConfig , UiMemoTransfer ,
8
+ UiMintCloseAuthority , UiPermanentDelegate , UiTransferFeeAmount , UiTransferFeeConfig ,
9
9
} ,
10
10
} ;
11
11
use solana_cli_output:: { display:: writeln_name_value, OutputFormat , QuietDisplay , VerboseDisplay } ;
@@ -607,11 +607,11 @@ fn display_ui_extension(
607
607
writeln_name_value ( f, " Transfer fees withheld:" , & withheld_amount. to_string ( ) )
608
608
}
609
609
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
+ }
615
615
}
616
616
UiExtension :: ConfidentialTransferMint ( _) => unimplemented ! ( ) ,
617
617
UiExtension :: ConfidentialTransferAccount ( _) => unimplemented ! ( ) ,
@@ -656,16 +656,25 @@ fn display_ui_extension(
656
656
rate_authority. as_ref ( ) . unwrap_or ( & String :: new ( ) ) ,
657
657
)
658
658
}
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
+ }
659
671
// ExtensionType::Uninitialized is a hack to ensure a mint/account is never the same length as a multisig
660
672
UiExtension :: Uninitialized => Ok ( ( ) ) ,
661
673
UiExtension :: UnparseableExtension => writeln_name_value (
662
674
f,
663
675
" Unparseable extension:" ,
664
676
"Consider upgrading to a newer version of spl-token" ,
665
677
) ,
666
- // XXX HANA this is needed temporarily to make monorepo ci happy while the new cases are added
667
- #[ allow( unreachable_patterns) ]
668
- _ => unimplemented ! ( ) ,
669
678
}
670
679
}
671
680
0 commit comments