Skip to content

Commit 6baef0b

Browse files
authored
Merge pull request #187 from ergoplatform/i184-print-conf
add print-safe-config command to share current config with operators …
2 parents 5f0efc5 + 3635c0e commit 6baef0b

File tree

5 files changed

+41
-6
lines changed

5 files changed

+41
-6
lines changed

core/src/cli_commands.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ use ergo_lib::ergotree_ir::chain::address::NetworkPrefix;
33
pub mod bootstrap;
44
pub mod extract_reward_tokens;
55
pub mod prepare_update;
6+
pub mod print_conf;
67
pub mod print_reward_tokens;
78
pub mod transfer_oracle_token;
89
pub mod update_pool;

core/src/cli_commands/print_conf.rs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
use ergo_lib::ergotree_ir::chain::address::AddressEncoder;
2+
3+
use crate::oracle_config::OracleConfig;
4+
use crate::serde::OracleConfigSerde;
5+
6+
pub fn print_safe_config(config: &OracleConfig) {
7+
let safe_config = OracleConfig {
8+
node_ip: "127.0.0.1".to_owned(),
9+
node_api_key: "hello".to_owned(),
10+
oracle_address: AddressEncoder::unchecked_parse_network_address_from_str(
11+
"3Wy3BaCjGDWE3bjjZkNo3aWaMz3cYrePMFhchcKovY9uG9vhpAuW",
12+
)
13+
.unwrap(),
14+
..config.clone()
15+
};
16+
let serde_conf = OracleConfigSerde::from(safe_config);
17+
let s = serde_yaml::to_string(&serde_conf).unwrap();
18+
println!("{s}");
19+
}

core/src/logging.rs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ fn get_level_filter() -> LevelFilter {
3333
// }
3434
}
3535

36-
pub fn setup_log(override_log_level: Option<LevelFilter>) {
36+
pub fn setup_log(cmdline_log_level: Option<LevelFilter>) {
3737
let stdout = ConsoleAppender::builder().build();
3838

3939
// via https://stackoverflow.com/questions/56345288/how-do-i-use-log4rs-rollingfileappender-to-incorporate-rolling-logging#
@@ -48,7 +48,17 @@ pub fn setup_log(override_log_level: Option<LevelFilter>) {
4848
let compound_policy =
4949
CompoundPolicy::new(Box::new(size_trigger), Box::new(fixed_window_roller));
5050

51-
let log_level = override_log_level.unwrap_or_else(get_level_filter);
51+
let log_level = if let Some(cmdline_log_level) = cmdline_log_level {
52+
if cmdline_log_level > get_level_filter() {
53+
cmdline_log_level
54+
} else {
55+
get_level_filter()
56+
}
57+
} else {
58+
get_level_filter()
59+
};
60+
61+
// cmdline_log_level.unwrap_or_else(get_level_filter);
5262

5363
let config = Config::builder()
5464
.appender(Appender::builder().build("stdout", Box::new(stdout)))

core/src/main.rs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ const APP_VERSION: &str = concat!(
104104
struct Args {
105105
#[clap(subcommand)]
106106
command: Command,
107-
/// Increase the verbosity of the output to trace log level overriding the log level in the config file.
107+
/// Increase the logging verbosity
108108
#[clap(short, long)]
109109
verbose: bool,
110110
/// Set path of configuration file to use. Default is ./oracle_config.yaml
@@ -181,6 +181,10 @@ enum Command {
181181

182182
/// Print base 64 encodings of the blake2b hash of ergo-tree bytes of each contract
183183
PrintContractHashes,
184+
185+
/// Print the current config file with zeroed sensitive/private fields.
186+
/// Intended to be shared with pool operators.
187+
PrintSafeConfig,
184188
}
185189

186190
fn main() {
@@ -200,8 +204,6 @@ fn main() {
200204
};
201205
logging::setup_log(cmdline_log_level);
202206

203-
log_on_launch();
204-
205207
#[allow(clippy::wildcard_enum_match_arm)]
206208
match args.command {
207209
Command::Bootstrap {
@@ -225,12 +227,14 @@ fn main() {
225227
Command::PrintContractHashes => {
226228
print_contract_hashes();
227229
}
230+
Command::PrintSafeConfig => cli_commands::print_conf::print_safe_config(&ORACLE_CONFIG),
228231
oracle_command => handle_oracle_command(oracle_command),
229232
}
230233
}
231234

232235
/// Handle all non-bootstrap commands that require ORACLE_CONFIG/OraclePool
233236
fn handle_oracle_command(command: Command) {
237+
log_on_launch();
234238
assert_wallet_unlocked(&new_node_interface());
235239
register_and_save_scans().unwrap();
236240
let op = OraclePool::new().unwrap();
@@ -337,6 +341,7 @@ fn handle_oracle_command(command: Command) {
337341
}
338342
}
339343
Command::Bootstrap { .. } | Command::PrintContractHashes => unreachable!(),
344+
Command::PrintSafeConfig => unreachable!(),
340345
}
341346
}
342347

core/src/oracle_config.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ impl OracleConfig {
138138
node_port: bootstrap.node_port,
139139
node_api_key: bootstrap.node_api_key,
140140
base_fee: bootstrap.base_fee,
141-
log_level: None,
141+
log_level: Some(LevelFilter::Info),
142142
core_api_port: bootstrap.core_api_port,
143143
oracle_address: bootstrap.oracle_address,
144144
data_point_source: bootstrap.data_point_source,

0 commit comments

Comments
 (0)