Optional Tor Send/Listen Functionality (#226)
* udpate for beta release * initial tor explorations * rustfmt * basic tor tx send working * rustfmt * add tor proxy info to config file * rustfmt * add utilities to output tor hidden service configuration files * output tor config as part of listener startup * rustfmt * fully automate config and startup of tor process * rustfmt * remove unnecessary process kill commands from listener * rustfmt * assume defaults for tor sending config if section doesn't exist in grin-wallet.toml * rustfmt * ignore tor dev test * update default paths output by config, compilation + confirmed working on windows * rustfmt * fix on osx/unix * add timeout to tor connector, remove unwrap in client * allow specifiying tor address without 'http://[].onion' on the command line * fix api test * rustfmt * update address derivation path as per spec * rustfmt * move tor init to separate function * rustfmt * re-ignore tor dev test * listen on tor by default if tor available * rustfmt * test fix * remove explicit send via tor flag, and assume tor if address fits * rustfmt
This commit is contained in:
@@ -15,7 +15,7 @@
|
||||
//! Default wallet lifecycle provider
|
||||
|
||||
use crate::config::{
|
||||
config, GlobalWalletConfig, GlobalWalletConfigMembers, WalletConfig, GRIN_WALLET_DIR,
|
||||
config, GlobalWalletConfig, GlobalWalletConfigMembers, TorConfig, WalletConfig, GRIN_WALLET_DIR,
|
||||
};
|
||||
use crate::core::global;
|
||||
use crate::keychain::Keychain;
|
||||
@@ -74,6 +74,7 @@ where
|
||||
file_name: &str,
|
||||
wallet_config: Option<WalletConfig>,
|
||||
logging_config: Option<LoggingConfig>,
|
||||
tor_config: Option<TorConfig>,
|
||||
) -> Result<(), Error> {
|
||||
let mut default_config = GlobalWalletConfig::for_chain(chain_type);
|
||||
let logging = match logging_config {
|
||||
@@ -85,13 +86,24 @@ where
|
||||
};
|
||||
let wallet = match wallet_config {
|
||||
Some(w) => w,
|
||||
None => match default_config.members {
|
||||
Some(m) => m.wallet,
|
||||
None => match default_config.members.as_ref() {
|
||||
Some(m) => m.clone().wallet.clone(),
|
||||
None => WalletConfig::default(),
|
||||
},
|
||||
};
|
||||
let tor = match tor_config {
|
||||
Some(t) => Some(t),
|
||||
None => match default_config.members.as_ref() {
|
||||
Some(m) => m.clone().tor.clone(),
|
||||
None => Some(TorConfig::default()),
|
||||
},
|
||||
};
|
||||
default_config = GlobalWalletConfig {
|
||||
members: Some(GlobalWalletConfigMembers { wallet, logging }),
|
||||
members: Some(GlobalWalletConfigMembers {
|
||||
wallet,
|
||||
tor,
|
||||
logging,
|
||||
}),
|
||||
..default_config
|
||||
};
|
||||
let mut config_file_name = PathBuf::from(self.data_dir.clone());
|
||||
|
||||
Reference in New Issue
Block a user