Skip to main content

soroban_cli/commands/contract/
deploy.rs

1use crate::commands::global;
2
3pub mod asset;
4pub mod wasm;
5
6#[derive(Debug, clap::Subcommand)]
7pub enum Cmd {
8    /// Deploy builtin Soroban Asset Contract
9    Asset(asset::Cmd),
10    /// Deploy normal Wasm Contract
11    Wasm(wasm::Cmd),
12}
13
14#[derive(thiserror::Error, Debug)]
15pub enum Error {
16    #[error(transparent)]
17    Asset(#[from] asset::Error),
18    #[error(transparent)]
19    Wasm(#[from] wasm::Error),
20}
21
22impl Cmd {
23    pub async fn run(&self, global_args: &global::Args) -> Result<(), Error> {
24        match &self {
25            Cmd::Asset(asset) => asset.run(global_args).await?,
26            Cmd::Wasm(wasm) => wasm.run(global_args).await?,
27        }
28        Ok(())
29    }
30}