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