soroban_cli/commands/contract/bindings/
json.rs1use std::fmt::Debug;
2
3use clap::{command, Parser};
4use soroban_spec_json;
5
6use crate::wasm;
7
8#[derive(Parser, Debug, Clone)]
9#[group(skip)]
10pub struct Cmd {
11 #[command(flatten)]
12 wasm: wasm::Args,
13}
14
15#[derive(thiserror::Error, Debug)]
16pub enum Error {
17 #[error("generate json from file: {0}")]
18 GenerateJsonFromFile(soroban_spec_json::GenerateFromFileError),
19}
20
21impl Cmd {
22 pub fn run(&self) -> Result<(), Error> {
23 let wasm_path_str = self.wasm.wasm.to_string_lossy();
24 let json = soroban_spec_json::generate_from_file(&wasm_path_str, None)
25 .map_err(Error::GenerateJsonFromFile)?;
26 println!("{json}");
27 Ok(())
28 }
29}