mirror of
https://github.com/aljazceru/breez-sdk-liquid.git
synced 2026-01-26 01:14:21 +01:00
CLI: Allow choosing custom network (#151)
* CLI: Allow choosing custom network * Cargo fmt
This commit is contained in:
@@ -12,6 +12,13 @@ Start the CLI with
|
||||
cargo run
|
||||
```
|
||||
|
||||
To set a specific network, use one of
|
||||
|
||||
```bash
|
||||
cargo run -- --network mainnet
|
||||
cargo run -- --network testnet
|
||||
```
|
||||
|
||||
To specify a custom data directory, use
|
||||
|
||||
```bash
|
||||
|
||||
@@ -24,6 +24,13 @@ pub(crate) struct Args {
|
||||
|
||||
#[clap(short, long)]
|
||||
pub(crate) log_file: Option<String>,
|
||||
|
||||
#[clap(short, long, value_parser = parse_network_arg)]
|
||||
pub(crate) network: Option<Network>,
|
||||
}
|
||||
|
||||
fn parse_network_arg(s: &str) -> Result<Network, String> {
|
||||
Network::try_from(s).map_err(|e| e.to_string())
|
||||
}
|
||||
|
||||
fn show_results(result: Result<String>) -> Result<()> {
|
||||
@@ -74,14 +81,16 @@ fn main() -> Result<()> {
|
||||
}
|
||||
|
||||
let mnemonic = persistence.get_or_create_mnemonic()?;
|
||||
let wallet = Wallet::connect(
|
||||
&mnemonic.to_string(),
|
||||
Some(data_dir_str),
|
||||
Network::LiquidTestnet,
|
||||
)?;
|
||||
let network = args.network.unwrap_or(Network::LiquidTestnet);
|
||||
let wallet = Wallet::connect(&mnemonic.to_string(), Some(data_dir_str), network)?;
|
||||
|
||||
let cli_prompt = match network {
|
||||
Network::Liquid => "breez-liquid-cli [mainnet]> ",
|
||||
Network::LiquidTestnet => "breez-liquid-cli [testnet]> ",
|
||||
};
|
||||
|
||||
loop {
|
||||
let readline = rl.readline("breez-liquid> ");
|
||||
let readline = rl.readline(cli_prompt);
|
||||
match readline {
|
||||
Ok(line) => {
|
||||
rl.add_history_entry(line.as_str())?;
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
use anyhow::anyhow;
|
||||
use boltz_client::network::Chain;
|
||||
use boltz_client::Bolt11Invoice;
|
||||
use lwk_signer::SwSigner;
|
||||
@@ -30,6 +31,18 @@ impl From<Network> for Chain {
|
||||
}
|
||||
}
|
||||
|
||||
impl TryFrom<&str> for Network {
|
||||
type Error = anyhow::Error;
|
||||
|
||||
fn try_from(value: &str) -> Result<Network, anyhow::Error> {
|
||||
match value.to_lowercase().as_str() {
|
||||
"mainnet" => Ok(Network::Liquid),
|
||||
"testnet" => Ok(Network::LiquidTestnet),
|
||||
_ => Err(anyhow!("Invalid network")),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct WalletOptions {
|
||||
pub signer: SwSigner,
|
||||
|
||||
Reference in New Issue
Block a user