@@ -90,21 +90,28 @@ impl WalletOpts {
9090 pub async fn signer ( & self ) -> Result < WalletSigner > {
9191 trace ! ( "start finding signer" ) ;
9292
93+ let get_env = |key : & str | {
94+ std:: env:: var ( key)
95+ . map_err ( |_| eyre:: eyre!( "{key} environment variable is required for signer" ) )
96+ } ;
97+
9398 let signer = if self . ledger {
9499 utils:: create_ledger_signer ( self . raw . hd_path . as_deref ( ) , self . raw . mnemonic_index )
95100 . await ?
96101 } else if self . trezor {
97102 utils:: create_trezor_signer ( self . raw . hd_path . as_deref ( ) , self . raw . mnemonic_index )
98103 . await ?
99104 } else if self . aws {
100- let key_id = std :: env :: var ( "AWS_KMS_KEY_ID" ) ?;
105+ let key_id = get_env ( "AWS_KMS_KEY_ID" ) ?;
101106 WalletSigner :: from_aws ( key_id) . await ?
102107 } else if self . gcp {
103- let project_id = std:: env:: var ( "GCP_PROJECT_ID" ) ?;
104- let location = std:: env:: var ( "GCP_LOCATION" ) ?;
105- let keyring = std:: env:: var ( "GCP_KEYRING" ) ?;
106- let key_name = std:: env:: var ( "GCP_KEY_NAME" ) ?;
107- let key_version = std:: env:: var ( "GCP_KEY_VERSION" ) ?. parse ( ) ?;
108+ let project_id = get_env ( "GCP_PROJECT_ID" ) ?;
109+ let location = get_env ( "GCP_LOCATION" ) ?;
110+ let keyring = get_env ( "GCP_KEYRING" ) ?;
111+ let key_name = get_env ( "GCP_NAME" ) ?;
112+ let key_version = get_env ( "GCP_KEY_VERSION" ) ?
113+ . parse ( )
114+ . map_err ( |_| eyre:: eyre!( "GCP_KEY_VERSION could not be be parsed into u64" ) ) ?;
108115 WalletSigner :: from_gcp ( project_id, location, keyring, key_name, key_version) . await ?
109116 } else if let Some ( raw_wallet) = self . raw . signer ( ) ? {
110117 raw_wallet
0 commit comments