soroban_cli/commands/ledger/entry/fetch/
mod.rs

1use clap::Parser;
2use std::fmt::Debug;
3
4pub mod account;
5pub mod account_data;
6pub mod args;
7pub mod claimable_balance;
8pub mod contract_code;
9pub mod contract_data;
10pub mod liquidity_pool;
11pub mod offer;
12pub mod trustline;
13
14#[derive(Debug, Parser)]
15pub enum Cmd {
16    /// Fetch account entry by public key or alias.
17    Account(account::Cmd),
18    /// Fetch contract ledger entry by address or alias and storage key.
19    ContractData(contract_data::Cmd),
20    ///Fetch a claimable balance ledger entry by id
21    ClaimableBalance(claimable_balance::Cmd),
22    ///Fetch a liquidity pool ledger entry by id
23    LiquidityPool(liquidity_pool::Cmd),
24    /// Fetch a Contract's WASM bytecode by WASM hash
25    ContractCode(contract_code::Cmd),
26    /// Fetch a trustline by account and asset
27    Trustline(trustline::Cmd),
28    /// Fetch key-value data entries attached to an account (see manageDataOp)
29    Data(account_data::Cmd),
30    /// Fetch an offer by account and offer id
31    Offer(offer::Cmd),
32}
33
34#[derive(thiserror::Error, Debug)]
35pub enum Error {
36    #[error(transparent)]
37    Account(#[from] account::Error),
38    #[error(transparent)]
39    ContractData(#[from] contract_data::Error),
40    #[error(transparent)]
41    ClaimableBalance(#[from] claimable_balance::Error),
42    #[error(transparent)]
43    LiquidityPool(#[from] liquidity_pool::Error),
44    #[error(transparent)]
45    Wasm(#[from] contract_code::Error),
46    #[error(transparent)]
47    Trustline(#[from] trustline::Error),
48    #[error(transparent)]
49    Data(#[from] account_data::Error),
50    #[error(transparent)]
51    Offer(#[from] offer::Error),
52}
53
54impl Cmd {
55    pub async fn run(&self) -> Result<(), Error> {
56        match self {
57            Cmd::Account(cmd) => cmd.run().await?,
58            Cmd::ContractData(cmd) => cmd.run().await?,
59            Cmd::ClaimableBalance(cmd) => cmd.run().await?,
60            Cmd::LiquidityPool(cmd) => cmd.run().await?,
61            Cmd::ContractCode(cmd) => cmd.run().await?,
62            Cmd::Trustline(cmd) => cmd.run().await?,
63            Cmd::Data(cmd) => cmd.run().await?,
64            Cmd::Offer(cmd) => cmd.run().await?,
65        }
66        Ok(())
67    }
68}