soroban_cli/commands/keys/
fund.rs1use crate::{commands::global, config::network, print::Print};
2use clap::command;
3
4use super::public_key;
5
6#[derive(thiserror::Error, Debug)]
7pub enum Error {
8 #[error(transparent)]
9 Address(#[from] public_key::Error),
10 #[error(transparent)]
11 Network(#[from] network::Error),
12}
13
14#[derive(Debug, clap::Parser, Clone)]
15#[group(skip)]
16pub struct Cmd {
17 #[command(flatten)]
18 pub network: network::Args,
19 #[command(flatten)]
21 pub address: public_key::Cmd,
22}
23
24impl Cmd {
25 pub async fn run(&self, global_args: &global::Args) -> Result<(), Error> {
26 let print = Print::new(global_args.quiet);
27 let addr = self.address.public_key().await?;
28 let network = self.network.get(&self.address.locator)?;
29 let formatted_name = self.address.name.to_string();
30 network.fund_address(&addr).await?;
31 print.checkln(format!(
32 "Account {} funded on {:?}",
33 formatted_name, network.network_passphrase
34 ));
35 Ok(())
36 }
37}