diff --git a/FULL_HELP_DOCS.md b/FULL_HELP_DOCS.md index 4eb82666b5..0470b5fd01 100644 --- a/FULL_HELP_DOCS.md +++ b/FULL_HELP_DOCS.md @@ -261,6 +261,7 @@ Generate code client bindings for a contract * `rust` — Generate Rust bindings * `typescript` — Generate a TypeScript / JavaScript package * `python` — Generate Python bindings +* `java` — Generate Java bindings @@ -318,6 +319,14 @@ Generate Python bindings +## `stellar contract bindings java` + +Generate Java bindings + +**Usage:** `stellar contract bindings java` + + + ## `stellar contract build` Build a contract from source diff --git a/cmd/soroban-cli/src/commands/contract/bindings.rs b/cmd/soroban-cli/src/commands/contract/bindings.rs index c0e1f288ab..ffc2e956a4 100644 --- a/cmd/soroban-cli/src/commands/contract/bindings.rs +++ b/cmd/soroban-cli/src/commands/contract/bindings.rs @@ -1,3 +1,4 @@ +pub mod java; pub mod json; pub mod python; pub mod rust; @@ -16,6 +17,9 @@ pub enum Cmd { /// Generate Python bindings Python(python::Cmd), + + /// Generate Java bindings + Java(java::Cmd), } #[derive(thiserror::Error, Debug)] @@ -31,6 +35,9 @@ pub enum Error { #[error(transparent)] Python(#[from] python::Error), + + #[error(transparent)] + Java(#[from] java::Error), } impl Cmd { @@ -40,6 +47,7 @@ impl Cmd { Cmd::Rust(rust) => rust.run()?, Cmd::Typescript(ts) => ts.run().await?, Cmd::Python(python) => python.run()?, + Cmd::Java(java) => java.run()?, } Ok(()) } diff --git a/cmd/soroban-cli/src/commands/contract/bindings/java.rs b/cmd/soroban-cli/src/commands/contract/bindings/java.rs new file mode 100644 index 0000000000..53b64dda1a --- /dev/null +++ b/cmd/soroban-cli/src/commands/contract/bindings/java.rs @@ -0,0 +1,19 @@ +use std::fmt::Debug; + +use clap::Parser; + +#[derive(Parser, Debug, Clone)] +#[group(skip)] +pub struct Cmd {} + +#[derive(thiserror::Error, Debug)] +pub enum Error { + #[error("java binding generation is not implemented in the stellar-cli, but is available via the tool located here: https://github.com/lightsail-network/stellar-contract-bindings")] + NotImplemented, +} + +impl Cmd { + pub fn run(&self) -> Result<(), Error> { + Err(Error::NotImplemented) + } +}