@@ -6,6 +6,11 @@ use std::path::{Path, PathBuf};
66use std:: str:: FromStr ;
77
88use color_eyre:: eyre:: Result ;
9+ use masp_primitives:: zip32:: sapling:: PseudoExtendedKey ;
10+ use masp_primitives:: zip32:: {
11+ ExtendedFullViewingKey as MaspExtendedViewingKey ,
12+ ExtendedSpendingKey as MaspExtendedSpendingKey ,
13+ } ;
914use namada_sdk:: address:: { Address , InternalAddress } ;
1015use namada_sdk:: chain:: ChainId ;
1116use namada_sdk:: ethereum_events:: EthAddress ;
@@ -16,7 +21,6 @@ use namada_sdk::masp::fs::FsShieldedUtils;
1621use namada_sdk:: masp:: { ShieldedContext , * } ;
1722use namada_sdk:: wallet:: { DatedSpendingKey , DatedViewingKey , Wallet } ;
1823use namada_sdk:: { Namada , NamadaImpl } ;
19- use masp_primitives:: zip32:: sapling:: PseudoExtendedSpendingKey ;
2024
2125use super :: args;
2226use crate :: cli:: utils;
@@ -44,7 +48,7 @@ pub type WalletAddrOrNativeToken = FromContext<AddrOrNativeToken>;
4448
4549/// A raw extended spending key (bech32m encoding) or an alias of an extended
4650/// spending key in the wallet
47- pub type WalletSpendingKey = FromContext < PseudoExtendedSpendingKey > ;
51+ pub type WalletSpendingKey = FromContext < PseudoExtendedKey > ;
4852
4953/// A raw dated extended spending key (bech32m encoding) or an alias of an
5054/// extended spending key in the wallet
@@ -585,33 +589,45 @@ impl ArgFromMutContext for ExtendedSpendingKey {
585589 }
586590}
587591
588- impl ArgFromMutContext for PseudoExtendedSpendingKey {
592+ impl ArgFromMutContext for PseudoExtendedKey {
589593 fn arg_from_mut_ctx (
590594 ctx : & mut ChainContext ,
591595 raw : impl AsRef < str > ,
592596 ) -> Result < Self , String > {
593597 let raw = raw. as_ref ( ) ;
594598 // Either the string is a raw extended spending key
595- ExtendedSpendingKey :: from_str ( raw) . map (
596- |x| PseudoExtendedSpendingKey :: from_spending_key ( x. into ( ) )
597- ) . or_else ( |_parse_err| {
598- ExtendedViewingKey :: from_str ( raw) . map (
599- |x| PseudoExtendedSpendingKey :: from_viewing_key ( x. into ( ) )
600- )
601- } ) . or_else ( |_parse_err| {
602- // Or it is a stored alias of one
603- ctx. wallet
604- . find_spending_key ( raw, None )
605- . map ( |k| PseudoExtendedSpendingKey :: from_spending_key ( k. key . into ( ) ) )
606- . map_err ( |_find_err| format ! ( "Unknown spending key {}" , raw) )
607- } ) . or_else ( |_parse_err| {
608- // Or it is a stored alias of one
609- ctx. wallet
610- . find_viewing_key ( raw)
611- . copied ( )
612- . map ( |k| PseudoExtendedSpendingKey :: from_viewing_key ( k. key . into ( ) ) )
613- . map_err ( |_find_err| format ! ( "Unknown viewing key {}" , raw) )
614- } )
599+ ExtendedSpendingKey :: from_str ( raw)
600+ . map ( |x| PseudoExtendedKey :: from ( MaspExtendedSpendingKey :: from ( x) ) )
601+ . or_else ( |_parse_err| {
602+ ExtendedViewingKey :: from_str ( raw) . map ( |x| {
603+ PseudoExtendedKey :: from ( MaspExtendedViewingKey :: from ( x) )
604+ } )
605+ } )
606+ . or_else ( |_parse_err| {
607+ // Or it is a stored alias of one
608+ ctx. wallet
609+ . find_spending_key ( raw, None )
610+ . map ( |k| {
611+ PseudoExtendedKey :: from ( MaspExtendedSpendingKey :: from (
612+ k. key ,
613+ ) )
614+ } )
615+ . map_err ( |_find_err| {
616+ format ! ( "Unknown spending key {}" , raw)
617+ } )
618+ } )
619+ . or_else ( |_parse_err| {
620+ // Or it is a stored alias of one
621+ ctx. wallet
622+ . find_viewing_key ( raw)
623+ . copied ( )
624+ . map ( |k| {
625+ PseudoExtendedKey :: from ( MaspExtendedViewingKey :: from (
626+ k. key ,
627+ ) )
628+ } )
629+ . map_err ( |_find_err| format ! ( "Unknown viewing key {}" , raw) )
630+ } )
615631 }
616632}
617633
@@ -693,12 +709,18 @@ impl ArgFromMutContext for TransferSource {
693709 Address :: arg_from_ctx ( ctx, raw)
694710 . map ( Self :: Address )
695711 . or_else ( |_| {
696- ExtendedSpendingKey :: arg_from_mut_ctx ( ctx, raw)
697- . map ( |x| Self :: ExtendedSpendingKey ( PseudoExtendedSpendingKey :: from_spending_key ( x. into ( ) ) ) )
712+ ExtendedSpendingKey :: arg_from_mut_ctx ( ctx, raw) . map ( |x| {
713+ Self :: ExtendedSpendingKey ( PseudoExtendedKey :: from (
714+ MaspExtendedSpendingKey :: from ( x) ,
715+ ) )
716+ } )
698717 } )
699718 . or_else ( |_| {
700- ExtendedViewingKey :: arg_from_mut_ctx ( ctx, raw)
701- . map ( |x| Self :: ExtendedSpendingKey ( PseudoExtendedSpendingKey :: from_viewing_key ( x. into ( ) ) ) )
719+ ExtendedViewingKey :: arg_from_mut_ctx ( ctx, raw) . map ( |x| {
720+ Self :: ExtendedSpendingKey ( PseudoExtendedKey :: from (
721+ MaspExtendedViewingKey :: from ( x) ,
722+ ) )
723+ } )
702724 } )
703725 }
704726}
0 commit comments