use crate::shared::shell::SupportedChains;
use core::net::IpAddr;
use multiaddr::Multiaddr;
use serde::{Deserialize, Serialize};
cfg_if::cfg_if! {
if #[cfg(feature = "std")] {
use std::path::PathBuf;
} else {
use alloc::string::String;
use alloc::vec::Vec;
#[cfg(feature = "typescript")]
use alloc::string::ToString;
}
}
#[derive(Serialize, Deserialize, Debug)]
#[cfg_attr(feature = "typescript", derive(tsify::Tsify))]
#[cfg_attr(feature = "typescript", tsify(from_wasm_abi))]
pub struct Opt {
pub verbose: i32,
pub pretty: bool,
pub options: GadgetTomlConfig,
}
#[derive(Debug, Serialize, Deserialize)]
#[cfg_attr(feature = "typescript", derive(tsify::Tsify))]
#[cfg_attr(feature = "typescript", tsify(from_wasm_abi))]
pub struct GadgetTomlConfig {
pub bind_ip: IpAddr,
pub bind_port: u16,
pub url: url::Url,
pub bootnodes: Vec<Multiaddr>,
pub keystore_password: Option<String>,
pub chain: SupportedChains,
pub verbose: i32,
pub pretty: bool,
}